dyn*_*amo 7 latex r typesetting pdflatex knitr
我在代码块中有一个线性模型,我希望在LaTeX中很好地显示.模型调用采用标准形式,使用波浪号〜在LaTeX中可以进行排版.
\documentclass{article}
\begin{document}
<<>>=
lm(Sepal.Width ~ Sepal.Length, data = iris)
@
\end{document}
Run Code Online (Sandbox Code Playgroud)
代码编织knitr::knit(mwe.Rnw),然后通过PDFLaTeX运行.
在LaTeX中制作漂亮的波浪线非常烦人,并且让它们变得简单易行.对由此产生的.tex文件的检查knit表明,代码被放入三个环境中,其中\begin{alltt} ... \end{alltt}有一个是有趣的环境.但该软件包alltt不提供任何特殊排版特殊字符的快速修复.
这个解决方案的灵感来自于yihui关于钩子的例子,这个帖子和我的伙伴RJ.
\documentclass{article}
\usepackage{xspace}
\newcommand{\mytilde}{\lower.80ex\hbox{\char`\~}\xspace}
\begin{document}
<<setup, include=FALSE>>=
library(knitr)
hook_source = knit_hooks$get('source')
knit_hooks$set(source = function(x, options) {
txt = hook_source(x, options)
# extend the default source hook
gsub('~', '\\\\mytilde', txt)
})
@
<<results = "hide">>=
lm(Sepal.Width ~ Sepal.Length, data = iris)
@
\end{document}
Run Code Online (Sandbox Code Playgroud)
它还定义了\mytilde一般用途的命令.例如,R代码的内联示例:" in the form \texttt{response~\mytilde~predictors} ...".
该包xspace不是严格必要的(只要您xspace在新命令中删除它),但使命令更好使用.