我正在使用该glossaries
包在文档开头打印一个首字母缩略词列表和另一个带有符号的列表。由于我希望我的定义对齐并占据整个文本宽度,因此我决定使用该long
样式。但是,这会更改文档中表格的计数器,因为内部glossaries
使用该longtable
包来创建其列表。有没有办法抑制这种行为?
我不想使用,\setcounter{table}{-2}
因为这是一个可重复使用的模板,而且我并不总是打印两个列表。我期待有一个更优雅的解决方案。
这是一个 MWE。
\documentclass{report}
\usepackage[acronym,symbols]{glossaries}
\setglossarystyle{long}
% my custom formatting
\setlength\LTleft{0pt}
\setlength\LTright{0pt}
\setlength\glsdescwidth{\linewidth}
\newglossaryentry{a}{type=symbols,name={\ensuremath{a}},sort=a,
description={A}}
\newglossaryentry{b}{type=symbols,name={\ensuremath{b}},sort=b,
description={B}}
\newacronym{c}{C}{The letter C}
\makeglossaries
\begin{document}
\gls{a} \gls{b} \gls{c}
\printglossaries
\begin{table}
\caption{This table should be table 1.}
\end{table}
\end{document}
答案1
longtable
使用计数器的问题是table
众所周知的,并且不仅限于glossaries
及其各种long....
词汇表样式的使用。
这是一个小解决方案,通过glossarystyle
基于long
样式定义一个新的,用替换周围longtable
环境longtable*
,这不会增加表计数器。您需要caption
此包:
\newglossarystyle{mylong}{%
\setglossarystyle{long}% base this style on the long style
\renewenvironment{theglossary}{%
\begin{longtable*}{lp{\glsdescwidth}}}%
{\end{longtable*}}%
}
\setglossarystyle{mylong} % Set the new style
的重新定义theglossary
是基于原版的,只是在这里替换longtable
为longtable*
。
\documentclass{report}
\usepackage{caption}
\usepackage[acronym,symbols]{glossaries}
%\setglossarystyle{long}
% my custom formatting
\setlength\LTleft{0pt}
\setlength\LTright{0pt}
\setlength\glsdescwidth{\linewidth}
\newglossaryentry{a}{type=symbols,name={\ensuremath{a}},sort=a,
description={A}}
\newglossaryentry{b}{type=symbols,name={\ensuremath{b}},sort=b,
description={B}}
\newacronym{c}{C}{The letter C}
\newglossarystyle{mylong}{%
\setglossarystyle{long}% base this style on the long style
\renewenvironment{theglossary}{%
\begin{longtable*}{lp{\glsdescwidth}}}%
{\end{longtable*}}%
}
\setglossarystyle{mylong}
\makeglossaries
\begin{document}
\listoftables
\gls{a} \gls{b} \gls{c}
\printglossaries
\begin{table}
\caption{This table should be table 1.}
\end{table}
\end{document}