如何獲得行間距以忽略 vbox?

如何獲得行間距以忽略 vbox?

可能的重複:
製作一個不可見的vbox

我想\vbox在段落之間插入 a,但我不希望它影響行間距。我正在使用 Plain TeX。這是我的 MWE:

\input plain
asdljflasd dasjfdlf lasdfdflaslfjlsadf sajf lsdfas Lorem ipsum dolor
sit amet, consectetur adipiscing elit. Quisque sollicitudin pretium\par
\nointerlineskip\vbox to 0pt{\hbox to 0pt{\hskip -10pt *}\kern0pt}\nointerlineskip
In hac habitasse platea dictumst. Etiam rutrum blandit velit sed
rutrum. Curabitur rhoncus erat a turpis suscipit vitae rutrum turpis

\bye

下面顯示了兩個段落之間的不良間距(星號出現的地方):

不良間距

註解掉以 開頭的行\nointerlineskip可以給出兩個段落之間的正確間距:

良好的間距

如何獲得\vbox正確的行間距?對巨大的圖像表示歉意。

答案1

人們必須更加努力才能將所有東西放在正確的位置:

asdljflasd dasjfdlf lasdfdflaslfjlsadf sajf lsdfas Lorem ipsum dolor
sit amet, consectetur adipiscing elit. Quisque sollicitudin pretium

\edef\tpd{\the\prevdepth}\nointerlineskip
\vbox to 0pt{\hrule height 0pt\prevdepth=\tpd\llap{\strut*\kern10pt}\vss}%
\prevdepth=\tpd
In hac habitasse platea dictumst. Etiam rutrum blandit velit sed
rutrum. Curabitur rhoncus erat a turpis suscipit vitae rutrum turpis

然而,在頁邊空白處加上星號比這容易得多:

\def\marginasterisk{\leavevmode\llap{*\kern\parindent\kern10pt}}

asdljflasd dasjfdlf lasdfdflaslfjlsadf sajf lsdfas Lorem ipsum dolor
sit amet, consectetur adipiscing elit. Quisque sollicitudin pretium

\marginasterisk In hac habitasse platea dictumst. Etiam rutrum blandit velit sed
rutrum. Curabitur rhoncus erat a turpis suscipit vitae rutrum turpis

答案2

替代方案可能是使用\vtop代替\vbox並省略\nointerlineskip之前:

asdljflasd dasjfdlf lasdfdflaslfjlsadf sajf lsdfas Lorem ipsum dolor
sit amet, consectetur adipiscing elit. Quisque sollicitudin pretium\par
\vtop to 0pt{\hbox to 0pt{\hskip -10pt *}\kern 0pt}%
\nointerlineskip
In hac habitasse platea dictumst. Etiam rutrum blandit velit sed
rutrum. Curabitur rhoncus erat a turpis suscipit vitae rutrum turpis

\bye

相關內容