\hfill 줄 사이

\hfill 줄 사이

다음 프로그램에서 출력한 첫 번째 단락에서는 dolor오른쪽 여백에 설정됩니다. 두 번째에서는 이런 일이 발생하지 않습니다. 아마도 이런 \hfill일이 발생해도 우리는 여전히 첫 번째 줄에 있기 때문일 것입니다.

\hsize 4in

lorem ipsum
lorem ipsum
lorem ip
\hfill dolor

lorem ipsum
lorem ipsum
lorem ipsum
lorem ipsum
lorem ip
\hfill dolor

lorem ipsum
lorem ipsum
lorem ipsum
lorem ipsum
lorem ip%
\break\null
\hfill dolor

lorem ipsum
lorem ipsum
lorem ipsum
lorem ipsum
lorem ipsum
\break\null
\hfill dolor

\bye

산출

dolor그것이 발생하는 위치에 관계없이 올바른 여백에 설정되었는지 어떻게 확인할 수 있습니까 ? 즉, dolor 앞의 텍스트 길이가 변경되면 어떻게 세 번째 문단의 효과를 얻을 수 있지만 네 번째 문단(추가 줄 바꿈 포함)의 효과를 얻을 수 없습니까?

답변1

이것은 TeXbook에 잘 설명되어 있습니다(색인에서 Bourbaki를 찾으세요).

\def\NN#1{\leavevmode\llap{\hbox to\parindent{#1\hss}}\ignorespaces} % for reference

\def\signed#1{{\unskip\nobreak\hfil\penalty50
  \hskip2em\hbox{}\nobreak\hfil#1%
  \parfillskip=0pt \finalhyphendemerits=0 \par}}

\hsize 4in

\NN1
lorem ipsum
lorem ipsum
lorem ip
\signed{dolor}

\NN2
lorem ipsum
lorem ipsum
lorem ipsum
lorem ipsum
lorem ip
\signed{dolor}

\NN3
lorem ipsum
lorem ipsum
lorem ipsum
lorem ipsum
lorem ip%
\signed{dolor}

\NN4
lorem ipsum
lorem ipsum
lorem ipsum
lorem ipsum
lorem ipsum
lorem ipsum
lorem ipsum
lorem ipsum
lorem ipsum
l
\signed{dolor}

\NN5
lorem ipsum
lorem ipsum
lorem ipsum
lorem ipsum
lorem ipsum
lorem ipsum
lorem ipsum
lorem ipsum
lorem ipsum
lo
\signed{dolor}

\bye

여기에 이미지 설명을 입력하세요

답변2

\leavevmode\penalty50\hbox{}\nobreak\hfill dolor

줄 바꿈을 강요하지 않고 폐기할 수 없는 채우기 접착제를 추가해야 합니다.

관련 정보