Closed. This question is off-topic。它当前不接受答案。












想改善这个问题吗? Update the question,因此它是on-topic,用于堆栈溢出。

7年前关闭。



Improve this question





我在代码块中有一个线性模型,希望在LaTeX中很好地显示。模型调用采用带波浪号〜的标准形式,该形式在LaTeX中令人讨厌地排版。

\documentclass{article}
\begin{document}
<<>>=
lm(Sepal.Width ~ Sepal.Length, data = iris)
@
\end{document}


该代码被编入knitr::knit(mwe.Rnw),然后通过PDFLaTeX运行。

在LaTeX中制作漂亮的波浪号非常令人讨厌,并且使编织器变得不那么容易,容易。对knit生成的.tex文件进行的检查显示,该代码已放入三个环境中,其中\begin{alltt} ... \end{alltt}是有趣的环境。但是软件包alltt没有提供任何快速修复特殊字符的特殊排版的方法。

最佳答案

此解决方案的灵感来自yihui's example on hooksthis post和我的好友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}


它还定义了通用的\mytilde命令。例如,R代码的嵌入式示例:“ in the form \texttt{response~\mytilde~predictors} ...”。

xspace并不是绝对必要的(只要您在newcommand中删除了xspace即可),但可以使该命令更易于使用。

关于r - 漂亮的波浪号〜来自带有编织器的R块? ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14710477/

10-12 20:41