
Esta pergunta não pede trechos de código.
É pedir para descrever práticas gerais com palavras.
No TeX simples, gostaria de colocar uma imagem/caixa retangular à esquerda de algum pedaço de texto que seja processado no modo horizontal.
A linha limite superior da caixa retangular que contém a imagem deve estar alinhada verticalmente com a linha limite que indica a altura da primeira linha do texto. (Essa altura não é a altura de a, \strutbox
mas depende do conteúdo da primeira linha. Pode ser a altura do limite, pode ser a altura x ou a soma da altura x e do ascendente de alguma letra, ou qualquer outra coisa. )
Horizontalmente deve haver um espaço de cerca de 1/3 polegada entre a linha limite direita da caixa que contém a imagem e a margem esquerda das linhas de texto.
Em qualquer caso, a imagem e o texto não devem ficar nas margens do documento.
Portanto, a largura do texto deve ser a largura de uma linha normal de texto diminuída pela largura do espaço horizontal (1/3 polegada) e diminuída pela largura da imagem.
Caso o texto ocupe mais espaço vertical do que a imagem, poderá ocorrer quebra de página com linhas de texto que, sem quebra de página, terminariam verticalmente abaixo da linha limite inferior da caixa retangular que contém a imagem.
Caso o texto ocupe menos espaço vertical que a imagem, deverá haver um espaço vertical abaixo do texto cujo comprimento é altura da imagem + profundidade da imagem - altura do texto - profundidade do texto.
Até agora considero a seguinte abordagem:
Coloque a imagem e a lacuna horizontal em uma caixa horizontal. Vamos chamar isso de imagebox
.
Meça a largura da caixa de imagens.
Coloque o texto em um \vtop
cujo valor \topskip
seja 0pt e cujo \hsize
seja igual à diferença entre a largura da caixa de imagem e a largura de uma linha regular de texto.
Vamos chamar essa caixa de “caixa de texto intermediária”.
Atribua uma nova profundidade ao imagebox: Altura do imagebox + profundidade do imagebox - altura do textbox intermediário.
Atribua uma nova altura à caixa de imagem: A altura da "caixa de texto intermediária".
Caso 1: Caso a caixa de texto seja verticalmente maior que a caixa de imagem:
Crie um "envolvente
\vbox
" cujo\hsize
valor seja igual à diferença entre a largura do imagebox e a largura de uma linha regular de texto e que\leftskip
seja igual à largura do imagebox e cuja primeira linha comece com um\llap
(levando\parindent
em consideração) segurando um "interior\vbox
" com no\topskip
, contendo o imagebox e o salto vertical negativo (para cima) cujo comprimento é igual à profundidade do imagebox. Isso\llap
é seguido pelo texto.\unvbox
o entorno\vbox
.Caso 2: Caso a caixa de texto seja verticalmente menor que a caixa de imagem:
Crie um "envolvente
\vbox
" cuja\hsize
largura seja igual à largura da caixa de imagem e que como primeira/única linha contenha a caixa de imagem e cuja primeira linha\rlap
contenha um "interno\vbox
" com a "caixa de texto intermediária" seguida por um salto vertical negativo (para cima) cujo comprimento é igual a profundidade da caixa de texto intermediária".
Questões:
Caso de anúncio 1: Como garantir que a caixa de imagens não fique presa na margem inferior? É suficiente ter \llap
dentro do "entorno \vbox
" seguido por um salto vertical positivo (para baixo) cujo comprimento é igual à profundidade da caixa de imagem, seguido por uma diminuição significativa da penalidade, seguido por um salto vertical negativo (para cima) cujo comprimento também é igual ao profundidade da caixa de imagem?
Caso de anúncio 2: Tanto o “entorno \vbox
” quanto o “interno \vbox
” não são \unvbox
editados. Como você garante que a cola vertical no topo dessas caixas verticais seja combinada com a cola vertical no topo do "entorno \vbox
", como se o "entorno \vbox
" e o "interno \vbox
" não estivessem lá?