我如何知道哪些尺寸最适合我想在书中包含的图形?我知道\textwidth
,\linewidth
等等,但有没有一种自动的方法可以以适当的方式调整图形,因为有些图形会很大,有些会很小?我必须手动检查和调整这些设置吗\includegraphics
?
答案1
通过“最佳尺寸”,我假设您正在寻找以下图像应该缩放向下/向上以适应文本列、小页面等的宽度......
可以使用选项scale
,但这意味着您必须提前知道原始尺寸(不缩放)和所需的最终尺寸(例如 2 x 4 厘米),以便可以设置一些参数[scale=1.5]
。但通常您会关心原始尺寸,而不想担心绝对单位的最终尺寸,因为这可能会随着边距、页眉等的每次设置而改变。无论如何,这意味着每张图片的缩放比例不同,这会使某些类型的自动化变得困难。
因此,通常最好根据文本布局的宽度固定相对宽度。虽然\textwidth
或\columnwidth
可以用作参考长度,但width=\linewidth
在大多数情况下通常更安全。例如,width=\textwidth
在文本列中以及width=\columnwidth
在一列或两列中都可以,但在列表中则不行。因此,一般自动规则的第一种方法可能是:
\includegraphics[width=\linewidth]{example-image-a}
这里的问题可能是肖像图像太大width=\linewidth
。在这种情况下,您可以:
手动减小宽度,例如
width=.3\linewidth
。然后按比例缩放高度。\includegraphics[width=.3\linewidth]{example-image-a}
手动将高度设置为合理值,例如
height=10cm
。宽度按比例缩放。\includegraphics[height=10cm]{example-image-a}
设置精确的
width
手动调整和的尺寸height
。这肯定会产生可怕的变形图像。\includegraphics[width=.3\linewidth, height=10cm]{example-image-a}
放最大限度
width
和的尺寸height
。与上文相同,但添加了选项keepaspectratio
:\includegraphics[width=\linewidth, height=\textheight,keepaspectratio]{example-image-a}
在这种情况下,没有达到一个维度以避免图像失真,因此这对任何横向或纵向图像来说都是“最好的”。这可以作为大多数图像的一个很好的一般规则,只要和width
在height
任何情况下都是合理的最大长度,并且您承认某些图像的宽度可以减小。问题是......谁知道什么是“合理”的设置?
正如一开始所解释的那样,对于 ,width
这通常可能 \linewidth
是 的某个分数\linewidth
,同样,对于 ,最大高度可能是\textheight
的某个分数\textheight
,但为什么不是固定的长度(以厘米为单位)呢?这始终取决于您的想法。假设您的一些图片是 27 厘米 x 4 厘米的长肖像图……它必须填满整个文本列,才能尽可能宽?它不能大于 xx 厘米,即使这会大大减少最终宽度?
在下一个示例中,对于包含四列文本的文档,\image
宏将图像大小限制为列大小(宽度的 80% 或高度的 20%),因此几乎任何图像形状都相当合适:
\documentclass{article}
\usepackage[margin=1cm]{geometry}
\usepackage{graphicx,lipsum}
\parskip1em
\usepackage{multicol}
\def\image#1{\begin{center}\includegraphics[width=.8\linewidth,height=.2\textheight,keepaspectratio]{#1}\end{center}}
\begin{document}
\begin{multicols}{4}
\lipsum[1]
\image{example-image-1x1}
\lipsum[2-3]
\image{example-image-a}
\lipsum[4-5]
\image{example-image-16x10}
\lipsum[6-7]
\image{example-image-10x16}
\lipsum[8-150]
\end{multicols}
\end{document}
但为什么不是 100%-50% 或 100-100%?“最佳”拟合规则是一个相当值得怀疑的问题。像 80%-20% 这样的选项可能同样适用于其他布局,例如横向 A4 中的两列文本。最后,只有图灵不完整的人脑才能发现这一点。