Bookdown:修复 R 代码块中中文字符串前的额外 space
Bookdown: Fix extra space before Chinese string inside R code chunk
当中文字符串在R代码块中时,编译后的PDF会在字符串前多出一个space,如何避免这个多余的space?请参考github - bookdown-chinese .
中的最小情况
这个问题是由 LaTeX 包 xeCJK 引起的。默认情况下,它会在中文和非中文字符之间添加空格,verbatim
环境除外。在你的例子中,代码实际上并不在 verbatim
环境中,所以你必须让 xeCJK 知道它不应该自动添加空格。
解决方案是将这一行添加到你的 LaTeX 序言中(Highlighting
环境是 Pandoc 在将 Markdown 转换为 LaTeX 以语法高亮代码时定义的,它基于 fancyvrb 包):
\RecustomVerbatimEnvironment{Highlighting}{Verbatim}{commandchars=\\{\},formatcom=\xeCJKVerbAddon}
对于 R Markdown 文档,此行可以保存在 .tex 文件中,例如 preamble.tex
,并通过 includes
选项包含,例如
output:
pdf_document:
includes:
in_header: preamble.tex
有关完整的技术背景,请参阅 this Github issue。
当中文字符串在R代码块中时,编译后的PDF会在字符串前多出一个space,如何避免这个多余的space?请参考github - bookdown-chinese .
中的最小情况这个问题是由 LaTeX 包 xeCJK 引起的。默认情况下,它会在中文和非中文字符之间添加空格,verbatim
环境除外。在你的例子中,代码实际上并不在 verbatim
环境中,所以你必须让 xeCJK 知道它不应该自动添加空格。
解决方案是将这一行添加到你的 LaTeX 序言中(Highlighting
环境是 Pandoc 在将 Markdown 转换为 LaTeX 以语法高亮代码时定义的,它基于 fancyvrb 包):
\RecustomVerbatimEnvironment{Highlighting}{Verbatim}{commandchars=\\{\},formatcom=\xeCJKVerbAddon}
对于 R Markdown 文档,此行可以保存在 .tex 文件中,例如 preamble.tex
,并通过 includes
选项包含,例如
output:
pdf_document:
includes:
in_header: preamble.tex
有关完整的技术背景,请参阅 this Github issue。