r - 使用自定义LaTeX样式文件使用rmarkdown呈现PDF时出错

时间:2018-01-11 13:46:19

标签: r pdf latex r-markdown

基于user3143179的answser,我创建了custom.sty来指定用于使用rmarkdown呈现PDF的字体和LaTeX包。

以下 custom.sty 的内容:

%  custom.sty

\usepackage{sectsty} \sectionfont{\centering} \chaptertitlefont{\centering}
\usepackage{xcolor}

% fonts
\usepackage{fontspec}
\setmainfont{LiberationSerif-Regular.ttf}[
BoldFont = LiberationSerif-Bold.ttf,
ItalicFont = LiberationSerif-Italic.ttf,
BoldItalicFont = LiberationSerif-BoldItalic.ttf ]
\setsansfont{LiberationSans-Regular.ttf}[
BoldFont = LiberationSans-Bold.ttf,
ItalicFont = LiberationSans-Italic.ttf,
BoldItalicFont = LiberationSans-BoldItalic.ttf ]
\setmonofont{LiberationMono-Regular.ttf}[
BoldFont = LiberationMono-Bold.ttf,
ItalicFont = LiberationMono-Italic.ttf,
BoldItalicFont = LiberationMono-BoldItalic.ttf ]

\endinput

我使用fontspec手册创建了上面关于特定系统字体的代码。

我运行了以下R代码:

rmarkdown::render("custom.Rmd", pdf_document(highlight = "kate",
fig_caption = FALSE, latex_engine = "lualatex", keep_tex = TRUE, includes 
= includes(in_header = "custom.sty")))

这是运行R代码的输出:

processing file: custom.Rmd
  |.................................................................| 100%
  ordinary text without R code


output file: custom.knit.md

/usr/bin/pandoc +RTS -K512m -RTS custom.utf8.md --to latex
--from markdown+autolink_bare_uris+ascii_identifiers+tex_math_single_backslash-implicit_figures
--output custom.tex --template /rmarkdown/rmd/latex/default.tex --highlight-style kate
--latex-engine lualatex --include-in-header custom.sty --variable graphics=yes 

/usr/bin/pandoc +RTS -K512m -RTS custom.utf8.md --to latex
--from markdown+autolink_bare_uris+ascii_identifiers+tex_math_single_backslash-implicit_figures
--output custom.pdf --template /rmarkdown/rmd/latex/default.tex --highlight-style kate
--latex-engine lualatex --include-in-header custom.sty --variable graphics=yes

错误

! LaTeX Error: Missing \begin{document}.

See the LaTeX manual or LaTeX Companion for explanation.
Type  H <return>  for immediate help.
 ...                                              

l.95 \setmainfont{LiberationSerif-Regular.ttf}[

pandoc: Error producing PDF from TeX source
Error: pandoc document conversion failed with error 43

我还有原始的.tex文件,以防您需要查看它。 .tex文件中有\begin{document}

.sty文件中还需要哪些其他组件,以便使用rmarkdown将LaTeX文件正确呈现为PDF格式?

拨打rmarkdown::render还需要其他什么吗?

1 个答案:

答案 0 :(得分:1)

当我从\endinput移除custom.sty时,它适用于我。问题是includes就像TeX中的\include一样输入文件。因此,将custom.sty重命名为header.tex会更有意义。