我现在正在努力knitr,我试图打印的字符串之一有%符号.我读了TeX手册,打印出%符号.TeX应该有字符串\%来显示代码.
使用命令gsub我尝试执行以下操作:
try = "0% success"
try2 = gsub("%","\%",try,fixed = TRUE)
Run Code Online (Sandbox Code Playgroud)
gsub 抛出无效的转义字符错误
如果我这样做:
try = "0% success
try2 = gsub("%","\\\\%",try,fixed = TRUE)
Run Code Online (Sandbox Code Playgroud)
knitr 仍然无法打印字符串
请建议我解决问题的方法
- - - - 编辑 - - - - - - - - -
我想在try中显示字符串,因为它在我的输出PDF中我在knitr中使用它作为\ textit {\ Sexpr {try}}当tex文件被创建时,它认为百分比之后的文本是注释.我首先创建一个rnw文件,然后创建tex文件,之后使用texi2pdf获取pdf文件
----编辑2 -------------
我对knitr或LaTeX都不是很好
你为什么要把一个"\"跳到4"\"?
> try2 = gsub("%","\\%",try,fixed = TRUE)
> try2
[1] "0\\% success"
Run Code Online (Sandbox Code Playgroud)
这应该被理解为"\\",正如我所知,正则表达式将理解为"\".
我希望我理解你 - 这对你来说是可能的耻辱!
您需要两个反斜杠来转义:
<<>>=
try = "0\\% success"
@
Some text in LaTex \Sexpr{try}.
Run Code Online (Sandbox Code Playgroud)
编写完文档后,得到以下 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}
Run Code Online (Sandbox Code Playgroud)
当然,这是假设的echo=TRUE。