`linguex` 编号列表嵌入

`linguex` 编号列表嵌入

我正在使用linguex并需要一个具有四层嵌入的编号列表。我希望能够为第四层嵌入设置自定义编号项目符号(标签),并能够在文本中无歧义地交叉引用它。下面的内容为我提供了四层嵌入,但不允许无歧义的标签和交叉引用。

\documentclass{article}
\usepackage{amsmath}
\usepackage{amsthm}

\usepackage{natbib}
\usepackage{linguex}

\begin{document}

  \ex. Level one.\label{l1}
   \a. Level 2.\label{l2}
    \a. Level 3.\label{l3}
     \a. Level 4.\label{l4}
   \z.


\end{document}

答案1

这里尝试为 定义一个额外的级别linguex。它似乎有效,但可能会产生意想不到的副作用,因此请谨慎测试。

linguex这个想法是定义一个额外的计数器,它与最低级别的计数器绑定(即用其重置)SubSubExNo。使用新定义的命令,该linguex命令\a.可以与打印(大写字母)和增加这个新计数器相结合。间距会稍微调整一下以\hskip定位标签。另一个新命令的定义类似于\b.

交叉引用的标签是通过重新定义来设置的\@currentlabel,如https://tex.stackexchange.com/a/292890/。此处的交叉引用由四级计数器ExnoSubExNoSubSubExNo新计数器组成SubSubSubExNo

代码:

\documentclass{article}
\usepackage{linguex}
\newcounter{SubSubSubExNo}[SubSubExNo]
\setcounter{SubSubSubExNo}{0}

\makeatletter
\newcommand{\lfourlabel}{%
  \@bsphack%
  \csname phantomsection\endcsname % in case hyperref is used
  \def\@currentlabel{(\arabic{ExNo}-\alph{SubExNo}-\roman{SubSubExNo}-\Alph{SubSubSubExNo})}%
  \@esphack%
}
\makeatother

\newcommand{\lvlfoura}{%
\a. \hskip -1em\stepcounter{SubSubSubExNo}\Alph{SubSubSubExNo}.\lfourlabel\hskip 1em%
}
\newcommand{\lvlfourb}{%
\b. \hskip -1em\stepcounter{SubSubSubExNo}\Alph{SubSubSubExNo}.\lfourlabel\hskip 1em%
}

\begin{document}

  \ex. Level one.\label{l1}
   \a. Level 2.\label{l2}
    \a. Level 3.\label{l3}
     \lvlfoura Level 4\label{l4}.
     \lvlfourb Also level 4.
     \z.
    \b. Also level 3\label{l32}.
     \lvlfoura Level 4.
     \lvlfourb Also level 4\label{l42}.
   \z.

See example \ref{l3} and \ref{l4} and higher level \ref{l32} and \ref{l42}.

\end{document}

结果:

在此处输入图片描述

相关内容