修改 Thesis.cls 中对缩写进行排序的代码

修改 Thesis.cls 中对缩写进行排序的代码

我正在使用 Sharelatex 的 Easy Thesis 模板。此模板使用论文目录其中包含 ABBREVIATIONS 的代码。代码如下所示:

%VJ START (ABBREVIATIONS)
\newcommand\listabbrename{List Of Abbreviations}    % title "List Of Abbreviations" printed in "LIST OF ABBREVIATIONS" 
\usepackage{longtable}
\newcommand\listofabbre [2]{
\btypeout{\listabbrename}
%VJ \addtotoc{\listabbrename}
    \chapter*{\listabbrename
      \@mkboth{
          \MakeUppercase\listabbrename}{\MakeUppercase\listabbrename}   }
\begin{longtable}[l]{#1}#2\end{longtable}\par
\cleardoublepage
}
%VJ END (ABBREVIATIONS)

我从 Ivan 的一篇文章中得到了一些想法 (修改现有代码以对缩写列表进行排序) 使用词汇表包来让缩写按顺序排序。我觉得他的方法更简单。所以我尝试修改现有的代码论文目录结合 Ivan 的代码。我尝试生成可编译的代码用于测试目的,代码如下:

\documentclass[a4paper, 12pt]{../Thesis}
\usepackage[latin1]{inputenc}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{graphicx}


%start section in Thesis.cls%
\usepackage{longtable}
\usepackage[acronym,nonumberlist,shortcuts]{glossaries}
\glossarystyle{long}
\renewcommand*{\acronymname}{List of Abbreviations} % rename title
\renewcommand*{\glspostdescription}{}                    % remove dot at the end of description
\makeglossaries

%\newcommand\setacronymdb[1]{\loadglsentries{#1}}         % the name of the acronym database

\newcommand\listofnomenclature[2]{

\btypeout{\acronymname}
%%VJ    \addtotoc{\listsymbolname}
    \chapter*{\acronymname
      \@mkboth{
          \MakeUppercase\acronymname}{\MakeUppercase\acronymname}   }
\begin{longtable}[l]{#1}#2\end{longtable}\par

\printglossaries
\par
\cleardoublepage
}
%end section in Thesis.cls%

%\setacronymdb{Abbrev} 

\begin{document}

%\listofnomenclature
\input{../Frontpages/Abbrev.tex}

\section{Introduction}
This is how I refer to the samples of acronym in the database named Abbrev: \acs{CO2}.

\end{document}

Abbrev.tex 文件包含:

%\clearpage
\addtotoc{LIST OF ABBREVIATIONS-test}
\pagestyle{fancy} % The page style headers have been "empty" all this time, 
% now use the "fancy" headers as defined before
\setstretch{1.3} % Set the line spacing to 1.5, 
% this makes the following tables easier to read
%\lhead{\emph{Abbreviations}}  % Set the left side page header to "Abbreviations"

%\listofabbrenamesvj{l l}

\listofnomenclature{l r}
{
\addtocontents{toc}{\vspace{0.5em}}  % Add a gap in the Contents,



\newacronym{CO2}{CO$_{2}$}{Carbon diOxide} 
\newacronym{GSM}{GSM}{Global System for Mobile Communications} 


}

这次我可以使用我的“Thesis.cls”编译此代码,但目录和标题的输出格式不符合我的要求。

我希望在这里得到一些帮助。提前谢谢大家。

答案1

正如我在评论中指出的那样,Thesis.cls这是一个非常糟糕的模板。不幸的是,它不是该网站提供的唯一模板。

正如 Ivan 在另一个问题中提到的那样,您需要使用一个可以自动执行排序和所有相关操作的包。glossaries可以出色地完成这项工作。Thesis声明您必须自己排序和填充的环境。glossaries还为您提供了一些有用的命令以用于您的文本。 您必须记住的一件事是makeglossaries按照文档中所述运行帮助程序脚本。

\documentclass[a4paper, 12pt]{Thesis}
\usepackage{chemformula}
\usepackage[acronym,nonumberlist,shortcuts]{glossaries}
\glossarystyle{long}
\renewcommand*{\acronymname}{List of Abbreviations} 
\renewcommand*{\glspostdescription}{}
\makeglossaries

\newacronym{hdd}{HDD}{Hard-disk drive}
\newacronym{CO2}{\ch{CO2}}{Carbon diOxide} 
\newacronym{GSM}{GSM}{Global System for Mobile Communications} 
\begin{document}
\printacronyms

\section{Introduction}
This is how I refer to the samples of
acronym in the database named Abbrev:
\acs{CO2}. The \acs{GSM} is not the same as a \acs{hdd}

\end{document}

请注意,我使用包chemformula来排版化学结构。它有一个非常漂亮和干净的界面,并且易于使用。另一个用于打印首字母缩略词的包是包acro。它的界面与一样简单chemformula,这并不奇怪,因为作者是同一个人。优点:您不需要额外的辅助程序。

默认外观与词汇表不同。您可以使用选项更改外观或定义一些辅助命令。

\documentclass[a4paper, 12pt]{book}%Thesis is based on book
\usepackage{chemformula}
\usepackage{acro}
\DeclareAcronym{hdd}{short=HDD,long=Hard-disc drive}
\DeclareAcronym{co2}{short=\ch{CO2},long=carbon dioxide}
\DeclareAcronym{tug}{short=TUG,long=\TeX{} User Group}
\begin{document}
\printacronyms

\section{Introduction}
This is how I refer to the samples of
acronym in the database named Abbrev:
\ac{co2}. The \ac{tug} is not the same as a \ac{hdd}

\end{document}

总结一下:启动项目时,您需要决定使用 还是glossariesacro还有更多选项,但实际上,只有 和 是您可以安全使用的两个选项)。
acro处理首字母缩略词,glossaries还可以做很多其他事情。如果您在文本中始终使用界面命令,您将获得一个漂亮、干净且安全的结果。

但是,如果你的文档已经完成,并且你决定在列表中添加一些术语以形成缩写词列表您应该使用简单的 LaTeX 环境。使用列表或表格。如果您有 20 个条目,您可以手动排序;50 个条目则手动排序。如果条目很多,请考虑使用修改现有代码以对缩写列表进行排序chemformula作者是 cgnieder,令人惊讶的是,他是(以及其他伟大的化学相关软件包) 和的作者acro

相关内容