Beim Versuch mit dem Open in Online-Editor
\documentclass{article} \usepackage{xparse} \usepackage[utf8]{inputenc} \newenvironment{TabelleFr} {\begin{tabular}{ll}\hline französisch & deutsch \\ \hline} {\hline\end{tabular}} \NewDocumentEnvironment{TabelleLa}{} {\begin{tabular}{ll}\hline lateinisch & deutsch \\ \hline} {\hline\end{tabular}} \begin{document} \begin{TabelleFr} liberté & Freiheit \\ egalité & Gleichheit \\ fraternité & Brüderlichkeit \\ \end{TabelleFr} \bigskip \begin{TabelleLa} edere & essen \\ bibere & trinken \\ dormire & schlafen \\ \end{TabelleLa} \end{document} ! Misplaced \noalign. \hline ->\noalign {\ifnum 0=`}\fi \hrule \@height \arrayrulewidth \futurelet... l.25 \end{TabelleLa} |
@saputello hat es in einem Kommentar schon angedeutet: zu Beginn einer Tabelle oder zu Beginn einer neuen Tabellenzeile kann per Open in Online-Editor
\def\hline{\noalign{...}} Damit Open in Online-Editor
! Misplaced \noalign. \hline ->\noalign {\ifnum 0=`}\fi \hrule \@height \arrayrulewidth \futurelet... Die Fehlermeldung lässt sich beispielsweise schon mit einem Open in Online-Editor
\documentclass{article} \begin{document} \begin{tabular}{c} \relax \hline \end{tabular} \end{document} In diesem Fall ist das Problem, dass die Befehle Open in Online-Editor
\documentclass{article} \usepackage{xparse} \NewDocumentEnvironment{tabelle}{} {\tabular} {\hline\endtabular} \show\endtabelle % > \endtabelle=\protected macro: % ->\environment tabelle end aux . \begin{document} \begin{tabelle}{c} \hline foo \\ \end{tabelle} \end{document} Einfacher Workaround für Deinen Fall: definiere Open in Online-Editor
\NewDocumentEnvironment{TabelleLa}{} {\tabular{ll}\hline lateinisch & deutsch \\ \hline} {\\ \hline\endtabular} Damit wird das Ende der Zeile und der Start der neuen verzögert, und das Open in Online-Editor
\begin{TabelleLa} edere & essen \\ bibere & trinken \\ dormire & schlafen \end{TabelleLa} beantwortet 29 Jan '16, 10:12 cgnieder |
Das Problem ist nicht die
tabular
-Umgebung. Das Problem ist das\hline
. Da\end{TabelleFr}
schon etwas ausführt, bevor\hline
zum Zuge kommt, ist dessen\noalign
dann nicht mehr im korrekten Kontext. Aus ähnlichem Grund funktioniert auch ein mit\NewDocumentCommand{\myhline}{}{\hline}
definiertes\myhline
nicht in einer Tabelle, während\DeclareExpandableDocumentCommand{\myhline}{}{\hline}
funktioniert.