%20%D1%86%D0%B5%D0%BD%D1%82%D1%80%D0%B8%D1%80%D1%83%D0%B5%D1%82%20%D0%B8%D0%B7%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D1%8F%20%D0%BD%D0%B0%20%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86%D0%B5%3F.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
коробка будет переполнена (и будет торчать справа).
Возможны и другие варианты, например, макрос plain Tex \centerline
похож на приведенный выше, но использует , \hss
который имеет бесконечное растяжениеизначения сжатия. что позволяет тексту быть шире, чем textwidth, а клей автоматически предполагает отрицательные значения для компенсации. Это всегда центрирует, но вы не получаете предупреждения о том, что границы текста (или даже границы страницы) были превышены.
решение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}