引用选定的 linguex 子示例而不使用括号

引用选定的 linguex 子示例而不使用括号

这是对该问题(和答案)的后续这里

我和 OP 有同样的问题,我无法在文本中括号内的示例数字周围使用括号。与 OP 不同,我也有对子示例的引用。我尝试使用原始代码:

\documentclass{minimal}
\usepackage{linguex}
\newif\ifparens\parensfalse
\renewcommand{\theExNo}{\protect\theExLBr\arabic{ExNo}\protect\theExRBr}
\renewcommand\theExLBr{\ifparens\else(\fi}
\renewcommand\theExRBr{\ifparens\else)\fi}
\newcommand\pref[1]{{\parenstrue\ref{#1}}}
\begin{document}

\ex. \label{ex:1} \a. \label{ex:2}Look, an example!
\b. \label{ex:3}And there's another one!

%\pref{ex:1},
\pref{ex:2}, \pref{ex:3},

\ref{ex:1}, \ref{ex:2}, \ref{ex:3}


\end{document}

我得到这个输出:

如您所见,\pref{}如果涉及子级,该命令仍会保留数字周围的括号,此外,它还会引入一个带有较大垂直空间的换行符。如果我在下面注释掉,换行符就会消失\pref{ex:1},但括号会保留。

我一直无法弄清楚如何才能使其\pref{}完全通用,以便它适用于任何级别的交叉引用。有办法吗?

我知道我可以对完整示例进行交叉引用,并手动添加对子示例的引用(如\pref{ex:1}a),但这会破坏链接,我想避免这种情况。否则,我可能会完全重新定义开括号和闭括号(如对 OP 的回答中所建议的那样),然后将其用于\eqref{}正常情况,并保留\ref{}用于括号中的出现。但是,对于彩色链接和超链接,括号显然不是链接的一部分——这也是我想避免的。

答案1

对于一般解决方案,在定义之前,还需要重新定义两个变量\theSubExNo和。\theSubSubExNo\pref{}

唯一需要做的更改是保护变量\theExLBr\theExRBr。作为参考,这里是 MWE:

\documentclass{article}
\usepackage{linguex}

\makeatletter
\newif\ifparens\parensfalse
\renewcommand{\theExNo}{\protect\theExLBr\arabic{ExNo}\protect\theExRBr}
\renewcommand\theExLBr{\ifparens\else(\fi}
\renewcommand\theExRBr{\ifparens\else)\fi}
\renewcommand{\theSubExNo}{%
  \hbox{\if@noftnote\protect\theExLBr\Exarabic{ExNo}\firstrefdash
      \Exalph{SubExNo}\protect\theExRBr
    \else
      \protect\theFnExLBr\Exroman{FnExNo}\firstrefdash%
      \Exalph{SubExNo}\protect\theFnExRBr
    \fi}}

\renewcommand{\theSubSubExNo}{%
  \hbox{\if@noftnote\protect\theExLBr%
          \Exarabic{ExNo}\firstrefdash\Exalph{SubExNo}\secondrefdash
             \Exroman{SubSubExNo}\protect\theExRBr%
    \else\protect\theFnExLBr\Exroman{FnExNo}\firstrefdash
              \Exalph{SubExNo}\secondrefdash\Exarabic{SubSubExNo}\protect\theFnExRBr\fi}}%
\makeatother

\newcommand\pref[1]{{\parenstrue\ref{#1}}}

\begin{document}

\ex. \label{ex:1} \a. \label{ex:2}Look, an example!
\b. \label{ex:3}And there's another one!

This is the solution (look at the total absence of parentheses in \pref{ex:1}, \pref{ex:2}, and \pref{ex:3})!


And here are the normal references: \ref{ex:1}, \ref{ex:2}, and \ref{ex:3}.

\end{document}

输出如下:

在此处输入图片描述

编辑:将minimal类别更改为articleAlan Munn 所建议的。

相关内容