Mengisi sisa halaman dengan titik (lagi)

Dec 23 2020

Saya memiliki pertanyaan yang sama seperti Mengisi sisa halaman dengan titik . Artinya, saya ingin mengisi sisa halaman dengan titik-titik. Jawaban yang diterima hampir sempurna, tetapi ketika saya menggunakannya di dalam \begin{enumeration}, titik-titik tidak menjorok dengan benar. Apakah ada cara untuk membuatnya berhasil?

Saya menemukan jawaban di posting lain yang menyarankan itu leavevmodeakan membantu, tetapi tampaknya tidak berfungsi di mana pun saya menambahkannya.

Diedit: inilah kode yang saya coba. Saya hanya menambahkan leavevmodedi depan cleadersdi atas jawaban yang diterima di atas.

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

Inilah hasilnya:

Jawaban

3 Noname Dec 23 2020 at 12:46

Anda dapat menggunakan linegoalpaket untuk mengetahui seberapa lebar kolom titik seharusnya. Ini membutuhkan 3 kompilasi untuk menentukan nilai yang benar.

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

Adapun pertanyaan tambahan yang muncul di komentar.

\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

Silakan periksa dengan makro di bawah ini.

  \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