我用acronym
包来管理我的首字母缩略词。是否可以将首字母缩略词定义附加到所包含图形(PDF,而非 LaTeX 图形)的 LaTeX 代码中?
也就是说,我希望确保我的 LaTeX 代码在首字母缩略词定义列表中找不到首字母缩略词时会生成警告。但是,它不应该显示(即,我不想在标题中定义/显示它)
例如:
\begin{figure}
\includegraphics[width=\columnwidth]{fig_10.pdf}
\begin{usedacronymsbutnotshown}
\acs{MWE}
\end{usedacronymsbutnotshown}
\caption{Blablabla}
\label{fig:pnet:10}
\end{figure}
Overview of all acronyms in my document:
\begin{acronym}
\acro{HDTV}{High-definition Television}
\acro{MWE}{Minimum Working Example} %If line not here, I would get a compile warning
...
\end{acronym}
答案1
每个acronym
缩写词<id>
都有一个关联的宏\fn@<id>
。以下代码定义了\useac{<id>}
通过测试关联命令来测试缩写词是否存在,如果存在,则调用该宏\acronymused{<id>}
来告知acronym
缩写词已被使用。
这样,如果缩写词列表中未定义该缩写词,您就会收到警告和使用该选项时,使用的缩写词\useac{<id>}
将被标记为已使用,并将打印在缩写词列表中printonlyused
。测试缩写词是否已定义是为了避免missing \item
在环境中不存在缩写词时出现错误{acronym}
。
\documentclass{article}
\usepackage[demo]{graphicx}
\usepackage[printonlyused]{acronym}
\newcommand*\useac[1]{%
\expandafter\ifx\csname fn@#1\endcsname\relax
\PackageWarning{acronym}{Acronym `#1' is not defined}%
\else
\acronymused{#1}%
\fi
}
\begin{document}
\begin{figure}
\includegraphics[width=\columnwidth]{fig_10.pdf}
\useac{MWE}
\caption{Blablabla}
\label{fig:pnet:10}
\end{figure}
Overview of all acronyms in my document:
\begin{acronym}
\acro{HDTV}{High-definition Television}
\acro{MWE}{Minimum Working Example}
\end{acronym}
\end{document}
答案2
您可以使用其中一个幻影命令来插入一个空框。
\begin{document}
\begin{figure}
\centering
\Huge FIGURE%
\rlap{\hphantom{\ac*{MWE}}}
\caption{Blablabla}
\label{fig:pnet:10}
\end{figure}
Overview of all acronyms in my document:
\begin{acronym}
\acro{HDTV}{High-definition Television}
%% warning because this is commented \acro{MWE}{Minimum Working Example}
\end{acronym}
\end{document}
这里的目的\rlap
是不要让空白处影响任何事情。
这是一个临时解决方案,但没有现成的命令acronym
可以像这样引用。有一个命令\acused
不会打印任何内容,但它只会标记缩写词是否已使用(与短/长格式有关),并且不会生成警告。