我想将所有内容都包含\includegraphics
在内\shadowbox
。因此我想重新定义\includegraphics
:
\renewcommand{\includegraphics}{\shadowbox\includegraphics}
这样每次\includegraphics
调用时,实际上图形就被包含在 中\shadowbox
。但是上面的代码不起作用:
缺少插入的 {。 \do@VerbBox l.80 \includegraphics {0_home_rkrug_Documents_Publications_2012_handbook_Mana... 此处必须使用左括号,因此我插入了一个。您可能想要删除和/或插入一些更正,以便我尽快找到匹配的右括号。(如果您对这一切感到困惑,请尝试立即输入“I}”。)
有什么建议我可以重新定义吗\includegraphics
?
答案1
我假设您正在使用包\shadowbox
中的fancybox
。您需要保存的定义\includegraphics
并将其传递给\shadowbox
:
\documentclass{article}
\usepackage{graphicx,fancybox,letltxmacro}
% save the meaning of \includegraphics
\LetLtxMacro\latexincludegraphics\includegraphics
% pass the image to \shadowbox
\renewcommand{\includegraphics}[2][]{%
\shadowbox{\latexincludegraphics[#1]{#2}}}
\begin{document}
\includegraphics[width=1cm]{try}
\end{document}
在这种特殊情况下,\LetLtxMacro
实际上并不需要,原语\let
就足够了,但是每当重新定义带有可选参数的命令时,这种方法都更安全。
请注意,您失去了使用 * 形式的可能性,clip
而是使用选项。