enumitem:如何将素数放入某些括号标签中

enumitem:如何将素数放入某些括号标签中

如何在 (ii) 中的 ii 上添加上撇号?MWE:

\documentclass{article}
\usepackage{enumitem}
\begin{document}
\begin{enumerate}[label=(\roman*)]
\item\label{A} First
\item\label{B} Second
\item\label{C} Want to have (ii') here.
\item\label{D} Fourth
\end{enumerate}
Let's reference them: \ref{A}, \ref{B}, \ref{C} (want to have (ii') also here), and \ref{D}.
\end{document}

与此相反,我希望

(我先来

(二)第二

(ii') (ii)的另一个版本。

(三)第四

让我们参考它们:(i)、(ii)、(ii')、(iii)。

如何在 latex 中做到这一点而不对标准宏引入全局更改?我们仍然可以引入我们自己的新宏和对标准宏的局部更改。此外,我仍然想引用所有带有\ref{A}\ref{B}\ref{C}、的项目\ref{D},而不是带有(\ref{A})(\ref{B})(\ref{C})、 的项目(\ref{D})

建议在 enumitem 内联列表中引用自定义标签项不会将素数放入括号中(至少我不知道该怎么做)。全局删除括号,如下所示如何使用 enumitem 在引用项上添加下标?需要我手动将括号引入对书中所有剩余 100 多页的许多列表项的引用;这不是我想要的。(顺便说一句,那里对已接受答案的评论令人困惑。)我唯一想更改的乳胶代码部分实际上是有问题的列表及其周围环境,也许还有序言。

附录:另外使用 cleveref 时,请参见enumitem 和 cleveref 的问题

答案1

主要问题是如何打印素数。

\documentclass{article}
\usepackage{textcomp}
\usepackage{enumitem}
\makeatletter
\newcommand\myprimeitem{%
 \item[(\roman{enumi}\textquotesingle)]\def\@currentlabel{(\roman{enumi}\textquotesingle)}}
\makeatother
\begin{document}
\begin{enumerate}[label=(\roman*)]
\item\label{A} First
\item\label{B} Second
\myprimeitem\label{C} Second again
\item\label{D} Fourth
\end{enumerate}
Let's reference them: \ref{A}, \ref{B}, \ref{C}, \ref{D}
\end{document}

在此处输入图片描述

答案2

为此,不使用 enumitem 包会更容易。这样做的原因是\refstepcounter使用\theenumi\item(如包所定义)没有。(注意,这仅适用于第一级。计数器名称为 enumi、enumii、enumiii 等。)

\documentclass{article}
%\usepackage{enumitem}

\newcommand{\itemprime}[1]% #1 = contents (inside group)
{\bgroup% make changes local
  \renewcommand{\theenumi}{(\roman{enumi}')}%
  \addtocounter{enumi}{-1}%
  \item#1
\egroup}

\begin{document}
\begin{enumerate}\renewcommand{\theenumi}{(\roman{enumi})}
\item\label{A} First
\item\label{B} Second
\itemprime{\label{C} Want to have (ii') here.}
\item\label{D} Fourth
\end{enumerate}
Let's reference them: \ref{A}, \ref{B}, \ref{C} (want to have (ii') also here), and \ref{D}.
\end{document}

演示

相关内容