
Linguex
例は 3 レベルまでしか許可されませんが、これを再現できる必要があります (ただし、第 1 レベルのラベルに章番号を含めたり、右揃えにしたりする必要はありません)。
サブ例へのローカル参照、つまり親サブラベルのスキップを維持したい。
(28.E.1b)の代わりに(1b)のように第1レベルと第2レベルをスキップしたい場合、区切りとしてドットが含まれる場合は、
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 のそのままの状態で別の例セットと数値を共有する必要がある場合は、さらに作業が必要になる可能性があります。)