这是我的脚本:在我的类文件中我添加了以下条目:
\usepackage[intoc]{nomencl}
\renewcommand{\nomname}{\large \textbf{Mathematical Notation}}
\makenomenclature
\usepackage{datatool}
\begin{filecontents*}{test.csv}
Acronym,Description
LED,Light emitting diode
FET,Field effect transistor
\end{filecontents*}
\DTLloaddb{acronyms}{test.csv}
\DTLsort{Acronym}{acronyms}
在我的 acronym.tex 文件中我有以下条目:
\chapter*{Terminology / Notation}
\section*{\large \textbf{Acronyms / Abbreviations}}
\begin{itemize}
\DTLforeach*{acronyms}{\thisAcronym=Acronym,\thisDesc=Description}%
{\item \textbf{\thisAcronym} \thisDesc}%
\end{itemize}
\printnomenclature
在我的第一章中:
$\gamma = \int_1^\infty\left({1\over\lfloor x\rfloor}
-{1\over x}\right)\,dx$
\nomenclature{$\gamma$}{Euler–Mascheroni constant\nomrefpage}
在我的主 tex 文件中:
\begin{document}
\include{Acronyms/acronyms}
\end{document}
实际上,我希望首字母缩略词和命名法应该在同一个“术语/符号”下,但应该打印在单独的页面上。因为我不想使用词汇表,因为在 Windows 下使用 Texlipse 编译起来相当复杂。所以我使用了 datatool 包,我们可以在其中指定可以保存为 csv 并写回 pdf* 的首字母缩略词列表。另外,我想使用命名法,因为我的报告中有方程式。如果我们独立使用命名法包,它工作正常。但是当我在 acrnym.tex 文件中使用 \printnomenclature 时,命名法没有被打印出来。有什么帮助吗?
答案1
你可能缺少必要的 makeindex 运行(相关问题在这里)。以下使用您的摘录的 MWE 对我来说很好用——我建议使用 latexmk 和适当的 .latexmkrc 来使这更容易:
\documentclass{report}
\usepackage[intoc]{nomencl}
\renewcommand{\nomname}{\large \textbf{Mathematical Notation}}
\makenomenclature
\usepackage{filecontents}
\begin{filecontents*}{test.csv}
Acronym,Description
LED,Light emitting diode
FET,Field effect transistor
\end{filecontents*}
\begin{filecontents*}{acronyms.tex}
\chapter*{Terminology / Notation}
\section*{\large \textbf{Acronyms / Abbreviations}}
\begin{itemize}
\DTLforeach*{acronyms}{\thisAcronym=Acronym,\thisDesc=Description}%
{\item \textbf{\thisAcronym} \thisDesc}%
\end{itemize}
\printnomenclature
\end{filecontents*}
\usepackage{datatool}
\DTLloaddb{acronyms}{test.csv}
\DTLsort{Acronym}{acronyms}
\begin{document}
\chapter{One}
This document works fine as long as you run the right \verb|makeindex| command.
It may be easiest to use \verb|latexmk| with the following lines in a file named
\verb|.latexmkrc| or \verb|latexmkrc| in the same directory as the .tex files.
\begin{verbatim}
add_cus_dep("nlo", "nls", 0, "nlo2nls");
sub nlo2nls {
system("makeindex $_[0].nlo -s nomencl.ist -o $_[0].nls -t $_[0].nlg");
}
\end{verbatim}
$\gamma = \int_1^\infty\left({1\over\lfloor x\rfloor}
-{1\over x}\right)\,dx$
\nomenclature{$\gamma$}{Euler-Mascheroni constant\nomrefpage}
\include{acronyms}
\end{document}
答案2
我遇到了同样的问题,为了解决这个问题,我nomencl.ist
从互联网上下载了罚款,把它放在工作目录中,把 makeindex 命令改为搜索这个文件(即./nomencl.ist
),就这样,编译过程没有问题。