Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

\multicolumn und "Misplaced \omit"

0 views
Skip to first unread message

Jakob Mendel

unread,
Jan 4, 2023, 4:54:00 AM1/4/23
to
Liebe Fachleute,

Euch allen ein gutes neues Jahr!

In einer Präsentation möchte ich eine Tabelle zweimal zeigen, einmal
kompakter und einmal detaillierter mit zusätzlichen Zeilen. Im Prinzip
geht das auch (siehe das Beispiel unten), aber der Befehl \multicolumn
muß offenbar unmittelbar nach \\ oder & stehen, weil LuaLaTeX sonst ein
"Misplaced \omit" moniert.

"tabelle-alt.tex" tut also nicht, was ich gern hätte. "tabelle-neu" tut
es … ist aber im Quellcode für meine Begriffe schwer lesbar.

Gibt es eine andere Lösung?

Vielen Dank
Jakob


---
\documentclass{beamer}

\usepackage{ifthen}%
\newboolean{drucken}%

\newcommand\mc\multicolumn%

\begin{filecontents}[overwrite]{tabelle-alt.tex}
\begin{tabular}{lcr}
links & mitte & rechts \\
\mc2c{OK} & rechts \\
\ifthenelse{\boolean{drucken}}%
{1 & 2 & 3 \\}{}%
\mc2c{Problem} & rechts \\
I & II & III \\[+1.00em]
\end{tabular}
\end{filecontents}

\begin{filecontents}[overwrite]{tabelle-neu.tex}
\begin{tabular}{lcr}
links & mitte & rechts \\
\mc2c{OK} & rechts%
\ifthenelse{\boolean{drucken}}%
{ \\
1 & 2 & 3 \\}%
{ \\}%
\mc2c{Problem} & rechts \\
I & II & III \\[+1.00em]
\end{tabular}
\end{filecontents}

\begin{document}
{\setboolean{drucken}{true}%
\input{tabelle-alt}%
}

{\setboolean{drucken}{false}%
\input{tabelle-alt}%
}

{\setboolean{drucken}{true}%
\input{tabelle-neu}%
}

{\setboolean{drucken}{false}%
\input{tabelle-neu}%
}
\end{document}---
---

Ulrike Fischer

unread,
Jan 4, 2023, 7:08:48 AM1/4/23
to
Am Wed, 4 Jan 2023 10:53:57 +0100 schrieb Jakob Mendel:


> \newcommand\mc\multicolumn%
> \mc2c{OK}

Wenn du Hilfe von anderen willst, solltest du die dokumentierte
Syntax verwenden: keine Klammern nicht weglassen und keine eigenen
Shortcutbefehle benutzen. Ich habe überhaupt keine Lust darüber
nachzudenken, was das heißt und ob das explodiert oder nicht.


--
Ulrike Fischer
http://www.troubleshooting-tex.de/

Ulrike Fischer

unread,
Jan 4, 2023, 1:32:50 PM1/4/23
to
Am 4 Jan 2023 16:35:03 GMT schrieb Stefan Ram:

>>Ich vermute, daß "\ifthenelse" etwas einfügt, falls die
>>Bedingung falsch ist, das die Verbindung zwischen "\\"
>>und "\omit" stört.
>
> Das folgende unravel scheint zu zeigen, daß am Ende
> "\begingroup \begingroup \endgroup \endgroup" übrigbleibt.

Das alleine ist es nicht. \ifthenelse ist aus vielen Gründen nicht
expandierbar und daher störend. All diese Dinge z.B. geben Fehler
und sind in ähnlicher Form in dem Befehl:

\documentclass{article}

\begin{document}

\begin{tabular}{l}
\def\blub{}
\multicolumn{1}{c}{text1}
\end{tabular}

\begin{tabular}{l}
\let\a\b
\multicolumn{1}{c}{text2}
\end{tabular}

\begin{tabular}{l}
\begingroup\endgroup
\multicolumn{1}{c}{text3}
\end{tabular}

\end{document}

Jakob Mendel

unread,
Jan 5, 2023, 5:17:31 AM1/5/23
to
Vielen Dank an Stefan für seine Lösung und das Weiterbohren mit dem
Paket unravel. Ich verstehe zwar nicht so recht, was da vorgeht :-(,
aber es funktioniert. :-)

Vielen Dank an Ulrike für den Hinweis, möglichst nichts
"Selbstgestricktes" zu posten. Ich werde mir Mühe geben. (Es tippt
sich halt einfacher, wenn man wegen der Umlaute die deutsche
Tastaturbelegung eingestellt hat.)

Jakob


Am 04.01.23 um 15:02 schrieb Stefan Ram:
> Jakob Mendel <jm....@web.de> writes:
>> Gibt es eine andere Lösung?
>
> Ich vermute, daß "\ifthenelse" etwas einfügt, falls die
> Bedingung falsch ist, das die Verbindung zwischen "\\"
> und "\omit" stört. Verwende ich statt dessen "\ifdrucken",
> so scheint das Problem nämlich nicht aufzutreten.
>
> \documentclass{beamer}
>
> \usepackage{ifthen}
> \newboolean{drucken}
> \setboolean{drucken}{false}
>
> \newcommand\mc\multicolumn
>
> \newif\ifdrucken\druckenfalse
>
> \begin{document}
>
> \begin{tabular}{lcr}
>
> \mc2c{text0} & rechts0 \\
> \ifdrucken 1 & 2 & 3 \\\fi
> \mc2c{text1} & rechts1 \\
>
> \mc2c{text2} & rechts2 \\
> \ifthenelse{\boolean{drucken}}
> {4 & 5 & 6 \\}{}
> \mc2c{text3} & rechts3 \\
>
> \end{tabular}
>
> \end{document}
>
>

Axel Berger

unread,
Jan 5, 2023, 5:36:02 AM1/5/23
to
Jakob Mendel wrote:
> (Es tippt
> sich halt einfacher, wenn man wegen der Umlaute die deutsche
> Tastaturbelegung eingestellt hat.)

Auch wenn ich mehr und mehr zum Papageui werde:
Das ist eine Aufgabe für Editormakros, nicht für kryptische TeX
commands.


--
/¯\ No | Dipl.-Ing. F. Axel Berger Tel: +49/ 221/ 7771 8067
\ / HTML | Roald-Amundsen-Straße 2a Fax: +49/ 221/ 7771 8069
 X in | D-50829 Köln-Ossendorf http://berger-odenthal.de
/ \ Mail | -- No unannounced, large, binary attachments, please! --

Jakob Mendel

unread,
Jan 5, 2023, 8:35:35 AM1/5/23
to
Im Prinzip ja, aber dann ist man quasi auf immer an den Editor gebunden,
für den man diese Makros eingerichtet hat. Oder gibt es inzwischen
Editoren, die die Makros der Konkorrenz importieren können? (Ich habe
gerade bei startpage.com "import editor macros" gesucht: keine Treffer,
"import editor settings": vier.)

Jakob


Am 05.01.23 um 11:36 schrieb Axel Berger:

Axel Berger

unread,
Jan 5, 2023, 9:27:53 AM1/5/23
to
Jakob Mendel wrote:
> aber dann ist man quasi auf immer an den Editor gebunden,
> für den man diese Makros eingerichtet hat.

Durchaus. Aber wer den Editor wechselt, möchte seine Eingabemethode
ändern, sonst könnte er's auch lassen. Dafür lassen sich die
geschriebenen Dateien problemlos weitergeben und dauerhaft überall
lesen.

Mit kryptischen eigenen Commands ist es andersrum.

Axel Berger

unread,
Jan 5, 2023, 9:35:17 AM1/5/23
to
Stefan Ram wrote:
> Für Makros, wie "\exhyphenpenalty", ist es für mich jedoch
> bequemer, sie einfach von Hand einzutippen.

Jein. Das gilt für den mittleren Bereich der seltenen Commands. Bei
häufigen lohnt sich ein Kürzel und kann man es sich auch merken. Bei
sehr seltenen dagegen weiß man oft nicht mehr, wie sie jetzt genau
heißen, da hilft ein Auswahlmenü.

Und dann gibt es die Fälle mit zahlreichen Parametern, von denen aber
viele bei aufeinanderfolgender Anwendung gleich bleiben. Das kann man
dann auch weitgehend vorausfüllen.
0 new messages