Латексные глоссарии в нескольких столбцах таблицы

У меня возникли проблемы с форматированием записей глоссария в таблицу с четырьмя столбцами, то есть:

Акроним Определение Аббревиатура Определение

ХХХ ХХХ ХХХ ХХХ

Вот моя реализация:

\newlength\maxlength
\newlength\thislength

\newcounter{rowcount}
\setcounter{rowcount}{0}
\newglossarystyle{glossarytable}
{%
    \renewenvironment{theglossary}%
    {% start of glossary
        % Find maximum width of the first column:
        \setlength{\maxlength}{0pt}%
        \forglsentries[\currentglossary]{\thislabel}%
        {%
            \settowidth{\thislength}{\glsentryshort{\thislabel}}%
            \ifdim\thislength>\maxlength
            \setlength{\maxlength}{\thislength}%
            \fi
        }%
        % Now calculate the width of the second column:
        %               \settowidth{\thislength}{\hspace{1.5em}=\hspace{1em}}%
        \setlength{\glsdescwidth}{\linewidth-\maxlength-\thislength-2\tabcolsep}%
        % Start the tabular environment
        \renewcommand{\thetable}{\Roman{table}}
        \begin{table}[!h]
            \begin{center}
                    \begin{tabular}{cccc@{}p{\glsdescwidth}}
                                \toprule
                                \toprule
                                \multicolumn{1}{c}{\textbf{Acronym}} &
                                \multicolumn{1}{c}{\textbf{Definition}} &
                                \multicolumn{1}{c}{\textbf{Acronym}} &
                                \multicolumn{1}{c}{\textbf{Definition}} \\
                                %
                                \midrule
                    }%
                    {% end of glossary
                                \bottomrule
                    \end{tabular}%
                    \caption[Table of acronyms.]{Table of acronyms.}
                    \label{table:acronyms}
                \end{center}
            \end{table}
        }%
        % Header has been incorporated into \begin{theglossary}
        \renewcommand*{\glossaryheader}{}%
        % Don't do anything between letter groups
        \renewcommand*{\glsgroupheading}[1]{}%
        \renewcommand*{\glsgroupskip}{}%
        % Set display for each the acronym entry
        \renewcommand{\glossentry}[2]{%
                    \stepcounter{rowcount}
                    \glstarget{##1}{\textbf{\glossentryname{##1}}{\glsentryshort{##1}}}% short form
                    & \glossentrydesc{##1}% long form
                    \\
                    
                    
                    \ifodd\value{rowcount}
                    &
                    \fi
                    
        }%
        % No sub-entries, so \subglossentry doesn't need redefining
    }

Когда я пытаюсь скомпилировать этот макрос, я получаю:

Misplaced \noalign. \end{theglossary}

Кто-нибудь знает, как форматировать две записи глоссария в каждой строке в четыре столбца в табличном формате?

0 ответов

Другие вопросы по тегам