大家好,
我正在用我所在部门创建的特定 latex 模板写论文。我只是将模板的 zip 文件导入到 overleaf 项目中,然后进行编译。但是命名法和指数在 pdf 中根本不显示。
pdfLatex 编译的主要.tex 文件(mscThesis.tex)由以下相关部分组成:
% Finalize the thesis data
\setThesisInfo
% ...
% some other code
% ...
\begin{document}
% ...
% Some example code here
% ... at some point:
% Bibliography
\bibliographystyle{ieeetr}
\printbib{MyBib}
%
\include{glossary}
%
% Index
\cleardoublepage
\printindex
\end{document}
在文件中glossary.tex
我们发现
% Glossary
\chapter{Glossary} %
%
\printacronyms
\begin{acronym}[\hspace{0.8in}] % 0.8in is also used by the nomenclature
\acro{3mE}[3\textlarger{m}E]{Mechanical, Maritime and Materials Engineering}%
\acro{AMS}{American Mathematical Society}%
\acro{DCSC}{Delft Center for Systems and Control}%
\acro{TU}[TU D\textlarger{elft}]{Delft University of Technology}%
\end{acronym}%
%
%
% Nomenclature
\printnomencl%
该命令setThesisInfo
定义在mscThesis.cls
:
\newcommand{\setThesisInfo}{%
\makenomenclature
\makeindex
\hypersetup{pdftitle=Masters Thesis: \msctitle,
pdfauthor=\mscname,
pdfsubject=\mscsubtitle,
pdfkeywords=\msckeywords}
}
其他相关定义mscThesis.cls
有:
\RequirePackage{nomencl} % cool nomenclature listing
\RequirePackage{makeidx}
% ...
% some other definition code
% ... then at some point this:
\renewcommand{\nomname}{List of Symbols}
\setlength{\nomitemsep}{-0.5\parsep}
\newcommand{\abbrev}[2]%
{#2 (#1)\nomenclature[a ]{#1}{\MakeUppercase#2}}
\newcommand{\lsymb}[2]%
{#1\nomenclature[c ]{#1}{\MakeUppercase#2}}
\newcommand{\gsymb}[2]%
{#1\nomenclature[b ]{#1}{\MakeUppercase#2}}
\newcommand{\subs}[2]%
{\nomenclature[d ]{$ _{#1} $}{\MakeUppercase#2}}
\newcommand{\supers}[2]%
{\nomenclature[e ]{$ ^{#1} $}{\MakeUppercase#2}}
\newcommand{\others}[2]%
{\nomenclature[f ]{#1}{\MakeUppercase#2}}
\renewcommand{\nomgroup}[1]{%
\ifthenelse{\equal{#1}{A}}{%
\medskip\item[\large\textbf{\textsf{Abbreviations}}]\medskip}{%
\ifthenelse{\equal{#1}{C}}{%
% \medskip\item[\large\textbf{\textsf{Latin Symbols}}]\medskip}{%
\medskip}{%
\ifthenelse{\equal{#1}{B}}{%
% \medskip\item[\large\textbf{\textsf{Greek Symbols}}]\medskip}{%
\medskip}{%
\ifthenelse{\equal{#1}{D}}{%
% \medskip\item[\large\textbf{\textsf{Subscripts}}]\medskip}{%
\medskip}{%
\ifthenelse{\equal{#1}{E}}{%
% \medskip\item[\large\textbf{\textsf{Superscripts}}]\medskip}{%
\medskip}{%
\ifthenelse{\equal{#1}{F}}{%
% \medskip\item[\large\textbf{\textsf{Other}}]\medskip}
\medskip}{%
}%
}}}}}}
\newcommand{\printnomencl}{%
\phantomsection % Added by Martijn van de Giessen
\addcontentsline{toc}{section}{\numberline{}\nomname}
% \markboth{\nomname}{\nomname}
\printnomenclature[0.8in]
}
在编译后的mscThesis.tex
文件中,我们确实有一些索引内容的示例和命名法示例,因此可能并不是根本没有任何示例可以输出。例如:
\section{About the Nomenclature}
When you use symbols in your thesis -- as you probably will -- you can put them into the nomenclature listing (List of Symbols) at the back of your thesis. \tabref{tab:nomencl} shows the \LaTeX\ commands you need.\index{nomenclature}
\begin{table}%
\centering
\caption{Nomenclature codes}
\label{tab:nomencl}
\begin{tabular}{llcl}
\toprule
Code & Usage & Example\\
\midrule
\verb"\gsymb{}" & Greek symbols & \gsymb{$\gamma$}{Path Angle}\\
\verb"\lsymb{}" & Letter symbols & \lsymb{$H(s)$}{Transfer function}\\
\verb"\supers{}" & Superscript symbols & \supers{max}{Maximum} &\emph{only printed in the List of Symbols} \\
\verb"\subs{}" & Subscript symbols & \subs{min}{Minimum} &\emph{only printed in the List of Symbols}\\
\verb"\others{}" & Other symbols & \others{[kts]}{Knots} \others{$^{\circ}$, [deg]}{Degrees} &\emph{only printed in the List of Symbols}\\
\bottomrule
\end{tabular}
\end{table}
最后,也许它与 .ist 文件有关:myindex.ist
和mynomencl.ist
。我注意到这些文件在序言或类定义中没有特别提到,但它们是项目的一部分。可能是这样吗?如果不是,关于如何利用给定的模板使术语和索引出现在 PDF 中,有什么建议吗?
如果需要澄清问题或有任何编辑请求,请告诉我。我很乐意修改这个问题。
如有需要,您可以从以下位置下载模板的完整 .zip 文件这里。
编辑 根据评论中的一个很好的建议:我将发布 overleaf 项目的只读链接这里。
答案1
免责声明:我是 Overleaf 的支持人员。
在 Overleaf V2 上,只有当项目的主文件放在项目的顶层而不是子文件夹中时,makeindex
(同样)才会正确运行。顺便说一句,这也是字数统计和 SyncTeX 在 Overleaf V2 项目中运行的先决条件。makeglossaries