获取当前“部分”名称,不带标题中的标签

获取当前“部分”名称,不带标题中的标签

我的问题和问题基本相同获取当前不带标签的“部分”名称。但是我还需要此命令在字幕中也能起作用(所有链接的解决方案都不支持)。

我尝试了所有三种变体此解决方案

  • nameref-> 根本不起作用(编译错误)
  • titleref-> 编译成功,但结果错误
  • zref-titleref-> 确实编译了,但是结果是错误的(与 titleref 完全一样)

我修改的示例如下所示:

\documentclass{article}

\usepackage{titleref}
\makeatletter
\newcommand*{\currentname}{\TR@currentTitle}
\makeatother

\begin{document}

\section{My section name}
The name of the current section is: "\currentname{}".\\
It should be: "My section name".

\subsection{My subsection name}
The name of the current subsection is: "\currentname{}".\\
It should be: "My subsection name".

\begin{figure}
\caption{AAA "\currentname{}" BBB}
FIGURE
\end{figure}

\end{document}

图形标题的预期输出是

AAA "My subsection name" BBB.无论如何

AAA "AAA "My subsection name" BBB" BBB

我能做些什么来让\currentname{}字幕也发挥作用吗?

答案1

titleref包重新定义了\caption命令,以便将其内容保存到\TR@currentTitle。这就是您在输出中看到重复的原因。

titleref您可以通过执行以下操作来停用on的效果\caption

\makeatletter
\AtBeginDocument{\let\@caption\TR@old@caption}
\makeatother

完整代码:

\documentclass{article}

\usepackage{titleref}
\makeatletter
\newcommand*{\currentname}{\TR@currentTitle}
\AtBeginDocument{\let\@caption\TR@old@caption}
\makeatother

\begin{document}

\section{My section name}
The name of the current section is: "\currentname{}".\\
It should be: "My section name".

\subsection{My subsection name}
The name of the current subsection is: "\currentname{}".\\
It should be: "My subsection name".

\begin{figure}
\caption{AAA "\currentname{}" BBB}
\end{figure}

\end{document}

相关内容