不同字體大小的文字短語的垂直對齊

不同字體大小的文字短語的垂直對齊

(左側的 2. 和 3.“line 001”、“line 002”等僅顯示右側行的基線的垂直距離是\baselineskip正常大小中正常字體的倍數。)

  1. 確保以兩種不同字體大小排版的短語對齊的最佳/最不麻煩的方法是什麼,以便界定較大字體字母的上升部分頂部的規則位於界定大字體字母頂部的規則的高度較小字體的上升部分如下圖?

    在此輸入影像描述

  2. 確保兩行文字的基線之間的垂直粘合(例如在段落分隔處)始終是整數倍的最佳/最不麻煩的方法是什麼\baselineskip- 即使短語具有不同的字體大小?

    在此輸入影像描述

  3. 確保兩行文字的基線之間的垂直粘合(例如在段落分隔處)始終是整數倍的最佳/最不麻煩的方法是什麼\baselineskip- 即使短語具有不同的字體大小並且短語以兩種不同的字體大小排版是否對齊,以便界定較大字體字母上升部頂部的規則位於界定較小字體字母上升部頂部的規則的高度?

    在此輸入影像描述

我只找到了實現此類任務的繁瑣方法,其中需要將“手動調整”和奇怪的原始指令直接寫入保存文檔文本的文件中。我還沒有找到實現諸如宏之類的方法的方法,這些方法可以作為私有單獨的包提供,其中這些方法/宏的使用也不會很麻煩。我想學習編寫 LaTeX 程式碼,讓 LaTeX 在處理包含文件文字的文件時自動執行此類操作,而無需將文件的實際文字與大量用於從水平切換排版模式的奇怪指令散佈在一起模式限制為水平模式或垂直模式,或用於建立和測量框,或用於撤消某些高度/深度超過的 es/ s,\lineskip以便\vbox到後續行的垂直距離低於,...\vtop\baselineskip\lineskiplimit

與TeX⁠ ⁠-⁠ ⁠LaTeX Stack Exchange 一樣,即使在與修復程式碼無關的情況下,要求完整的最小可重現範例也是一種反射,而是要求最佳實踐,而必須詢問最佳實踐的人的程式碼很可能是這樣的我不是為了展示最佳實踐,而是展示我到目前為止所做的事情。我希望這也能滿足那些不信任提問者的自我羞辱的要求,他們不僅說他們已經花了相當長的時間來解決這個問題,但沒有取得真正的成功,而且還提供了形成的代碼片段糟糕且寫得不好的程式碼對任何人都沒有真正的用處,只能起到反駁他們在說他們已經花了相當長的時間在掙扎時撒謊的暗示的目的。

我用以下繁瑣的方式做了1.:

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

我透過以下繁瑣的方式做了2.:

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

我透過以下繁瑣的方式做了3.:

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

(左側的 2. 和 3.“line 001”、“line 002”等僅顯示右側行的基線的垂直距離是\baselineskip正常大小中正常字體的倍數。)

相關內容