包含其他缩写词的缩写词

包含其他缩写词的缩写词

我正在使用包含其他首字母缩略词的标准天体物理学首字母缩略词,例如日冕物质抛射 (CME) 行星际日冕物质抛射 (ICME),我希望它们能够一起工作,也就是说,如果我已经使用了 \ac{CME} 并且 CME 的完整版本已经打​​印出来,我希望 \ac{ICME} 的结果是行星际 CME (ICME),如果不是,它应该给出完整版本。

换句话说,我想要这样的东西

\documentclass[paper=a4, fontsize=12pt]{article}
\usepackage[utf8]{inputenc} 
\usepackage[english]{babel} % English language/hyphenation
\usepackage[pdftex]{graphicx}% Enable pdflatex
\usepackage[printonlyused]{acronym}

\begin{document}
\begin{acronym}
\acro{CME}{Coronal Mass Ejection}
\acro{ICME}{Interplanetary \ac{CME}}
\end{acronym}

\section{Text}
\acresetall

The \ac{ICME} is a version of \ac{CME}.

\acresetall

A version of \ac{CME} is called \ac{ICME}.

\end{document}

导致这个 我希望它看起来像什么

而不是现在这样 它实际上是什么样子的

答案1

这是解决您问题的方法。我添加了宏acx,该宏会打印首字母缩略词的长版本或短版本,并且不会将其标记为已使用。

编辑:我改变了之前的答案,因为再想想它太复杂了。

在此处输入图片描述

\documentclass[paper=a4, fontsize=12pt]{article}
\usepackage[utf8]{inputenc} 
\usepackage[english]{babel} % English language/hyphenation
\usepackage[pdftex]{graphicx}% Enable pdflatex
\usepackage[printonlyused]{acronym}

\makeatletter
\newcommand{\acx}{\protect\@acx}%
\newcommand{\@acx}[1]{%
  \ifAC@dua
   \acl{#1}%
  \else
   \expandafter\ifx\csname ac@#1\endcsname\AC@used
      \acs{#1}%
   \else
      \acl{#1}%
   \fi
  \fi
}
\makeatother

\begin{document}
\begin{acronym}
\acro{CME}{Coronal Mass Ejection}
\acro{ICME}{Interplanetary \acx{CME}}
\end{acronym}

\section{Text}
\acresetall

The \ac{ICME} is a version of \ac{CME}.

\acresetall

A version of \ac{CME} is called \ac{ICME}.

\end{document}

答案2

我的评论几乎指向正确的方向:

\documentclass{article}
\usepackage[printonlyused]{acronym}

\begin{document}

\begin{acronym}
    \acro{CME}{Coronal Mass Ejection}
    \acro{ICME}{Interplanetary \acl{CME}}
\end{acronym}

\section{Text}
\acresetall

The \ac{ICME} is a version of \ac{CME}.

\acresetall

A version of \ac{CME} is called \ac{ICME}.

\end{document}

(请注意,在的定义中使用了\acl{CME}而不是)得出:\ac{CME}\acro{ICME}

上述代码的输出

我以为您可能需要考虑首字母缩略词是否标记为已使用,但显然在本例中不是这样(\aclu等等)。不过,请检查第一次扩展是否确实发生,和/或\acresetall在正文开头进行(以及摘要开头,如果您在那里使用它们)。

相关内容