我正在处理knitr
,我尝试打印的字符串之一是%
符号。我阅读了TeX手册,打印出%
符号。 TeX应该将字符串设置为\%
以显示代码。
使用命令gsub
我尝试执行以下操作:
try = "0% success"
try2 = gsub("%","\%",try,fixed = TRUE)
gsub
抛出无效的转义字符错误
如果我这样做:
try = "0% success
try2 = gsub("%","\\\\%",try,fixed = TRUE)
knitr
仍然无法打印字符串
请建议我解决问题的方法
-------- EDIT ------------------
我希望try中的字符串显示在输出PDF中 我在knitr中使用它作为\ textit {\ Sexpr {try}} 创建tex文件时,它认为百分比之后的文本是注释。 我首先创建一个rnw文件,然后创建tex文件,然后使用texi2pdf获取pdf文件
----编辑2 -------------
我对knitr或LaTeX不太好。
答案 0 :(得分:7)
你为什么要把一个“\”跳到4“\”?
> try2 = gsub("%","\\%",try,fixed = TRUE)
> try2
[1] "0\\% success"
这应该被理解为"\\"
,正如我所知,正则表达式将理解为“\”。
我希望我理解你 - 这对你来说可能是一种侮辱!
答案 1 :(得分:3)
你需要两个反斜杠才能逃脱:
<<>>=
try = "0\\% success"
@
Some text in LaTex \Sexpr{try}.
编织文档后,获得以下LaTeX代码:
\begin{document}
\begin{knitrout}
\definecolor{shadecolor}{rgb}{0.969, 0.969, 0.969}\color{fgcolor}\begin{kframe}
\begin{alltt}
\hlstd{try} \hlkwb{=} \hlstr{"0\textbackslash{}\textbackslash{}% success"}
\end{alltt}
\end{kframe}
\end{knitrout}
Some text 0\% success
\end{document}
这当然是假设echo=TRUE
。