Alinhamento vertical de frases de texto com tamanhos de fonte diferentes

Alinhamento vertical de frases de texto com tamanhos de fonte diferentes

(Com 2. e 3. "linha 001", "linha 002" etc à esquerda servem apenas para mostrar que as linhas de base das linhas à direita têm distâncias verticais que são múltiplos da \baselineskipfonte normal em tamanho normal.)

  1. Qual é a maneira melhor/menos complicada de garantir que as frases compostas em dois tamanhos de fonte diferentes estejam alinhadas de modo que as regras que delimitam o topo dos ascendentes das letras da fonte maior estejam na altura das regras que delimitam o topo do ascendentes da fonte menor como na imagem a seguir?

    insira a descrição da imagem aqui

  2. Qual é a maneira melhor/menos complicada de garantir que a colagem vertical entre as linhas de base de duas linhas de texto, por exemplo, em uma quebra de parágrafo, seja sempre um múltiplo inteiro de \baselineskip- mesmo que as frases tenham tamanhos de fonte diferentes?

    insira a descrição da imagem aqui

  3. Qual é a maneira melhor/menos complicada de garantir que a colagem vertical entre as linhas de base de duas linhas de texto, por exemplo, em uma quebra de parágrafo, seja sempre um múltiplo inteiro de \baselineskip- mesmo se as frases tiverem tamanhos de fonte diferentes e as frases forem compostas em dois tamanhos de fonte diferentes estão alinhadas de modo que as réguas que delimitam o topo dos ascendentes das letras da fonte maior fiquem na altura das réguas que delimitam o topo dos ascendentes da fonte menor?

    insira a descrição da imagem aqui

Eu só encontrei maneiras complicadas de conseguir coisas em que "ajustes manuais" e instruções primitivas estranhas precisam ser escritas diretamente no arquivo que contém o texto do documento. Ainda não encontrei maneiras de implementar métodos para alcançar coisas como macros que poderiam ser fornecidas como um pacote privado separado, onde o uso desses métodos/macros também não seria complicado. Eu gostaria de aprender a escrever código LaTeX para que o LaTeX faça essas coisas automaticamente enquanto processa o arquivo que contém o texto do documento - sem que eu precise intercalar os textos reais dos meus documentos com toneladas de instruções estranhas para mudar o modo de composição de horizontal modo para modo horizontal restrito ou modo vertical ou para criar e medir caixas ou para desfazer algumas \lineskipcom \vboxes/ \vtops de altura/profundidade que excede \baselineskipde modo que a distância vertical às linhas subsequentes fique abaixo \lineskiplimit, ...

Tal como acontece com o TeX⁠ ⁠-⁠ ⁠LaTeX Stack Exchange, exigir exemplos reproduzíveis mínimos e completos é um reflexo, mesmo em situações em que não se trata de consertar o código, mas de solicitar as melhores práticas, enquanto o código de quem precisa perguntar sobre as melhores práticas é provável para não exibir as melhores práticas, mostro o que fiz até agora. Espero que isto também satisfaça aqueles que, na sua desconfiança, exigem dos questionadores uma atitude de auto-humilhação, na forma de não apenas dizerem que já passaram um período de tempo considerável a debater-se com o assunto sem verdadeiro sucesso, mas também de fornecerem fragmentos de código que formam código ruim e mal escrito que não tem utilidade real para ninguém e só pode servir ao propósito de refutar a insinuação de que eles mentiram ao dizer que já gastaram um tempo considerável lutando.

Eu fiz 1. da seguinte maneira complicada:

\documentclass{book}
\newsavebox\mynormalbox
\newsavebox\myhugebox

\begin{document}

\savebox\mynormalbox{\hbox{\normalsize Text}}%
\savebox\myhugebox{\hbox{\huge Text}}%
Text Text \lower\dimexpr\ht\myhugebox-\ht\mynormalbox\relax\hbox{\huge Text Text} Text Text

\end{document}

Eu fiz 2. da seguinte maneira complicada:

\documentclass{book}

\begin{document}
\noindent %\leavevmode
\vbox to 12\baselineskip{%
  \hbox{line 001}%
  \hbox{line 002}%
  \hbox{line 003}%
  \hbox{line 004}%
  \hbox{line 005}%
  \hbox{line 006}%
  \hbox{line 007}%
  \hbox{line 008}%
  \hbox{line 009}%
  \hbox{line 010}%
  \hbox{line 011}%
  \hbox{line 012}%
} 
\vrule{}
\vbox to 12\baselineskip{%
  \hbox{line 1 line 1 line 1 line 1 line 1 line 1}%
  \vskip-\lineskip
  \vbox to 3\baselineskip{\vfill\hbox{Line 2 Line 2 {\huge Line 2} Line 2 Line 2}}%
  \hbox{line 3 line 3 line 3 line 3 line 3 line 3}%
  \vskip-\lineskip
  \vbox to 3\baselineskip{\vfill\hbox{Line 4 Line 4 {\huge Line 4} Line 4 Line 4}}%
  \hbox{line 5 line 5 line 5 line 5 line 5 line 5}%
  \vskip-\lineskip
  \vbox to 3\baselineskip{\vfill\hbox{Line 6 Line 6 {\huge Line 6} Line 6 Line 6}}%
}%
\end{document}

Eu fiz 3. da seguinte maneira complicada:

\documentclass{book}
\newsavebox\mynormalbox
\newsavebox\myhugebox

\begin{document}
\noindent %\leavevmode
\vbox to 16\baselineskip{%
  \vfill
  \hbox{\strut line 001}%
  \hbox{line 002}%
  \hbox{line 003}%
  \hbox{line 004}%
  \hbox{line 005}%
  \hbox{line 006}%
  \hbox{line 007}%
  \hbox{line 008}%
  \hbox{line 009}%
  \hbox{line 010}%
  \hbox{line 011}%
  \hbox{line 012}%
  \hbox{line 013}%
  \hbox{line 014}%
  \hbox{line 015}%
  \hbox{line 016\strut}%
  \vfill
} 
\vrule{}
\vbox to 16\baselineskip{%
  \vfill
  \savebox\mynormalbox{\hbox{\normalsize line1234567890}}%
  \savebox\myhugebox{\hbox{\huge  line1234567890}}%
  \hbox{\strut line 1 line 1 line 1 line 1 line 1 line 1}%
  \vtop to 3\baselineskip{%
    \hbox{\vphantom{line2}}%
    \hbox{line 2 line 2 \lower\dimexpr\ht\myhugebox-\ht\mynormalbox\relax\hbox{\huge line 2} line 2 line 2}%
    \vfill
  }%
  \vskip-\lineskip
  \hbox{line 3 line 3 line 3 line 3 line 3 line 3}%
  \vtop to 3\baselineskip{%
    \hbox{line 4 line 4 \lower\dimexpr\ht\myhugebox-\ht\mynormalbox\relax\hbox{\huge line 4} line 4 line 4}%
    \vfill
  }%
  \vskip-\lineskip
  \hbox{line 5 line 5 line 5 line 5 line 5 line 5}%
  \vbox to 3\baselineskip{%
    \vfill
    \hbox{\lower-\lineskip\hbox{line 6 line 6 {\huge line 6} line 6 line 6}}%
  }%
  \vskip-\lineskip
  \hbox{line 7 line 7 line 7 line 7 line 7 line 7}%
  \vbox to 2\baselineskip{%
    \vfill
    \hbox{\lower-\lineskip\hbox{line 8 line 8 {\huge line 8} line 8 line 8}}%
  }%
  \vskip-\lineskip
  \hbox{line 9 line 9 line 9 line 9 line 9 line 9\strut}%
  \vfill
}%
\end{document}

(Com 2. e 3. "linha 001", "linha 002" etc à esquerda servem apenas para mostrar que as linhas de base das linhas à direita têm distâncias verticais que são múltiplos da \baselineskipfonte normal em tamanho normal.)

informação relacionada