我的报告包含以下格式的缩写和符号列表:
符号列表已自定义为具有单位列而不是索引列。当我编译时,一切都正常,但我收到大量格式错误(略有不同):
缺少插入 $。
$ 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
。