我想使用数字:“1。”,“2。”,“3。”,...但最后一项(“n。”)是个例外,而不是“10。”例如,我想使用“(9 + 1)”。
答案1
[编辑使端点变得“动态”。
这看起来像是一个工作枚举项更具体地说,您可以使用\AddEnumerateCounter
来定义枚举计数器的特殊处理以产生:
(为了节省空间,我将其格式化为两列。)
LaTeX 代码并不太繁琐。我定义了一个名为 的新环境bracketted
。您可以像使用普通枚举环境一样使用此环境。不同之处在于,bracketted
环境中的项目会自动以我认为 OP 想要的方式进行标记。
为了使端点“动态”,bracketted
环境接受一个可选参数(默认为9
问题中的 as),用于指定计数器的打印应更改的位置。环境bracketted
本身包装了一个类似于枚举的环境,称为internalbracketted
。此环境使用枚举项包,它用于更改项目编号的打印方式。您可以通过修改手册中描述的规范\AddEnumerateCounter
来更改此环境的格式。\setlist[internalbracketted]{...}
enumitem
\documentclass{article}
\usepackage{enumitem}
\usepackage{multicol}
\AddEnumerateCounter{\SpecialTen}{\SpecialTen}{(9+1)}
\makeatletter
\newcommand\SpecialTen[1]{%
\ifnum\value{#1}>\specialValue%
\@tempcnta=\value{#1}\advance\@tempcnta by-\specialValue%
(\specialValue+\@arabic\@tempcnta)%
\else\arabic{#1}%
\fi%
}
\makeatother
\newlist{internalbracketted}{enumerate}{1}
\setlist[internalbracketted]{nosep,label=\SpecialTen*.}
\newenvironment{bracketted}[1][9]{\def\specialValue{#1}\internalbracketted}
{\endinternalbracketted}
\begin{document}\begin{multicols}{2}
With 3 being special:
\begin{bracketted}[3]
\item \item \item \item \item
\end{bracketted}
With 4 being special:
\begin{bracketted}[4]
\item \item \item \item \item
\end{bracketted}
\columnbreak
With 9 being special (the default):
\begin{bracketted} % with no optional argument the special value defaults to 9
\item \item \item \item \item
\item \item \item \item \item
\end{bracketted}
\end{multicols}\end{document}
尽管 OP 只要求对最后一个项目编号进行特殊处理,但这会更改“特殊”值之后的所有项目标签——毕竟你必须对它们做些什么,而且先验地,没有办法提前知道哪个\item
是最后一个。
我仍然不清楚这是否是 OP 想要的,因为动态的含义并没有真正解释清楚,但这可能就足够了。如果 OP 想要自动检测最后一个\item
那么这是可能的,但需要不同的方法。如果 OP 提供了完整的最小工作示例并更好地解释他们所寻找的东西。
答案2
实现目标的一个简单方法是\finalitem
在枚举环境中使用命令,并按您想要的方式格式化最后一个命令item
。这可能不是您希望的“动态”方式,因为它不是自动的,它依赖于您作为用户finalitem
始终将命令放在最后一项。
\documentclass{article}
\newcommand\finalitem{\item[(\theenumi+1.)]}
\begin{document}
\begin{enumerate}
\item
\item
\finalitem
\end{enumerate}
\end{document}