我目前正在研究一种分为文章和文本的布局。基本上我有两个函数。每个函数中都有一个专门用于显示特定布局中的文本的环境。有时一篇文章中有许多文本。但有时只有一个。在这种情况下,我想不显示文本的数量。但我不知道如何实现这一点。我曾考虑使用一些条件……但我不知道如何在文章环境中检索文本的数量,因为该环境中的最后一条指令是重置为 0。有人有想法吗?感谢您的阅读,也许您能帮上忙。
\documentclass[a4paper,11pt]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\newtheorem{article}{Art.}
\newtheorem{alinea}{}%nom du théorème ; ce qui apparaît ; devant quoi la numérotation reprend de à 1
\newcommand{\resettheoremcounters}{%va remettre à zéro le compteur
\setcounter{alinea}{0}%
}
\newcommand{\art}[1]{\begin{article}#1\end{article}%
\resettheoremcounters}
\newcommand{\ali}[1]{\begin{alinea}#1\end{alinea}}
\begin{document}
\art{
\ali{ali 1}
}
\art{
\ali{ali 1}
\ali{ali 2}
}
\end{document}
答案1
\ali
您可以计算参数内的命令数量\art
;在框内执行该操作,然后将其丢弃。
\documentclass[a4paper,11pt]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\newtheorem{article}{Art.}
\newtheorem{alinea}{}[article]
\renewcommand{\thealinea}{\arabic{alinea}}
\newcommand{\art}[1]{%
\setcounter{countali}{0}%
\setbox0=\vbox{\let\ali\countali#1}%
\begin{article}
\ifnum\value{countali}<2
\let\ali\ignoreali
\fi
#1%
\end{article}
}
\newcommand{\ali}[1]{\begin{alinea}#1\end{alinea}}
\newcounter{countali}
\newcommand{\countali}[1]{\stepcounter{countali}}
\newcommand{\ignoreali}[1]{#1}
\begin{document}
\art{
\ali{ali 1}
}
\art{
\ali{ali 1}
\ali{ali 2}
}
\art{
\ali{ali 1}
\ali{ali 2}
}
\end{document}
\newtheorem{ali}{}[article]
无需发出明确的命令即可自动重置。