我正在使用 命名法包来定义论文各章节中的术语。我是第一次使用这个包,并使用例如
\nomenclature[z-ANN]{ANN}{Artificial Neural Network}.
但是,同一术语可能会出现在不同的章节中 - 因为(无意中),我多次定义了某些术语,因此它们在主要论文文档中多次出现。术语表使用 显示\printnomenclature
。
有没有办法只显示独特的命名法内容(例如,ANN 在主命名法中只显示一次,即使它可能被定义多次。谢谢
编辑-事实证明,使用该acro
包可以实现这一目的的简单方法!
答案1
不是使用该包的解决方案nomencl
,而是使用该包的替代方案acro
(根据问题评论中的要求):acro
允许创建“本地”首字母缩略词列表,其中仅列出在两次使用之间使用的首字母缩略词\acbarrier
。此外,全部可以创建首字母缩略词。这样就无需多次定义首字母缩略词。
\printacronyms % complete list
\acbarrier
...
\printacronyms[local] % local list
\acbarrier
...
\printacronyms[local] % another local list
\acbarrier
这些屏障可以自动调用,例如通过将它们添加到命令中\section
。下面的示例演示了如何使用\preto
(由etoolbox
包提供)。
\documentclass{article}
\usepackage{acro}
\acsetup{
barriers/use = true ,
barriers/reset = true
}
\newcommand\printsectionacronyms[1]{%
\printacronyms[local,heading=none,preamble=\subsection{Acronyms to Section #1}]
}
\DeclareAcronym{ANN}{
short = ANN ,
long = Artificial Neural Network
}
\DeclareAcronym{xx}{
short = xx ,
long = just a test
}
\DeclareAcronym{yy}{
short = yy ,
long = another test
}
\usepackage{etoolbox}
% make every \section a barrier:
\preto\section{\acbarrier}
\begin{document}
\printacronyms[name=All Acronyms in the Document]
\section{Foo}
\subsection{Foo Subsection}
\ac{xx} and \ac{ANN}
\printsectionacronyms{Foo}
\section{Bar}
\subsection{Bar Subsection}
\ac{ANN} and text
\printsectionacronyms{Bar}
\section{Baz}
\subsection{Baz Subsection}
\ac{xx} and \ac{yy}
\printsectionacronyms{Baz}
\end{document}