Linguex
只允许 3 个级别的示例,但我需要能够重现这一点(除了我不需要第一级标签包含章节编号或向右刷新)。
我想保留对子示例的本地引用,即跳过父子标签。
如果我们想跳过第一和第二级,如 (1b) 而不是 (28.E.1b) 中所述,并且如果涉及点作为分隔符,则
refcount
可以调用该包,以便使用 \gobbletodot 和 \getrefkeybykeydefault 宏- 参见有什么方法可以引用标签的特定组件吗?(感谢 Ulrich Diez)。
答案1
这可能不是最理想的,但枚举项包当然可以处理这样的事情。
编辑:我编辑了答案,还添加了一个计数器,用于右侧的示例数字;这有点不合时宜,可能还有更优雅的解决方案,尤其是如果它们也可以放在左侧的话。也许有人会有更好的主意。
\documentclass{article}
\usepackage{enumitem}
\newcounter{myexample}
\setcounter{myexample}{0}
\newenvironment{myexamples}{%
\hbox{\smash{\raisebox{-1\baselineskip}{\parbox{\linewidth}{\hfill%
\refstepcounter{myexample}(\themyexample)}}}}\nointerlineskip%
\vspace*{-0.5\baselineskip}\begin{enumerate}%
}{%
\end{enumerate}
}
\setlist{noitemsep}
\setlist[1]{label=\Alph*.,leftmargin=4em}
\setlist[2]{label=\arabic*.,leftmargin=1.5em,labelsep=0.3em,
ref=\arabic{myexample}.\Alph{enumi}.\arabic*}
\setlist[3]{label=\alph*.,leftmargin=*,
ref=\arabic{myexample}.\Alph{enumi}.\arabic{enumii}\alph*}
\begin{document}
\begin{myexamples}
\item \begin{enumerate}
\item \begin{enumerate}
\item John is a robber.\label{johnrobber}
\item John is a thief.
\end{enumerate}
\item \begin{enumerate}
\item John robs things.
\item *John thieves things. (compare \emph{thievery}) \label{johnthievery}
\end{enumerate}
\end{enumerate}
\end{myexamples}
As you can see in \ref{johnrobber} and \ref{johnthievery} \ldots
\end{document}
(如果您需要与另一个示例集共享数字,比如,对于 linguex,则可能需要做更多工作。)