showexpl LTXexample 和枚举内的引用

showexpl LTXexample 和枚举内的引用

我使用了LTXexample定义的出色环境showexpl来说明一些 LaTeX 基础知识。但是,以下代码使它感到困惑:引用仍然存在??无论我重新编译多少次......

\documentclass{article}
\usepackage{showexpl}
\begin{document}

\begin{LTXexample}[frame=none]
  \begin{enumerate}
  \item No need to manually number items here!
  \item\label{second} Number two added automatically
  \item Third item
  \end{enumerate}
  And here is a reference to item number \ref{second}
\end{LTXexample}

\end{document}

我已经在方程式环境中管理了内部引用LTXexample,因此这是需要枚举的特定内容...有什么想法可以解决它吗?(我甚至不能作弊,只放“2”,因为代码与它并排显示......)

更新:我给作者发了邮件,showexpl但还没收到回复。有谁想深入研究一下代码,看看是否能明显地解决这个问题?

答案1

这不是一个错误。这是故意的。showexpl 在 \SX@@preset 中设置了相当多的 \@gobble 命令。SX@1-label 来自 LTXexample 本身,而不是来自 \label{second}。您可以重新激活 \label:

\documentclass{article}
\usepackage{showexpl}
\begin{document}
\let\orilabel\label
\begin{LTXexample}[frame=none,preset=\let\label\orilabel]
  \begin{enumerate}
  \item No need to manually number items here!
  \item\label{second} Number two added automatically
  \item Third item
  \end{enumerate}
  And here is a reference to item number \ref{second}
\end{LTXexample}

\end{document}

答案2

在我看来,这似乎是某个地方的一个错误showxmpl。如果你查看文件.aux,你会看到预期的标签

\newlabel{SX@1}{{}{1}}

所以如果你破解.aux阅读

    \newlabel{second}{{2}{1}}

那么一切就会起作用,但是当然你必须在每次运行 LaTeX 时重新执行此操作。

相关内容