我使用 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
以下内容确保所有后续使用都应用了\includegraphics
该width=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 上发表评论)