我是一名文字编辑,我的工作是为科学期刊编排论文。我的一项任务是(在某些情况下)裁剪图像以删除图像和边界框之间的多余空间。
通常我用它来\fbox
目视检查图像和边界框之间的空间量,但要做到这一点,我需要用 包装每个\includegraphics
命令\fbox{...}
。
我的问题是,有没有办法默认装箱所有图像?也许\usepackage[export]{adjustbox}
在序言中使用并默认将frame
选项传递给命令。\includegraphics
答案1
您可以重新定义\includegraphics
使用frame
-option ,如下所示:
\documentclass[]{article}
\usepackage[export]{adjustbox}
\let\includegraphicsbak\includegraphics
\renewcommand*{\includegraphics}[2][]{\includegraphicsbak[frame,#1]{#2}}
\begin{document}
\includegraphics[height=4cm]{example-image}
\end{document}
另一种可能性是重新定义它,以便始终\fbox
使用
\renewcommand*{\includegraphics}[2][]{\fbox{\includegraphicsbak[#1]{#2}}}
在后一种情况下,您总是会因为 -length 而得到较小的间隙\fboxsep
(您可以将其减少到0pt
,但这样可能会破坏您编辑的文档中的内容)。
编辑:你可能需要\LetLtxMacro
命令,看看这里以获得 的解释\LetLtxMacro
。
答案2
与 的解决方案略有不同的版本skillmon
,通过定义一个framed
文档/包选项,并重新定义includegraphics
,使用该选项。
extgraphicx
加载graphicx
并将其他选项传递给该包。
这样\documentclass[frame]{article}
就足够了。
\begin{filecontents}{extgraphicx.sty}
\ProvidesPackage{extgraphicx}
\newif\ifframeused
\RequirePackage{xkeyval}
% Define some option
\define@boolkey{extgraphicx.sty}[Gin@]{frame}[true]{%
\typeout{Used}
}
%Pass the other unknown thingies to graphicx
\DeclareOptionX*{\PassOptionsToPackage{\CurrentOption}{graphicx}}
\ProcessOptionsX*
\RequirePackage{graphicx}
\RequirePackage{xparse}
\let\graphicx@@includegraphics\includegraphics
\RenewDocumentCommand{\includegraphics}{O{}m}{%
\begingroup
\ifGin@frame
\fbox{%
\graphicx@@includegraphics[#1]{#2}%
}%
\else
\graphicx@@includegraphics[#1]{#2}%
\fi
\endgroup
}
\end{filecontents}
\documentclass[frame=false]{article}
\usepackage{extgraphicx}
\begin{document}
\includegraphics{ente}
\end{document}
答案3
如果您使用\adjincludegraphics
而不是正常情况,\includegraphics
那么您可以使用\adjustboxset
为所有图像(也包括所有其他图像)设置默认键\adjustbox
。
\documentclass{article}
\usepackage{adjustbox}
\adjustboxset*{frame=5pt} % * to add frame behind local keys, not before
\begin{document}
\adjincludegraphics[height=4cm]{example-image}
\end{document}