如何将 Rmarkdown 文件转换为工作乳胶文件

How to convert Rmarkdown file to working latex file

我写了一篇手稿,我想提交给 Rmarkdown 的期刊。该期刊接受 word 和乳胶文件,所以我正在寻找一种方法来从我的 .Rmd 文件中生成一个工作 .tex 文件。

我读过一些 post 暗示这是可能的(例如 ),这对我有所帮助,但我仍然遇到问题。

例如,使用上面 post 中提到的方法,我可以将测试 .Rmd 转换为具有 .tex 文件类型的文件。这是测试 Rmarkdown(只是新文件的常用模板):

---
title: "Test document"
author: "Me"
date: "23 7 2020"
output: pdf_document
---

```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE)
```

## R Markdown

This is an R Markdown document. Markdown is a simple formatting syntax for authoring HTML, PDF, and MS Word documents. For more details on using R Markdown see <http://rmarkdown.rstudio.com>.

When you click the **Knit** button a document will be generated that includes both content as well as the output of any embedded R code chunks within the document. You can embed an R code chunk like this:

```{r cars}
summary(cars)
```

## Including Plots

You can also embed plots, for example:

```{r pressure, echo=FALSE}
plot(pressure)
```

Note that the `echo = FALSE` parameter was added to the code chunk to prevent printing of the R code that generated the plot.

这可以正常编译为 PDF。然后,在控制台中我 运行:

knitr::knit("test.Rmd")

在我的工作目录中获取降价文件 test.md,然后我显然可以使用

将此 .md 文件转换为 .tex
rmarkdown::pandoc_convert("test.md", to = "latex", output = "test.tex")

这会生成一个 .tex 文件,当我双击它时,会弹出该文件的 PDF 视图,看起来不错。不过看一下文件,它是不完整的,或者至少对我来说是陌生的:

\hypertarget{r-markdown}{%
\subsection{R Markdown}\label{r-markdown}}

This is an R Markdown document. Markdown is a simple formatting syntax
for authoring HTML, PDF, and MS Word documents. For more details on
using R Markdown see \url{http://rmarkdown.rstudio.com}.

When you click the \textbf{Knit} button a document will be generated
that includes both content as well as the output of any embedded R code
chunks within the document. You can embed an R code chunk like this:

\begin{Shaded}
\begin{Highlighting}[]
\KeywordTok{summary}\NormalTok{(cars)}
\end{Highlighting}
\end{Shaded}

\begin{verbatim}
##      speed           dist       
##  Min.   : 4.0   Min.   :  2.00  
##  1st Qu.:12.0   1st Qu.: 26.00  
##  Median :15.0   Median : 36.00  
##  Mean   :15.4   Mean   : 42.98  
##  3rd Qu.:19.0   3rd Qu.: 56.00  
##  Max.   :25.0   Max.   :120.00
\end{verbatim}

\hypertarget{including-plots}{%
\subsection{Including Plots}\label{including-plots}}

You can also embed plots, for example:

\begin{figure}
\centering
\includegraphics{figure/pressure-1.png}
\caption{plot of chunk pressure}
\end{figure}

Note that the \texttt{echo\ =\ FALSE} parameter was added to the code
chunk to prevent printing of the R code that generated the plot.

据我所知,它缺少序言 \begin{document}\end{document},而且我不知道 hypertarget 部分的 hypertarget 位是怎么回事 headers。毫不奇怪,当我在 MiKTeX 中点击 运行 时,它不会“re-compile”。不过,代码块的 verbatim 位看起来正是我所追求的。

那么,有没有一种方法可以生成从 .Rmd 文件编译而来的 .tex 文件?还是我必须手动编写序言之类的?如果我的问题的答案是“阅读 pandoc”,那么很公平,我将不得不硬着头皮最后看一看。但是我很难想象在Rmarkdown中没有好的(简单的)方法来准备可提交的手稿。

Pandoc 默认生成 LaTeX 片段,即不是完整文档。这可以通过使用 --standalone 选项调用 pandoc 来更改:

rmarkdown::pandoc_convert(
  "test.md",
  to = "latex",
  output = "out.tex",
  options = "--standalone"
)

您可以让 R 完成工作并将您的命令缩短为

render("test.Rmd", output_format = "latex_document")

感兴趣的项目可能是 rticles