是否可以使用 tabularray 创建新的词汇表样式?或者从头开始?

是否可以使用 tabularray 创建新的词汇表样式?或者从头开始?

我想重新创建这个回答tabularray正如文档中所说

可以通过以 \setglossary-style 开头的 〈definitions〉来继承现有样式,然后仅重新定义与继承样式不同的命令。

我不喜欢 longtable 风格,但是当我尝试将环境更改为longtblrfrom 时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}

请参见:如何在 tabularray 表中使用 DTLforeach(数据工具)?

相关内容