RMarkdown'da Microsoft Word'e altı çizili

Sep 02 2020

RMarkdown'da bazı kelimelerin altını nasıl çizeceğimi anlamaya çalışıyorum. HTML'ye örüyorsam, bunu yapabilirim:

<u>These words are underlined</u>

Bu durumda iyi çalışıyor. Ancak Microsoft Word'e örüldüğümde altını çizme kalıcı olmuyor. RMarkdown'da bunu yerel olarak yapmak için kalın ve italik komutlar gibi herhangi bir değişiklik yapıldığına inanmıyorum. Herhangi bir öneri?

Teşekkürler

Yanıtlar

1 SteffenMoritz Sep 02 2020 at 05:25

Aklıma gelen her şeyi denedim - mümkün değil gibi görünüyor (gerçekten çalışan çözümleri duymak harika olurdu)

Aşağıdakileri denedim:

<u> text </u>
<ins> text </ins>
<span style="text-decoration:underline"> text </span>
$\text{\underline{LaTeX makes it possible}}$
$\underline{LaTeX makes it possible}$

Bunların çoğu html_document için çalışırken - hiçbiri Rmarkdown için Word için gerçekten işe yaramadı.

  1. <u> - bariz çözüm - işe yaramadı.

  2. <ins> bu da sıklıkla önerilmektedir - işe yaramadı.

  3. html5 biçimlendirme - işe yaramadı

  4. LaTeX - işe yaramadı

Belki de bu mümkün değil.

1 stefan Oct 01 2020 at 17:01

Ne için 's değerinde ... (;. Anladım kadarıyla bu HTML etiketlerini kullanarak mümkün değildir nedeni HTML etiketleri çalışır HTML render HTML kodunu tarafından değindiği olmadığını olduğunda rmarkdown, knitrya da pandocve sade geçti Metin olarak son HTML belgesine kadar. HTML olması durumunda tarayıcı bu "metin" ile ne yapacağını bilir.Ancak Word veya Lateks'te olduğu gibi görüntülenecek olan metindir.

Bununla birlikte, Word çıktısı için , memur memur paketine bazı ek Word işlevleri ekleyen officedown paketine bir göz atabilirsiniz , örneğin aşağıdaki örnek RMD, Word'de metnin nasıl altı çizili olacağını gösterir:rmarkdown

---
title: "officedown template"
output: officedown::rdocx_document
---

```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE, fig.cap = TRUE)
library(officedown)
library(officer)

ft <- fp_text(underlined = TRUE)
```


This document presents most of the features of the package `r ftext("officedown", ft)`. 

fry Oct 05 2020 at 21:33

Sorunun iki bölümü vardır:
1.) Bir word dosyasına örgü yaparken html'yi işlemek için Rmarkdown / pandoc'u almak. Bunun nasıl elde edileceği burada açıklanmıştır: Rmarkdown'daki HTML etiketleri, kullanıcı @tarleb tarafından belgeye dönüştürülür (lütfen bu cevabı benimkinin temeli olduğu için yükseltmeyi düşünün).
2.) <u>altını çizmek için az ya da çok kullanımdan kaldırıldı. Ancak, <u>etiketlerin çalışması için basitçe a içine sarılması gerekir <p>.

Yani bu, istediğinizi elde etmelidir:

---
output:
  word_document:
    md_extensions: +raw_html-markdown_in_html_blocks
    pandoc_args: ['--lua-filter', 'read_html.lua']
---

<p><u>This text will be underlined.</u> This not anymore</p>

<u>But this will not.</u>

<p style="text-decoration: underline;">Neither will this.</p>

read_html.luaaynı dizinde bu içeriğe sahip bir dosya ile:

function RawBlock (raw)
  if raw.format:match 'html' and not FORMAT:match 'html' then
    return pandoc.read(raw.text, raw.format).blocks
  end
end
CyrusYip Oct 13 2020 at 20:25

Bir geçici çözüm

RMarkdown, Pandoc'a dayanmaktadır ve Pandoc's Markdown, alt çizgiyi doğal olarak desteklemez. Pandoc's Markdown'da altı çizili HTML etiketi ile uygulanmaktadır <u>...</u>. Ancak, <u>...</u>docx veya pdf'de altı çizili metne dönüştürülemez (pandoc 2.10.1 ile test edilmiştir). Bir çözüm, MS Word'de metin stilini değiştirmektir.

  1. <u>...</u>Gibi bir yedek seçin ***...***.

    ---
    output:
      word_document: default
    ---
    
    This is a regular paragraph.
    
    ***This paragraph is bold italic at first. It will be underlined later.***
    
  2. Rmarkdown belgesini docx'e örün

  3. Değiştir kalın italik metin ile alt çizgi metinde Word'de.

    • Tuşuna basın Ctrl + H.
    • Metin biçimini olarak ayarlayın Format > Font.
      • Kalın İtalik metni bulun .
      • Normal Altı Çizili metinle değiştirin.
    • Basın Replace All
  4. Kullandıysanız <u>...</u>, bunları ile değiştirin ***...***.

    • Tuşuna basın Ctrl + F.

    • normal ifade seçeneğini kontrol edin.

    • yerine <u>(.+)<\/u>sahip ***$1***.

    • Basın Allyanındaki Replace.

    • 1. adıma ve 2. adıma dönün.

Tavsiye

Rmarkdown ve Pandoc Markdown'un yerel sözdizimine bağlı kalmanızı öneririm. Sözdiziminin sınırlı olduğu düşünülürse, farklı çıktı biçimleriyle iyi çalışır. Sınırlı sözdizimi Markdown'ın gücüdür! O kadar basit ki, birçok farklı çıktı formatına dönüştürülebilir. İçerik ve stil ayrımı kavramını da takip etmenizi tavsiye ederim . Beni içeriği tekrar tekrar biçimlendirmekten kurtarıyor.