我注意到,如果我尝试将超出页面范围的图像居中,TeX/LaTeX 似乎会放弃,而只是将图像左对齐。这是为什么?
答案1
Tex 工作的基本机制是一种称为盒子和胶水的机制。居中不是一种原始操作。
胶水是具有自然长度和可拉伸或收缩的单独长度的白色空间。
在 LaTeX 中,大多数居中(比如字母的居中X
)是通过在两侧涂胶水来完成的,这\hfil
相当于0pt plus 1fil minus 0pt
因此
\hbox to \textwidth{%
\hspace{0pt plus 1fil}X\hspace{0pt plus 1fil}%
}
所请求的盒子很\textwidth
宽,X
比那个小,所以两个粘合元素均匀扩展以填补空隙。
但请注意,两侧的胶水尺寸最小,0pt
因此,如果您X
用比\textwidth
盒子更宽的东西替换它,盒子就会过满(并伸出到右侧)。
还有其他选择,例如普通的 Tex 宏\centerline
与上面的类似,但使用\hss
具有无限拉伸的和缩小值。允许文本比文本宽度更宽,并且粘连自动采用负值进行补偿。这始终居中,但您不会收到已超出文本边界(甚至页面边界)的警告。
答案2
大卫的回答很好地解释了居中机制。如果你想知道一个让图像居中于比 更宽的位置的选项\textwidth
,一种可能性是使用一个框来欺骗 TeX:
\documentclass[]{article}
\usepackage{graphicx}
\usepackage{lipsum}
\usepackage[margin=3cm,showframe]{geometry}
\begin{document}
\lipsum[4]
\noindent\makebox[\linewidth]{\includegraphics[scale = 1.3]{example-image-a} }
\lipsum[4]
\end{document}
当然,最好的解决方案是控制图像的宽度,使其不超过\textwidth
:
\includegraphics[width=\textwidth]{example-image}