%20%E5%A6%82%E4%BD%95%E8%AE%93%E5%BD%B1%E5%83%8F%E5%9C%A8%E9%A0%81%E9%9D%A2%E4%B9%8B%E5%A4%96%E5%B1%85%E4%B8%AD%EF%BC%9F.png)
我注意到,如果我嘗試將超出頁面的圖像居中,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}