嵌套枚举项的交叉引用显示句点和括号

嵌套枚举项的交叉引用显示句点和括号

我希望对 d 列表中嵌套项目的引用enumerate包含列表中的所有标点符号。这是一个简单示例:

\documentclass{article}
\begin{document}
\begin{enumerate}
    \item whatever
    \item 1st level \label{first}
        \begin{enumerate}
            \item whatever
            \item 2nd level \label{second}
                \begin{enumerate}
                    \item whatever
                    \item 3rd \label{third} 
                        \begin{enumerate}
                            \item whatever
                            \item 4th \label{fourth}
                        \end{enumerate}
                \end{enumerate}
        \end{enumerate}
\end{enumerate}

1st: \ref{first}

2nd: \ref{second}

3rd: \ref{third}

4th: \ref{fourth}

\end{document}

这是我得到的输出(我将其显示为代码,因为引号没有保留行首的空格)

1. whatever  
2. 1st level  

    (a) whatever 

    (b) 2nd level  

        i. whatever  

       ii. 3rd  

            A. whatever  

            B. 4th

1st: 2  
2nd: 2b  
3rd: 2(b)ii  
4th: 2(b)iiB

问题是最后的四个参考文献缺少标点符号。我希望最后的参考文献看起来像这样:

第一:2.
第二:2.(b)
第三:2.(b).ii.
第四:2.(b).ii.B.

尽管不可否认它很丑,但有人还是要求参考文献与列表中的完全一样。

我希望不使用\usepackage大多数 Latex 安装中不标准的任何内容来执行此操作。因此,我想重新定义工作方式\ref并让其保留所有标点符号,或者重新定义任何可以让它按照我的要求执行的内容,而不包含任何外部包。

答案1

没有 OP 想要的任何包裹。

\documentclass{article}
\renewcommand{\theenumi}{\arabic{enumi}.}
\renewcommand{\labelenumi}{\theenumi}
\renewcommand{\theenumii}{(\alph{enumii})}
\renewcommand{\labelenumii}{\theenumii}
\renewcommand{\theenumiii}{\roman{enumiii}.}
\renewcommand{\labelenumiii}{\theenumiii}
\renewcommand{\theenumiv}{\Alph{enumiv}.}
\renewcommand{\labelenumiv}{\theenumiv}
\makeatletter
\renewcommand\p@enumii{\theenumi}
\renewcommand\p@enumiii{\theenumi\theenumii.}  %% if you don't want that dot between "(b)" and "ii" remove the . at the end after \theenumii
\makeatother
\begin{document}
\begin{enumerate}
    \item whatever
    \item 1st level \label{first}
        \begin{enumerate}
            \item whatever
            \item 2nd level \label{second}
                \begin{enumerate}
                    \item whatever
                    \item 3rd \label{third}
                        \begin{enumerate}
                            \item whatever
                            \item 4th \label{fourth}
                        \end{enumerate}
                \end{enumerate}
        \end{enumerate}
\end{enumerate}

1st: \ref{first}

2nd: \ref{second}

3rd: \ref{third}

4th: \ref{fourth}

\end{document}

在此处输入图片描述

相关内容