페이지의 나머지 부분을 점으로 채우기 (다시)

Dec 23 2020

페이지의 나머지 부분을 점 으로 채우기 와 같은 질문이 있습니다. 즉, 페이지의 나머지 부분을 점으로 채우고 싶습니다. 받아 들여지는 대답은 거의 완벽하지만 내부 \begin{enumeration}에서 사용할 때 점이 제대로 들여 쓰기되지 않습니다. 작동하도록하는 방법이 있습니까?

leavevmode도움 이 될 것이라고 제안하는 다른 게시물에서 답변을 찾았 지만 추가 할 때마다 작동하지 않는 것 같습니다.

편집 됨 : 시도한 코드는 다음과 같습니다. 나는 앞서 언급 한 대답 위에 단순히 추가 leavevmode했습니다 cleaders.

% My standard header for TeX.SX answers:
\documentclass[a4paper]{article} % To avoid confusion, let us explicitly 
                                 % declare the paper format.

\usepackage[T1]{fontenc}         % Not always necessary, but recommended.
% End of standard header.  What follows pertains to the problem at hand.

\usepackage{lipsum}

\makeatletter

\newcommand*\dotcolumnfill{%
    \par
    \null
    \vskip -\ht\strutbox
    \xleaders \hb@xt@ \hsize {%
        \strut \leavevmode \cleaders \hb@xt@ .44em{\hss.\hss}\hfill
    }\vfill
    \vskip \ht\strutbox
    \break
}

\makeatother

\begin{document}

\begin{enumerate}
  \item \lipsum*[1]
  \dotcolumnfill
  \item \lipsum*[2]
\end{enumerate}

\end{document}

결과는 다음과 같습니다.

답변

3 Noname Dec 23 2020 at 12:46

linegoal패키지를 사용하여 점 열의 너비를 확인할 수 있습니다. 정확한 값을 결정하려면 3 번의 컴파일이 필요합니다.

\documentclass[a4paper]{article} % To avoid confusion, let us explicitly 
                                 % declare the paper format.

\usepackage[T1]{fontenc}         % Not always necessary, but recommended.
% End of standard header.  What follows pertains to the problem at hand.
\usepackage{linegoal}
\usepackage{lipsum}

\makeatletter

\newcommand*\dotcolumnfill{%
    \par\noindent\mbox{}\@tempdima=\dimexpr\linewidth-\linegoal
    \null
    \vskip -\ht\strutbox
    \xleaders \hb@xt@ \hsize {%     
        \hspace{\@tempdima}\strut \leavevmode \cleaders \hb@xt@ .44em{\hss.\hss}\hfill
    }\vfill
    \vskip \ht\strutbox
    \break
}

\makeatother
\begin{document}
\makeatletter

\begin{enumerate}
  \item \lipsum*[1]
  \dotcolumnfill
  \item \lipsum*[2]
\end{enumerate}
\lipsum*[3]
\dotcolumnfill
\end{document}

의견에서 제기 된 추가 질문에 관해서.

\documentclass[a4paper]{article} % To avoid confusion, let us explicitly 
                                 % declare the paper format.

\usepackage[T1]{fontenc}         % Not always necessary, but recommended.
% End of standard header.  What follows pertains to the problem at hand.
\usepackage{linegoal}
\usepackage{lipsum}

\makeatletter

\newcommand*\dotcolumnfill[1][0]{%
    \par\noindent\mbox{}\@tempdima=\dimexpr\linewidth-\linegoal
    \null
    \vskip -\ht\strutbox
    \ifnum#1=0\relax
    \xleaders \hb@xt@ \hsize {%     
        \hspace{\@tempdima}\strut \leavevmode \cleaders \hb@xt@ .44em{\hss.\hss}\hfill
    }\vfill
    \vskip \ht\strutbox
    \break
    \else
    \@tempcnta=0\relax
    \loop
    \advance\@tempcnta by1\relax
    \hb@xt@ \hsize {%       
        \hspace{\@tempdima}\strut \leavevmode \cleaders \hb@xt@ .44em{\hss.\hss}\hfill
    }%
    \ifnum\@tempcnta<#1\relax
    \repeat
    \fi
}

\makeatother
\begin{document}
\makeatletter

\begin{enumerate}
  \item \lipsum*[1]
  \dotcolumnfill
  \item \lipsum*[2]
  \dotcolumnfill[4]
  \item \lipsum*[3]
\end{enumerate}
\lipsum*[4]
\dotcolumnfill
\end{document}

Saravanan Dec 23 2020 at 11:42

아래 매크로를 확인하십시오.

  \makeatletter
        \newcommand*\dotcolumnfill{%
            \par
            \null
            \vskip -\ht\strutbox
            \xleaders \hb@xt@ \hsize {%
                \strut \leavevmode \hphantom{1111l}\cleaders \hb@xt@ .44em{\hss.\hss}\hfill
            }\vfill
            \vskip \ht\strutbox
            \break
        }    
    \makeatother