我的问题和问题基本相同获取当前不带标签的“部分”名称。但是我还需要此命令在字幕中也能起作用(所有链接的解决方案都不支持)。
我尝试了所有三种变体此解决方案:
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}