Como o TeX (LaTeX?) Centraliza as imagens fora da página?

Como o TeX (LaTeX?) Centraliza as imagens fora da página?

Percebi que se eu tentar centralizar uma imagem que sai da página, o TeX/LaTeX parece desistir e apenas alinhar a imagem à esquerda. Por que é isso?

Responder1

O mecanismo básico pelo qual Tex funciona é um mecanismo conhecido como caixas e cola. Centralizar não é uma operação primitiva.

A cola é um espaço em branco que tem um comprimento natural e comprimentos separados pelos quais pode esticar ou encolher.

no LaTeX, a maior parte da centralização (digamos, da letra X) é feita colocando cola em cada lado que seja equivalente a \hfilisso0pt plus 1fil minus 0pt

Então em

\hbox to \textwidth{%
\hspace{0pt plus 1fil}X\hspace{0pt plus 1fil}%
}

A caixa solicitada é \textwidthlarga, Xmenor que isso, então os dois elementos de cola se expandem igualmente para preencher a lacuna.

Mas observe que o tamanho mínimo da cola em ambos os lados é 0pto mesmo se você substituir Xpor algo mais largo do que \textwidtha caixa está cheia demais (e sobressai à direita).

Outras opções seriam possíveis, por exemplo, a macro Tex simples \centerlineé semelhante à anterior, mas usa \hsso que tem extensão infinitaediminuir valores. isso permite que o texto seja mais largo que a largura do texto e a cola assume automaticamente valores negativos para compensar. Isso sempre centraliza, mas você não recebe nenhum aviso de que os limites do texto (ou mesmo os limites da página) foram excedidos.

Responder2

A resposta de Daviexplica bem o mecanismo de centralização. Se você quiser saber uma opção para centralizar uma imagem maior que \textwidth, uma possibilidade é enganar o TeX usando uma caixa:

\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}

insira a descrição da imagem aqui

Obviamente, a melhor solução é controlar a largura da imagem para que não exceda \textwidth:

\includegraphics[width=\textwidth]{example-image}

informação relacionada