Sottolineato in RMarkdown su Microsoft Word
Sto cercando di capire in RMarkdown come sottolineare alcune parole. Se sto lavorando a maglia in HTML posso farlo:
<u>These words are underlined</u>
Che funziona bene in quel caso. Ma la sottolineatura non è persistente quando lavoro a maglia con Microsoft Word. Non credo che siano state apportate modifiche a RMarkdown per farlo in modo nativo, come i comandi per grassetto e corsivo. Eventuali suggerimenti?
Grazie
Risposte
Ho appena provato tutto ciò che mi è venuto in mente - sembra non essere possibile (sarebbe bello sapere di soluzioni effettivamente funzionanti)
Ho provato quanto segue:
<u> text </u>
<ins> text </ins>
<span style="text-decoration:underline"> text </span>
$\text{\underline{LaTeX makes it possible}}$
$\underline{LaTeX makes it possible}$
Sebbene la maggior parte di questi funzionasse per html_document, nessuno ha funzionato davvero per Rmarkdown in Word.
<u>- la soluzione ovvia - non ha funzionato.<ins>che è anche spesso suggerito - non ha funzionato.html5markup - non ha funzionatoLaTeX- non ha funzionato
Potrebbe anche essere che questo non sia possibile.
Per quel che vale ... (;. Per quanto ho capito, questo non è possibile, utilizzando i tag HTML Il motivo per cui i tag HTML lavoro durante il rendering di HTML è che il codice HTML non è toccato da rmarkdown, knitro pandoce semplicemente passato fino al documento HTML finale come testo. In caso di HTML il browser sa cosa fare con questo "testo", ma in Word o Latex è semplicemente testo che verrà visualizzato così com'è.
Tuttavia, per l'output di Word potresti dare un'occhiata al pacchetto officedown che aggiunge alcune funzionalità aggiuntive di Word rmarkdowntramite il pacchetto ufficiale , ad esempio il seguente esempio RMD mostra come ottenere il testo sottolineato in Word:
---
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)`.
Il problema ha due parti:
1.) Ottenere Rmarkdown / pandoc per rendere l'html quando si lavora a maglia su un file word. Come ottenere ciò è stato spiegato qui: tag HTML in Rmarkdown in un documento word dall'utente @tarleb (si prega di considerare l'upvoting di quella risposta in quanto è la base per la mia).
2.) <u>per la sottolineatura è stato più o meno deprecato. Tuttavia, i <u>tag devono semplicemente essere inseriti in a <p>per funzionare.
Quindi questo dovrebbe ottenere ciò che desideri:
---
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>
con un file read_html.luanella stessa directory con questo contenuto:
function RawBlock (raw)
if raw.format:match 'html' and not FORMAT:match 'html' then
return pandoc.read(raw.text, raw.format).blocks
end
end
Una soluzione alternativa
RMarkdown è basato su Pandoc e Markdown di Pandoc non supporta nativamente la sottolineatura. La sottolineatura nel Markdown di Pandoc è implementata dal tag HTML <u>...</u>. Tuttavia, <u>...</u>non può essere convertito in testo sottolineato in docx o pdf (testato con pandoc 2.10.1). Una soluzione alternativa è modificare lo stile del testo in MS Word.
Scegli un sostituto per
<u>...</u>, ad esempio***...***.--- output: word_document: default --- This is a regular paragraph. ***This paragraph is bold italic at first. It will be underlined later.***Knit Rmarkdown documento in docx
Sostituisci il testo in grassetto corsivo con il testo sottolineato in Word.
- Premere
Ctrl + H. - Imposta il formato del testo in
Format > Font.- Trova testo in grassetto corsivo .
- Sostituisci con testo sottolineato normale.
- stampa
Replace All
- Premere
Se li hai usati
<u>...</u>, sostituiscili con***...***.Premere
Ctrl + F.controlla l'opzione regex.
sostituire
<u>(.+)<\/u>con***$1***.Premere
Allaccanto aReplace.Tornare al passaggio 1 e al passaggio 2.
Consigli
Consiglio di attenersi alla sintassi nativa di Rmarkdown e Pandoc's Markdown. Sebbene la sintassi sia limitata, funziona bene con diversi formati di output. La sintassi limitata è il potere di Markdown! È così semplice che può essere convertito in molti formati di output diversi. Consiglio anche di seguire il concetto di separazione di contenuto e stile . Mi salva dalla formattazione ripetuta dei contenuti.