如何定义/附加首字母缩略词到图形而不在文本中显示它?

如何定义/附加首字母缩略词到图形而不在文本中显示它?

我用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不会打印任何内容,但它只会标记缩写词是否已使用(与短/长格式有关),并且不会生成警告。

相关内容