
Linguex
只允許 3 級範例,但我需要能夠重現這一點(除非我不需要第一級標籤來包含章節號或向右刷新)。
我想保留子範例的本機引用,即跳過父子標籤。
如果我們想像(1b)那樣跳過第一層和第二層而不是(28.E.1b),並且如果涉及點作為分隔符,則
refcount
可以調用該包,從而使用\gobbletodot和\ getrefkeybykeydefault 宏- 參見有什麼方法可以引用標籤的特定組件嗎?(感謝烏爾里希·迪茲)。
答案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,可能需要做更多工作。)