![latex - 名称中包含变量的includegraphic](https://linux22.com/image/415909/latex%20-%20%E5%90%8D%E7%A7%B0%E4%B8%AD%E5%8C%85%E5%90%AB%E5%8F%98%E9%87%8F%E7%9A%84includegraphic.png)
我对 latex 并不专业,而且我正在研究一些已经比较成熟的东西。我有一个批次,使用 latex/sweave 模板生成多个 pdf。我试图插入一个名称中带有变量的图形,但我把它删掉了。我希望有人能帮我清理一下。
我正在尝试的代码...
\newpage
\subsec{graphic page}
\rptpage{ \showtitle{} }
graphicsrc <- sprintf('name\_with\_underscores\_%02d.pdf', objectnum)
\includegraphics[width=\paperwidth]{graphicsrc}
@
objectnum 是一个传递的变量。
如果我使用如下的硬编码运行脚本,那么一切都会正常工作:
\newpage
\subsec{graphic page}
\rptpage{ \showtitle{} }
\includegraphics[width=\paperwidth]{name_with_underscores_01.pdf}
@
问题是,我无法硬编码这些来单独运行它们。我真的希望有人能帮助我调试我遇到的语法问题!!
答案1
这有sweave
标签,但你展示的不是一个完整的 LaTeX 文档,并且带有明确分隔的 R 代码,而是一大堆 LaTeX 和 R 命令的大杂烩,包括(可能)R 代码的结尾(@
行),但没有任何 R 代码块的开头(<>>>=
行),所以很难猜测你到底在做什么,但它似乎不必要地复杂:
\documentclass{article}
\usepackage{graphicx}
\begin{document}
<<objectnum,echo=F>>=
# Advanced method to set the variable:
graphicsrc <- 'example-image'
@
% Advanced method to use the variable as filename of an image
<<echo=F,out.width="2cm",fig.cap="Example figure taking the variable name in R",fig.align='center'>>=
include_graphics(graphicsrc)
@
% Less advanced method
\begin{figure}[h]\centering
\includegraphics[width=2cm]{\Sexpr{graphicsrc}}
\caption{The same variable used in \LaTeX\ code}
\end{figure}
\end{document}
顺便说一句,正如您在示例中看到的,您不需要声明图像的扩展名,除非是为了消除歧义(例如,当您有foo.png
并且foo.pdf
但您必须使用“foo.pdf”而不是“foo.png”)。
另一方面,不认为使用 是[h]
一种好的做法。它只在这个例子中很方便。