Ошибка Chemmacros: «Дополнительная вкладка выравнивания была изменена на \cr...»

Ошибка Chemmacros: «Дополнительная вкладка выравнивания была изменена на \cr...»

При загрузке chemmacros появляется следующее сообщение об ошибке (я его не понимаю...):

! Extra alignment tab has been changed to \cr.
<template> ...egin \relax \d@llarend \endtemplate 
                                                  
l.62 \end{document}
                   
You have given more \span or & marks than there were
in the preamble to the \halign or \valign now in progress.
So I'll assume that you meant to type \cr instead.

Мой очень упрощенный тестовый документ, который работает, если я не загружаю {chemmacros}, где я просто хочу распечатать все пакеты и т. д. в формате PDF:

\documentclass{scrreprt}
\usepackage{xparse}
\usepackage{etoolbox}
\usepackage{longtable}
\usepackage{calc}
\usepackage{array}
\usepackage{booktabs}
\usepackage{seqsplit}
%\usepackage{chemmacros}
\listfiles%

\AtEndDocument{\printfilelist}%
\newcolumntype{L}[1]{>{\raggedright\arraybackslash}p{#1}}%
\ExplSyntaxOn%
\NewDocumentCommand{\printfilelist}{}{%
    \setlength{\LTleft}{\fill}%
    \setlength{\LTright}{\fill}%
    \begin{longtable}{@{}%
            >{\ttfamily}%
            L{0.3\textwidth-\tabcolsep}%
            L{\widthof{9999/99/99}}%
            >{\raggedright}%
            p{0.7\textwidth-\widthof{9999/99/99}-3\tabcolsep}%
            @{}}%
        \toprule%
        \multicolumn{1}{@{}l}{\bfseries File~name} & \multicolumn{1}{c}{\bfseries Date} & \bfseries File~info%
        \tabularnewline%
        \midrule%
        \endhead%
        \bottomrule%
        \endfoot%
        \Holou_print_filelist:%
    \end{longtable}%
}%
\tl_new:N \l_filelist_body_tl%
\tl_new:N \l_fileinfo_tl%
\cs_new_protected:Npn \Holou_print_filelist: {%
    \clist_map_inline:cn {@filelist}{%
        \Holou_print_fileinfo:n {##1}%
    }%
    \tl_use:N \l_filelist_body_tl%
}%
\cs_new_protected:Npn \Holou_print_fileinfo:n #1 {%
    \regex_match:nnT { \.(sty|cls|tex|clo|fd|cfg|bbx|cbx|lbx|ldf|def|hak)\Z } {#1}{%
        \Holou_print_pkginfo:n {#1}%
    }%
}%
\cs_new_protected:Npn \Holou_print_pkginfo:n #1 {%
    \tl_set_eq:Nc \l_fileinfo_tl {ver@#1}%
    \tl_replace_once:Nnn \l_fileinfo_tl {~} {&}%
    \tl_put_right:Nx \l_filelist_body_tl {%
        \exp_not:N \seqsplit{#1}%
        &%
        \exp_not:V \l_fileinfo_tl%
        \exp_not:N \tabularnewline%
    }%
}%
\ExplSyntaxOff%

\begin{document}
    
\end{document}

Вот картинка без {chemmacros}, для тех, кто хочет увидеть, что делает код:введите описание изображения здесь

Теперь мой вопрос: почему он не работает, когда я загружаю {chemmacros}. Я что-то сделал не так? :D

Решение (редактирование): Проблема была в символе & в информации файла chemmacros, который я только что заменил на eg, \tl_replace_all:Nnn \l_fileinfo_tl {&} {-}прежде чем я сам добавлю символ &, заменив первый символ ~ после даты. Спасибо, Ульрике. <3

решение1

Как уже обсуждалось в комментариях, вас кусает &в информации о файле chemmacros. Вы можете обойти эту проблему, преобразовав информацию о файле в строку.

Заменять

\tl_set_eq:Nc \l_fileinfo_tl {ver@#1}

к

\tl_set:Nx \l_fileinfo_tl { \tl_to_str:c {ver@#1} }

например, и ваш код работает…

введите описание изображения здесь

Связанный контент