ページの残りの部分をドットで埋める(再び)
ページの残りの部分をドットで埋めるのと同じ質問があります。つまり、ページの残りの部分をドットで埋めたいのです。受け入れられた答えはほぼ完璧ですが、内部\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
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
以下のマクロで確認してください。
\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