我试图将工具提示置于首字母缩略词上方以显示完整格式。我的命令\ac
适用于带有纯文本描述的首字母缩略词。我遇到的问题是,如果首字母缩略词包含其他首字母缩略词(例如\gls{other}
完整格式),则该部分不会展开。
编辑:
我遇到的另一个问题是,如果描述具有某种格式,例如,\bfseries
工具提示包含不需要的文本,我相信这是来自字符扩展(?)\bfseries
。这让我想问一个问题:有没有办法扩展一些命令并只保留纯文本字符?也许扩展一个命令,并删除除 11 和 12 之外的所有 cat 代码?我可能会深入研究显式语法或 LuaTeX 来看看这会是什么样子。
MWE 如下:
\documentclass[11pt]{scrartcl}
\usepackage[xindy,style=super,nogroupskip,section=paragraph,savewrites=true,acronym]{glossaries-extra}
\makeglossaries
\usepackage{pdfcomment}
\newcommand{\SomeWords}{Hello World}
\newacronym{abc}{ABC}{Acronym just BeCause}
\newacronym{sabc}{SABC}{Special \gls{abc}. \SomeWords}
\newcommand{\ac}[1]{\pdftooltip{\gls*{#1}}{\glsentrylong{#1}}}
\begin{document}
\ac{abc} % tooltip is "Acronym just BeCause. Hello World"
\ac{sabc} % tooltip is "Special abc. Hello World", I want "Special Acronym just BeCause. Hello World"
% does not expand (?) the \gls{abc} to its long form? I am surprised that \SomeWords gets expanded however.
\end{document}
答案1
我想到了一个解决方案,虽然它不能完全满足我理解这个问题的愿望,但可以为其他人提供一种解决方法。我还注意到,如果首字母缩略词的长格式包含任何格式化命令,例如,会\bfseries
产生很多额外的不需要的字符。我的简单想法是创建“例外”命令,因此,如果我有任何首字母缩略词在其长格式中包含其他首字母缩略词或格式化命令,则创建一个名为的命令[key]ToolTipText
并将其拼写成纯文本。
\newcommand{\GetTheToolTipText}[1]{%
\ifcsname#1ToolTipText\endcsname%
\csname#1ToolTipText\endcsname%
\else%
\glsentrylong{#1}
\fi%
}
\newcommand{\ac}[1]{\pdftooltip{\gls*{#1}}{\GetTheToolTipText{#1}}}
In the case of sabc, simply define \sabcToolTipText in plain text how you'd like it to appear. Not idea, but a workaround for the exceptions.