为何我的印刷命名法不起作用?

为何我的印刷命名法不起作用?

这是我的脚本:在我的类文件中我添加了以下条目:

\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),就这样,编译过程没有问题。

相关内容