
Quando carrego chemmacros recebo a seguinte mensagem de erro (não entendo...):
! 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.
Meu documento de teste bem simplificado, que funciona se eu não carregar {chemmacros}
, onde quero apenas imprimir todos os pacotes etc.
\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}
Aqui uma foto, sem {chemmacros}
, para quem quiser ver o que o código faz:
Agora minha pergunta é por que não funciona quando carrego arquivos {chemmacros}
. Fiz algo errado? :D
Solução (editar): O problema era o símbolo & nas informações do arquivo chemmacros, que acabei de substituir agora, por exemplo, \tl_replace_all:Nnn \l_fileinfo_tl {&} {-}
antes de eu mesmo adicionar o símbolo &, substituindo o primeiro símbolo ~ após a data. Obrigado Ulrica. <3
Responder1
Como já discutido nos comentários, você é mordido pelas &
informações do arquivo chemmacros
. Você pode contornar esse problema restringindo as informações do arquivo.
Substituir
\tl_set_eq:Nc \l_fileinfo_tl {ver@#1}
por
\tl_set:Nx \l_fileinfo_tl { \tl_to_str:c {ver@#1} }
por exemplo e seu código funciona…