Latex knitr和Sweave中fig.cap的乳胶错误

Latex knitr和Sweave中fig.cap的乳胶错误,latex,knitr,sweave,figure,Latex,Knitr,Sweave,Figure,以下代码在knitr运行后导致LaTeX中出现“失控参数”错误: \documentclass{article} \begin{document} <<fig.cap="This causes \\texttt{problems.}">>= plot(1:10,10:1) @ \end{document} \documentclass{article} \开始{document} = 绘图(1:10,10:1) @ \结束{document} 原因还不清楚,所以

以下代码在knitr运行后导致LaTeX中出现“失控参数”错误:

\documentclass{article}

\begin{document}

<<fig.cap="This causes \\texttt{problems.}">>=
plot(1:10,10:1)
@

\end{document}
\documentclass{article}
\开始{document}
=
绘图(1:10,10:1)
@
\结束{document}

原因还不清楚,所以我希望这能帮助其他可能遇到这个问题的人。

问题的出现是因为

通过在第一个句点截断标题,从标题中提取默认的短标题 或冒号或分号

因此,通过上述示例生成的.tex文件包含以下内容

\caption[This causes \texttt{problems]{This causes \texttt{problems.}
解决方案是提供一个不会过早截断的简短标题,例如:

\documentclass{article}

\begin{document}

<<fig.cap="This causes \\texttt{no problems.}", fig.scap="This causes \\texttt{no problems.}">>=
plot(1:10,10:1)
@

\end{document}
\documentclass{article}
\开始{document}
=
绘图(1:10,10:1)
@
\结束{document}

非常感谢谢一辉,他大大提高了我的工作效率和代码的可重用性

谢谢你回答自己的问题;我对这个潜在的问题感到惊讶谢谢你一辉(我很高兴这不是一个新手问题!)不,不是;这是一个我没有意识到的漏洞,对此我也无能为力,因为这将涉及到解析LaTeX,在R中这样做会很难看