您可以在YAML中使用in_header
調用的css文件或tex文件中創建所需的樣式,具體取決於您的輸出。 然後你創建一個R函數,將這個樣式應用到你的文本中。
CSS文件來定義所需的樣式
.Courier {
font-family: Courier New, Courier, monospace;
}
乳膠文件來定義所需的樣式
如果你的產量只有乳膠,您可以將文檔直接把這些命令。
\newenvironment{Courier}{\ttfamily}{\par}
% Trick to avoid pandoc escaping texte between \begin and \end
\newcommand{\nopandoc}[1]{#1}
長文本輸出樣式格式功能塊
這些功能HTML或乳膠/ PDF輸出工作,包括:
```{r, echo=FALSE}
beginStyleFmt <- function(textstyle, type = "span") {
outputFormat <- knitr:::pandoc_to()
if (outputFormat %in% c('latex', 'beamer')) {
if (type %in% c("div", "p")) {
paste0("\\nopandoc{\\begin{", textstyle, "}}\n")
} else {
paste0("\\nopandoc{\\", textstyle, "{")
}
} else if (outputFormat == 'html') {
paste0("<", type, " class='", textstyle, "'>")
} else {
""
}
}
endStyleFmt <- function(textstyle, type = "span") {
outputFormat <- knitr:::pandoc_to()
if (outputFormat %in% c('latex', 'beamer')) {
if (type %in% c("div", "p")) {
paste0("\n\\nopandoc{\\end{", textstyle, "}}")
} else {
paste0("}}")
}
} else if (outputFormat == 'html') {
paste0("</", type, ">")
} else {
""
}
}
```
代碼爲您大塊文檔中
如果在文本文件中有類似標記的語法(如# Title
),它將作爲標記語法讀取。但標題之間的文本將在Courier中。如果你不希望你的閱讀文本降價語法,則可以在beginStyleFmt
去除\\nopandoc{
和endStyleFmt
功能相應}
。
`r beginStyleFmt("Courier", type = "div")`
```{r comment='', echo=FALSE, results='asis'}
cat(readLines('/filepath/filename.out'), sep = '\n')
```
`r endStyleFmt("Courier", type = "div")`
大概是這樣的:http://stackoverflow.com/questions/37944197/add-a-css-class-to-single-code-chunks-in-rmarkdown –