词汇表符号列表单位列/索引问题

词汇表符号列表单位列/索引问题

我的报告包含以下格式的缩写和符号列表:

在此处输入图片描述

在此处输入图片描述

符号列表已自定义为具有单位列而不是索引列。当我编译时,一切都正常,但我收到大量格式错误(略有不同):

缺少插入 $。

$ l.6 ...etentrycounter[]{page}\glsnumberformat{3}}} % 我插入了一个 begin-math/end-math 符号,因为我觉得你漏掉了一个。继续吧,祝你好运。

!额外},或忘记$。@textcolor ...otect \leavevmode {\color #1{#2}#3}

我正在使用 overleaf 和 pdfLaTeX。我怀疑这与使用单位列覆盖索引有关,但无法修复它。

梅威瑟:

\documentclass[11pt]{report}
\usepackage[table]{xcolor}
\usepackage[a4paper,top=2cm,bottom=2cm,left=2cm,right=2cm,marginparwidth=1.75cm,footskip=.5cm]{geometry}
\definecolor{cyan}{cmyk}{1,0,0,0}
\usepackage[colorlinks=true, allcolors=cyan, urlcolor=black, acronym=black]{hyperref}
\usepackage{titlesec}
\titleformat{\chapter}[hang]{\color{cyan}\normalfont\huge\bfseries}{\thechapter.}{5pt}{\normalfont\huge\bfseries}
\titlespacing*{\chapter}{0pt}{-30pt}{10pt}

%%% --- Customise glossaries
\usepackage[acronym,style=super]{glossaries}
\renewcommand*{\glstextformat}[1]{\textcolor{black}{#1}} %hyperlink set to black
\renewcommand*\glspostdescription{\hfill}
\renewcommand*{\glsnamefont}[1]{\textbf{#1}} %hyperlink set to bold
\setacronymstyle{long-short} %will spell out the first occurrence using \gls{}

%%% --- make the glossaries
%% make list of symbols
\newglossary[slg]{symbolslist}{syi}{syg}{List of symbols}
\glsaddkey{unit}{\glsentrytext{\glslabel}}{\glsentryunit}{\GLsentryunit}{\glsunit}{\Glsunit}{\GLSunit}

%% make abbreviations, load all glossaries
\makeglossaries
%\loadglsentries{glossary}  %avoided for MWE 


%%% ---  Define List of Symbols style
\newglossarystyle{symbunitlong}{%
\setglossarystyle{long3col}% base this style on the list style
\renewenvironment{theglossary}{% Change the table type --> 3 columns
  \begin{longtable}{lp{0.9\glsdescwidth}>{\centering\arraybackslash}p{2cm}}}%
  {\end{longtable}}%
%
\renewcommand*{\glossaryheader}{%  Change the table header
  \bfseries Sign & \bfseries Description & \bfseries Unit \\
  \hline
  \endhead}
\renewcommand*{\glossentry}[2]{%  Change the displayed items
\glstarget{##1}{\glossentryname{##1}} %
& \glossentrydesc{##1}% Description
& \glsunit{##1} \tabularnewline
}
}

%%%%%%%% -------------- DOCUMENT --------------- %%%%%%%%
\begin{document}

%%% ABBREVIATIONS
\newacronym{adcs}{ADCS}{Attitude Determination \& Control subsystem}
\newacronym{vleo}{VLEO}{Very Low Earth Orbit}

%%% SYMBOLS
\newglossaryentry{symb:Pi}{
    name = \ensuremath{\pi},
    description = {Geometrical value},
    unit = {-},
    type = {symbolslist}
}
\newglossaryentry{mu}{
    name = \ensuremath{\mu},
    description = {Earth's gravitational parameter},
    unit = {m^3/s^2},
    type = {symbolslist}
}

%% sample example
\textbf{These are some abbreviations:} \gls{adcs}  \gls{vleo} \\
\textbf{These are some symbols:} \gls{symb:Pi} \gls{mu}

%% print the glossaries
\setlength\glsdescwidth{0.9\textwidth} %\textwidth-9\tabcolsep is used in the full document
\printglossary[type=\acronymtype,title={Abbreviations}]
\printglossary[type=symbolslist, style=symbunitlong]


\end{document}

我还收到 hyperref 包错误。

有什么技巧可以消除错误,而无需改变布局和超链接?

作为一个附带问题,我还试图将缩写和符号条目列表存储在两个单独的文件中,并使用 \loadglsentries 两次,但这样做不起作用,有什么建议将它们分开吗?

答案1

这个问题与 无关glossaries。TeX 抱怨您^在文本模式下使用 (单位为mu)。将指数置于数学模式将解决此问题。

排版单位的一种更优越的方法是使用siunitx(在这种情况下,您可以\si{\cubic\meter\per\square\second}用 来写per-mode=symbol,但\si{m^3/s^2}如果您懒的话,这也是可行的)。

还要注意,这hyperref是因为不知道选项而引起的抱怨acronym

相关内容