R Sweave文档中转义反斜杠输出\beta出现意外换行如何解决
问题根源
你的.Rnw文档会经过两次转义处理:首先knitr解析文件时会对反斜杠做一次转义,之后pdflatex编译生成的.tex文件时会做第二次转义。你直接写\\beta的话,经过knitr处理后会变成\beta,这在LaTeX中属于数学模式下的希腊字母命令,不在数学环境中使用就可能出现异常换行、输出不符合预期的问题。
解决方法
方法1:用LaTeX原生命令输出反斜杠(推荐,适配正文字体)
用\textbackslash{}命令输出反斜杠,写法如下:
When you write ``\textbackslash{}beta'' and compile the document, you see ``$\beta$''.
方法2:用verb命令输出代码样式(适合展示代码命令场景)
如果需要用等宽字体展示命令,直接用\verb||包裹内容即可,不需要手动转义反斜杠:
When you write ``\verb|\beta|'' and compile the document, you see ``$\beta$''.
方法3:多层转义(不推荐,可读性差)
如果一定要用反斜杠转义的写法,需要写四层反斜杠,两次转义各消耗一半后最终会保留一个反斜杠:
When you write ``\\\\beta'' and compile the document, you see ``$\beta$''.
完整测试代码
\documentclass{article} \begin{document} When you write ``\textbackslash{}beta'' and compile the document, you see ``$\beta$''. When you write ``\verb|\beta|'' and compile the document, you see ``$\beta$''. \end{document}
以上三种方法都不会产生多余换行,可根据你的使用场景选择。
内容的提问来源于stack exchange,提问作者DanY
相关产品推荐
相关产品推荐

