PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Latex: Missing { inserted


Xanatos
2012-05-15, 18:11:27
Hallo,

kann mir mal jemand erklären, warum angeblich ein { und ein } in folgendem Bsp. fehlen?


\documentclass{article}
\usepackage{amsmath}
\newcommand{\sevcases}[1]{
\ensuremath{
\left[
\begin{tabular}{c}
\text{#1}
\end{tabular}
\right]
}
}


\begin{document}

I slowly turned \sevcases{my head\\my camera}.

\end{document}


Fehlermeldung mit TeXmaker:

! Missing } inserted.
<inserted text>
}
l.18 I slowly turned \sevcases{my head\\my camera}
I've put in what seems to be necessary to fix
the current column of the current alignment.
Try to go on, since this might almost work.
! Missing { inserted.
<inserted text>
{
l.18 I slowly turned \sevcases{my head\\my camera}
I've put in what seems to be necessary to fix
the current column of the current alignment.
Try to go on, since this might almost work.


Danke,

Xanatos

Langenscheiss
2012-05-15, 20:12:30
Ersetze \text{#1} durch #1. Hat bei mir zumindest so funktioniert, und ich wüsste jetzt auch nicht, was du durch \text{} bewirken willst.

Übrigens: Danke für das nette kleine Makro ;)

Pinoccio
2012-05-15, 21:55:05
So weit ich das verstehe ist tabular im Mathmode der eigentliche Fehler. /edit: siehe Beitrag #5
Wenn du mathmode in einer Zelle benötigst, dann musst du das entweder in der Zelle machen (für jede einzeln bei Bedarf) oder sowas wie array (Doku-PDF) (http://tug.ctan.org/tex-archive/macros/latex/required/tools/array.pdf) nehmen.
Dann geht aber der Zeilenumbruch in \text{} nicht, wie immer.
Das Makro ist von seine Grundkonstruktion her völlig falsch aufgebaut. D. h. die Idee ist vom Ergebnis her gut, aber die Umsetzung zeugt von Latex-Unkenntnis. (Was nicht schlimm ist.)

Unglücklich ist hier die Fehlermeldung, die offenbar in die falsche Richtung führt./edit: siehe Beitrag #5

mfg

Langenscheiss
2012-05-15, 23:10:03
Das Makro ist von seine Grundkonstruktion her völlig falsch aufgebaut. D. h. die Idee ist vom Ergebnis her gut, aber die Umsetzung zeugt von Latex-Unkenntnis. (Was nicht schlimm ist.)

Unglücklich ist hier die Fehlermeldung, die offenbar in die falsche Richtung führt.

mfg

Zeugt von Latex-Unkenntnis? Nur weil er für die \left und \right Einträge den mathmode haben wollte? Ich bin ja kein Programmierer, aber mit Latex halte ich es doch gerne pragmatisch. Wenns funktioniert, isses okay, ist doch völlig egal, ob man den ursprünglichen Sinn des Befehls missbraucht.

Pinoccio
2012-05-16, 17:33:59
Zeugt von Latex-Unkenntnis? Nur weil er für die \left und \right Einträge den mathmode haben wollte? Ich bin ja kein Programmierer, aber mit Latex halte ich es doch gerne pragmatisch. Wenns funktioniert, isses okay, ist doch völlig egal, ob man den ursprünglichen Sinn des Befehls missbraucht.Ich wollte damit niemanden zu nahe treten.
Und hier die Fehlermeldung zu ignorieren mag ja im konkreten Fall eine Lösung sein, aber es funktioniert ja eben nicht. :wink:

Ich muss mich übrigens selbst korrigieren: tabular geht innerhalb des mathmode durchaus, jedoch ist dann innerhalb des tabular wieder textmode.
Im Ausgangsmakro ist also einfach nur das \text{} zu viel und das verursacht eben die Fehlermeldung. Deine Lösung ist also völlig korrekt. :smile:
\newcommand{\sevcases}[1]{
\ensuremath{
\left[
\begin{tabular}{c}
#1
\end{tabular}
\right]
}
}
(Just for the record: pdfTeX, Version 3.1415926-1.40.10 (MiKTeX 2.8))

mfg