学位论文latex模板使用中遇到的坑总结

问题描述

学位论文打算使用latex模板:
https://github.com/x-magus/ThesisUESTC/tree/e58e3b8324fc96622c7c415145cd2bd4ee1fc17e

使用过程中遇到了一些小问题,记录如下。

1. 符号表的添加

上述版本是不支持符号表的,仅支持缩略词表。但感觉论文中的符号表似乎比缩略词表更有用。于是,参考模板中的缩略词表,以及另一个模板中的符号表, 修改了模板(thesis-uestc.cls)以支持符号表。

核心代码如下:

% 符号表
\newglossarystyle{uestc-chinese-symbol}{
  % \setlength{\glsdescwidth}{.3\textwidth}
  % \setlength{\glspagelistwidth}{.3\textwidth}
  \renewenvironment{theglossary}%
  {\begin{longtable}{lp{\glsdescwidth}p{\glspagelistwidth}}}%
    {\end{longtable}}%
  %设置说明列宽度:
  \setlength{\glsdescwidth}{85mm}
  %设置页码列宽度:
  \setlength{\glspagelistwidth}{7em} % 说明列+页码列=96
  %设置没有表头, 以及内容
  \renewcommand*{\glossaryheader}{%
    \heiti 符号 &\heiti 说明 &
    \heiti 页码 \tabularnewline\endhead}%
  %设置分组间没有表头:
  \renewcommand*{\glsgroupheading}[1]{}%
  %主条目第一列名称,第二列说明,第三列页码:
  \renewcommand{\glossentry}[2]{
    \glsentryitem{##1}\glstarget{##1}{\glossentryname{##1}} &
    \glossentrydesc{##1} & ##2\tabularnewline
  }
  %子条目第一列空置,第二列说明,第三列页码:
  \renewcommand*{\subglossentry}[3]{
    &
    \glssubentryitem{##2}%
    \glstarget{##2}{\strut}\glossentrydesc{##2} &
    ##3\tabularnewline
  }%
  %定义分组间空白:
  \renewcommand*{\glsgroupskip}{%
  \ifglsnogroupskip\else & &\tabularnewline\fi}%
  %定义表头:新模板中已定义,故可删掉
  % \renewcommand*{\glossaryheader}{%
  % \bfseries\entryname&\bfseries\descriptionname&
  % \bfseries\pagelistname\tabularnewline\endhead}%
}

以及

\newcommand{\thesissymbollist}{
  \newpage 
  \fancyhf{}
  \ifchinesebook{
    \fancyhead[C]{\fontsize{10.5pt}{12.6pt}\selectfont 符号表}
    \fancyfoot[CE,CO]{\fontsize{9pt}{10.8pt}\selectfont\Roman{pseudopage}}
    \pdfbookmark{符号表}{glossary}
    \printglossary[style=uestc-chinese-symbol, title={\protect\centering 符号表}, nogroupskip]
  }{
    \fancyhead[C]{\fontsize{10.5pt}{12.6pt}\selectfont Glossary}
    \fancyfoot[CE,CO]{\fontsize{9pt}{10.8pt}\selectfont\Roman{pseudopage}}
    \pdfbookmark{Glossary}{glossary}
    \printglossary[style=uestc-english, title={\protect\centering Glossary}, nogroupskip]
  }
  \newpage
}

2. 符号表中的数学符号无法实现正体加粗

根据readme,模板使用\mathbd命令实现正体加粗,使用\mathbf实现斜体加粗。这样虽然有好处,但也会带来一些问题,如:

  • 已有源文件中的正体加粗使用\mathbf,该模板只是斜体加粗;
  • 符号表中无法实现正体加粗。

解决方案:
注释模板文件中的下面几行代码即可

% \DeclareMathAlphabet{\mathbf}{\eu@enc}{\eu@mathrm}{\bfdefault}{it}
% \DeclareMathAlphabet{\mathbd}{\eu@enc}{\eu@mathrm}{\bfdefault}{n}
% \newcommand{\bm}{\mathbf}

3

未完待续

上一篇:MySQL之pt-osc原理


下一篇:《跟英雄哥学算法第二天》