我想重新创建这个回答但tabularray
正如文档中所说
可以通过以 \setglossary-style 开头的 〈definitions〉来继承现有样式,然后仅重新定义与继承样式不同的命令。
我不喜欢 longtable 风格,但是当我尝试将环境更改为longtblr
from 时tabularray
,它不起作用,说制表符放错了位置。
由于存在预定义的样式,这可能吗?
平均能量损失
\documentclass{article}
\usepackage{siunitx}
\usepackage{tabularray}
\usepackage{glossaries}
\newglossary[slg]{symbolslist}{syi}{syg}{Symbolslist}
\glsaddkey{unit}{\glsentrytext{\glslabel}}{\glsentryunit}{\GLsentryunit}{\glsunit}{\Glsunit}{\GLSunit}
\glssetnoexpandfield{unit}
\makeglossaries
\newglossaryentry{symb:Pi}{name=\ensuremath{\pi},
description={Geometrical value},
unit={},
type=symbolslist}
\newglossaryentry{height}{name=\ensuremath{h},
description={Height of tower},
unit={\unit{\m}},
type=symbolslist}
\newglossarystyle{symbolunittable}{
\setglossarystyle{long3colheader}
\renewenvironment{theglossary}{
\begin{longtblr}{
p{2cm} p{5cm} p{2cm}
}
}
{
\end{longtblr}
}
\renewcommand*{\glossaryheader}{
\bfseries Símbolo & \bfseries Descripción & \bfseries Unidades \\ \hline\endhead
}
\renewcommand*{\glossentry}[2]{
\glstarget{##1}{\glossentryname{##1}}
& \glossentrydesc{##1}
& \glsunit{##1}\\
}
\ifglsnogroupskip
\renewcommand*{\glsgroupskip}{}%
\else
\renewcommand*{\glsgroupskip}{}%
\fi
}
\begin{document}
\glsaddall
\printglossary[type=symbolslist,style=symbolunittable]
\end{document}