将 Latex 中的所有图像调整为百分比宽度

将 Latex 中的所有图像调整为百分比宽度

我使用 pandoc 自动生成多个 tex 文件(每个章节一个 tex 文件)。Pandoc 为每个图像生成此 tex 代码。

\begin{figure}[htbp]
\centering
\includegraphics{images/flock_of_birds.JPG}
\caption{A flock of storks rush to fill orders during the Baby Boom.}
\end{figure}

如何将所有图像的宽度设置为百分比值而不直接修改生成的代码?我曾尝试使用\renewcommand\includegraphics 但我的 LaTex 知识不足。

答案1

您可以重新定义现有的\includegraphics宏来应用您想要的任何选项。

下面,我将其放在\renewcommand主文档中,以便您可以看到效果\renewcommand以下内容确保所有后续使用都应用了\includegraphicswidth=9cm选项。以下是比较:

在此处输入图片描述

笔记:

  • 通常可以使用\let\OldIncludegraphics{\includegraphics}语法,但由于\includegraphics有一个可选参数,我们需要LetLtxMacro使用包裹letltxmacro\LetLtxMacro可以在此问题中找到 有关闭平方根符号

  • [demo]选项用于在放置图形的位置放置一个黑框,以供演示目的使用,在实际使用中(当您实际有可用的图形时),您需要删除此选项。

代码:

\documentclass{article}
\usepackage[demo]{graphicx}% Remove [demo] option in real usage.
\usepackage{letltxmacro}

\LetLtxMacro{\OldIncludegraphics}{\includegraphics}

\begin{document}
\begin{figure}[htbp]
\centering
\includegraphics{images/flock_of_birds.JPG}
\caption{A flock of storks rush to fill orders during the Baby Boom.}
\end{figure}

\renewcommand{\includegraphics}[2][]{\OldIncludegraphics[width=9cm, #1]{#2}}

\begin{figure}[htbp]
\centering
\includegraphics{images/flock_of_birds.JPG}
\caption{A flock of storks rush to fill orders during the Baby Boom.}
\end{figure}

\end{document}

答案2

\documentclass{article}
\usepackage{graphicx}
\makeatletter\def\Gin@i{\Gin@ii[scale=0.2]}\makeatother

\begin{document}   
\includegraphics{tiger}
\end{document}

将每幅图像缩小 20%。您也可以定义width=0.3\linewidth或其他内容。

答案3

@Peter Grill:

  • 为了覆盖 width=42something 它宽度应该是最后一个参数\renewcommand{\includegraphics}[2][]{\OldIncludegraphics[#1, width=9cm]{#2}}
  • 注意:该方法不会将图像缩放到百分比,而是缩放到 9 厘米。无论如何都很有用。

(免责声明:不允许在 tex.stackexchange 上发表评论)

相关内容