我想在我的论文中添加一些图表,其中很多图表都需要裁剪。所以我想使用 includegraphics 的修剪功能。但是,由于图表数量接近 200-300。如果我稍后更改修剪量,则不必更改每个图表的值。因此,我想要类似 trim= \A \B \C \D 的命令,这样我就可以使用 \newcommand 来更改序言中的修剪。但我收到一个失控参数错误,这似乎表明它没有正确地将这 4 个命令一起解释。有人有办法解决这个问题吗?图表名称不重要,因此请使用任何名称进行测试。
\documentclass{report}
\usepackage{graphicx}
\usepackage{caption}
\usepackage{subcaption}
\newcommand{\trimA}{ 4mm }
\newcommand{\trimB}{ 5mm }
\newcommand{\trimC}{ 6mm }
\newcommand{\trimD}{ 7mm }
\begin{document}
\begin{figure}[p]
\centering
\includegraphics[width=0.40\linewidth,trim=\trimA \trimB \trimC \trimD] {DSG31}
\caption{A Figure}
\end{figure}
\end{document}
答案1
和兄弟的定义中有空格是没有意义的\trimA
,因为在执行宏扩展之前空格应该将四个维度分隔开。
只需支撑宏即可。
\documentclass{report}
\usepackage{graphicx}
\usepackage{caption}
\usepackage{subcaption}
\newcommand{\trimA}{4mm}
\newcommand{\trimB}{5mm}
\newcommand{\trimC}{6mm}
\newcommand{\trimD}{7mm}
\begin{document}
\begin{figure}[p]
\centering
\includegraphics[clip,width=0.40\linewidth,trim={\trimA} {\trimB} {\trimC} {\trimD}]{example-image}
\caption{A Figure}
\end{figure}
\end{document}
答案2
问题的本质是从 LaTeX 解析的角度来看,\trimA \trimB \trimC \trimD
维度之间没有空格。必须在维度之间添加空格,这里是 ,\trimA{} \trimB{} \trimC{} \trimD{}
才能正确消化它。
我自己对这个选项没有什么经验trim
,但它似乎只是调整边界框,而没有真正剪切图像。因此,在下面的例子中,由于图像没有边框可修剪,修剪只会使第二张图像看起来更大。(请参阅下面的补救措施)
\documentclass{report}
\usepackage{graphicx}
\usepackage{caption}
\usepackage{subcaption}
\newcommand{\trimA}{ 4mm }
\newcommand{\trimB}{ 5mm }
\newcommand{\trimC}{ 6mm }
\newcommand{\trimD}{ 7mm }
\begin{document}
\begin{figure}[p]
\centering
\includegraphics[width=0.40\linewidth]{example-image}
\includegraphics[width=0.40\linewidth,trim=\trimA{} \trimB{} \trimC{} \trimD{}]{example-image}
\caption{A Figure}
\end{figure}
\end{document}
如果确实想剪辑原始图像,那么添加这个\clipbox
应该会有所帮助。编辑以将效果放置在名为\Includegraphics[]{}
(大写“I”)的宏中:
\documentclass{report}
\usepackage{graphicx,trimclip}
\usepackage{caption}
\usepackage{subcaption}
\newcommand{\trimA}{ 28mm }
\newcommand{\trimB}{ 15mm }
\newcommand{\trimC}{ 6mm }
\newcommand{\trimD}{ 7mm }
\newcommand\Includegraphics[2][]{%
\clipbox{0pt 0pt 0pt 0pt}{%
\includegraphics[#1,trim=\trimA{} \trimB{} \trimC{} \trimD{}]{#2}}}
\begin{document}
\centering
\includegraphics[width=0.40\linewidth]{example-image}
\Includegraphics[width=0.40\linewidth]{example-image}
\Includegraphics[width=0.20\linewidth]{example-image}
\end{document}