我怎样才能更新 \includegraphics 以始终使用 \shadowbox?

我怎样才能更新 \includegraphics 以始终使用 \shadowbox?

我想将所有内容都包含\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而是使用选项。

相关内容