
test
TeX マクロを使用して、ルールが最後の環境のみで有効になる条件を設定するにはどうすればよいでしょうか?
ドキュメントに、\begin{test}...\end{test}
有効にする必要があるルールが 1 つだけ含まれているとします。
\begin{test}...\end{test}
ドキュメント内に複数の要素が含まれる場合、ルールは最後の要素のみ有効にする必要があります\begin{test}...\end{test}
。
私のMWEファイルを見つけてください:
\documentclass{book}
\pagestyle{empty}
\makeatletter
\newif\ifruletest\global\ruletestfalse
\newcounter{testcounter}
\setcounter{testcounter}{0}
\newenvironment{test}{\noindent\parindent0pt}
{\par\stepcounter{testcounter}
\ifnum\value{testcounter}>0\rule{\textwidth}{1bp}\global\ruletestfalse\else\fi\bigskip}
\makeatother
\begin{document}
\begin{test}
Sample text Sample text Sample text Sample text
Sample text Sample text Sample text Sample text
Sample text Sample text Sample text Sample text
Sample text Sample text Sample text Sample text
\end{test}
\begin{test}
Sample text Sample text Sample text Sample text
Sample text Sample text Sample text Sample text
Sample text Sample text Sample text Sample text
Sample text Sample text Sample text Sample text
\end{test}
\begin{test}
Sample text Sample text Sample text Sample text
Sample text Sample text Sample text Sample text
Sample text Sample text Sample text Sample text
Sample text Sample text Sample text Sample text
\end{test}
\end{document}
答え1
を使用できますtotcount
。環境の数がtest
変わる場合は、LaTeX を 2 回実行する必要があります。
\documentclass{book}
\usepackage{totcount}
\newtotcounter{testcounter}
\newenvironment{test}
{\par\setlength{\parindent}{0pt}}
{\par\stepcounter{testcounter}
\ifnum\totvalue{testcounter}=\value{testcounter}%
\nobreak\rule{\textwidth}{1bp}\bigskip
\fi}
\begin{document}
\begin{test}
Sample text Sample text Sample text Sample text
Sample text Sample text Sample text Sample text
Sample text Sample text Sample text Sample text
Sample text Sample text Sample text Sample text
\end{test}
\begin{test}
Sample text Sample text Sample text Sample text
Sample text Sample text Sample text Sample text
Sample text Sample text Sample text Sample text
Sample text Sample text Sample text Sample text
\end{test}
\begin{test}
Sample text Sample text Sample text Sample text
Sample text Sample text Sample text Sample text
Sample text Sample text Sample text Sample text
Sample text Sample text Sample text Sample text
\end{test}
\end{document}