如何找出 \hangafter 段落中的行数

如何找出 \hangafter 段落中的行数

我想让段落的最后一行填充一个从\hrulefill段落边距右侧突出 1 厘米的字符,如下图所示:

示例段落

为了排版上述内容,我使用了\hangindent\hangafter

\hsize=9cm
\parindent=0pt
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.
Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
\hrulefill\null
\hangindent=-1cm
\hangafter=-8

但是我必须使用非常粗略的,\hangafter=-8因为我知道示例段落有 9 行。如果是其他行数,则不起作用。有没有类似的东西\hangbefore=1,这样我就不必每次都调整行数了?我很懒

答案1

改变\parfillskip

\hsize=9cm
\parindent=0pt

\def\righthang{{%
  \unskip
  \hangindent=-1cm
  \hangafter=0
  \parfillskip=\hangindent
  \hrulefill\null\par
}}

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed 
do eiusmod tempor incididunt ut labore et dolore magna aliqua.
Ut enim ad minim veniam, quis nostrud exercitation ullamco 
laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure 
dolor in reprehenderit in voluptate velit esse cillum dolore eu 
fugiat nulla pariatur. Excepteur sint occaecat cupidatat non 
proident, sunt in culpa qui officia deserunt mollit anim id est 
laborum.\righthang

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed 
do eiusmod tempor incididunt ut labore et dolore magna aliqua.
Ut enim ad minim veniam, quis nostrud exercitation ullamco 
laboris nisi ut aliquip ex ea commodo consequat.\righthang

Duis aute irure dolor in reprehenderit in voluptate velit esse 
cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat 
cupidatat non proident, sunt in culpa qui officia deserunt mollit 
anim id est laborum.\righthang

\bye

在此处输入图片描述

如果您希望最后一个单词不超出边距,则需要\hrulefill至少与悬挂缩进一样长的修改。

\hsize=9cm
\parindent=0pt

\def\righthang{{%
  \unskip
  \hangindent=-1cm
  \hangafter=0
  \parfillskip=\hangindent
  \qhrulefill\null\par
}}
\def\qhrulefill{\leaders\hrule\hskip 1cm plus 1fill}


Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed 
do eiusmod tempor incididunt ut labore et dolore magna aliqua.
Ut enim ad minim veniam, quis nostrud exercitation ullamco 
laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure 
dolor in reprehenderit in voluptate velit esse cillum dolore eu 
fugiat nulla pariatur. Excepteur sint occaecat cupidatat non 
proident, sunt in culpa qui officia deserunt mollit anim id est 
laborum.\righthang

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed 
do eiusmod tempor incididunt ut labore et dolore magna aliqua.
Ut enim ad minim veniam, quis nostrud exercitation ullamco 
laboris nisi ut aliquip ex ea commodo consequat.\righthang

Duis aute irure dolor in reprehenderit in voluptate velit esse 
cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat 
cupidatat non proident, sunt in culpa qui officia deserunt mollit 
anim id est laborum.\righthang

\bye

在此处输入图片描述

答案2

在这里使用\hangindent\hangafter似乎不必要地复杂,我认为您可以简单地让规则突出 1cm:

在此处输入图片描述

\hsize=9cm
\parindent=0pt

\def\righthang{%
  \unskip
  \hrulefill\kern-1cm\relax
}

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed 
do eiusmod tempor incididunt ut labore et dolore magna aliqua.
Ut enim ad minim veniam, quis nostrud exercitation ullamco 
laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure 
dolor in reprehenderit in voluptate velit esse cillum dolore eu 
fugiat nulla pariatur. Excepteur sint occaecat cupidatat non 
proident, sunt in culpa qui officia deserunt mollit anim id est 
laborum.\righthang

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed 
do eiusmod tempor incididunt ut labore et dolore magna aliqua.
Ut enim ad minim veniam, quis nostrud exercitation ullamco 
laboris nisi ut aliquip ex ea commodo consequat.\righthang

Duis aute irure dolor in reprehenderit in voluptate velit esse 
cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat 
cupidatat non proident, sunt in culpa qui officia deserunt mollit 
anim id est laborum.\righthang

\bye

相关内容