PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Was zum Teufel machen \and und \or?



alexraasch
22-03-2010, 22:48
Hallo,

ich habe recht viele Dokumente mit logischen Formeln. Dafür habe ich mir seinerzeit folgende Makros angelegt (und noch einige mehr):



\documentclass[a4paper]{article}

\newcommand{\not}{\neg}
\newcommand{\and}{\wedge}
\newcommand{\or}{\vee}

\begin{document}
\end{document}


Wenn ich diese Datei durchlaufen lasse, erhalte ich:


! LaTeX Error: Command \not already defined.
Or name \end... illegal, see p.192 of the manual.

See the LaTeX manual or LaTeX Companion for explanation.
Type H <return> for immediate help.
...

l.3 \newcommand{\not}{\neg}

Die Meldung geht noch etwas weiter für \and und \or steht dasselbe drin. Ich hatte das Problem noch nie und frage mich nun, seit wann in LaTeX diese drei Kommandos definiert sind? Ich möchte sehr ungern auf meine Makros verzichten.

Wenn ich folgendes versuche:


\begin{document}
$\not\and\or$
\end{document}

bekomme ich den Fehler (einige Zeilen ausgeblendet)


./Test.tex:8:Misplaced \crcr $\not\and
./Test.tex:8:Extra }, or forgotten $ $\not\and
./Test.tex:8:\begin{document} ended by \end{tabular}. $\not\and
./Test.tex:9:\begin{tabular} on input line 8 ended by \end{document. \end{document}

lockstep
22-03-2010, 22:59
Nur zur Sicherheit: Mit \show\somemacro erhälst du die Definition von \somemacro. Beispiel:



\documentclass{article}

\begin{document}

\show\and

\author{Author, A. \and Buthor, B.}
\title{An article}
\maketitle

\end{document}


liefert



> \and=macro:
->\end {tabular}\hskip 1em \@plus .17fil\begin {tabular}[t]{c}.
l.5 \show\and

\and wird benutzt, um in \author mehrere Autorennamen voneinander zu trennen.

lockstep

rais
22-03-2010, 23:25
Moin moin,


Dafür habe ich mir seinerzeit folgende Makros angelegt

wenn Du \show\or ohne Deinen \renewcommand{\or}{..} probierst und


> \or=\or.
erhältst, also ein Makro das auf sich selbst zeigt, handelt es sich um eine TeX-Primitive ... und existiert damit, bevor LaTeX überhaupt ins Leben gerufen wurde -- mit anderen Worten: \renewcommand{\or}{..} muss Dir immer schon eine entsprechende Fehlermeldung erzeugt haben.
Wann \and und \not integriert wurden, weiß ich nicht, aber dann hab ich auch keine Vorstellung davon, was in diesem Zusammenhang ``seinerzeit'' bedeuten mag.

\or separates cases in an \ifcase conditional. (Kurzform von David Bausums TeX-Reference (http://www.tug.org/utilities/plain/cseq.html))

MfG

lockstep
22-03-2010, 23:37
In den LaTeX 2e Sources (http://www.tug.org/texmf-dist/doc/latex/base/source2e.pdf) wird \and im Abschnitt zu ltsect.dtx erwähnt - diese Datei trägt den Datumsstempel 1996/12/20. :)

lockstep

rais
23-03-2010, 01:52
LaTeX 2e Sources (http://www.tug.org/texmf-dist/doc/latex/base/source2e.pdf)
prima Plan;-)
dort findet sich auch die Definition von \not (im Abschnitt fontdef.dtx). Hier ist der Datumsstempel `nur' 2004/02/04 ... und das heißt noch lange nicht, daß eine vorherige Version (hier 2.3a) von eben fontdef.dtx \not nicht bereits definiert hätte ...

@alexraasch: wie weit zurück liegt denn nun `seinerzeit'?


\documentclass[a4paper]{article}
\begin{document}
$\not= = \neq$
\end{document}

das lässt sich mit \show\neq sogar beweisen :D

MfG

voss
23-03-2010, 07:52
ich habe recht viele Dokumente mit logischen Formeln. Dafür habe ich mir seinerzeit folgende Makros angelegt (und noch einige mehr):



\documentclass[a4paper]{article}

\newcommand{\not}{\neg}
\newcommand{\and}{\wedge}
\newcommand{\or}{\vee}

\begin{document}
\end{document}


Die Meldung geht noch etwas weiter für \and und \or steht dasselbe drin. Ich hatte das Problem noch nie und frage mich nun, seit wann in LaTeX diese drei Kommandos definiert sind? Ich möchte sehr ungern auf meine Makros verzichten.


\not wird von amsmath definiert. \and gibt es schon seit LaTeX2.09,
da es die Standard-Aufzählungsform für Autoren ist "H. Meyer \and E. Schulze".
\or ist TeX ...

Herbert

alexraasch
23-03-2010, 11:52
Vielen Dank für Eure Antworten. "Seinerzeit" ist schon lange her, weiß aber nicht mehr genau, wie lange. Wer weiß, was ich da wieder angestellt habe ...

Ich werde jetzt meine Makros alle in Großbuchstaben schreiben \AND, \NOT, ... dann geht's. Danke nochmal!

u_fischer
23-03-2010, 12:32
\AND and \NOT werden von ifthen definiert, allerdings nur lokal innerhalb des ersten Argument von \ifthenelse. Das sollte i.A. kein Problem sein.

voss
23-03-2010, 13:53
Vielen Dank für Eure Antworten. "Seinerzeit" ist schon lange her, weiß aber nicht mehr genau, wie lange. Wer weiß, was ich da wieder angestellt habe ...

Ich werde jetzt meine Makros alle in Großbuchstaben schreiben \AND, \NOT, ... dann geht's. Danke nochmal!

ich würde immer sowas wie \hvAND und \hvNOT empfehlen;
dann ist die Wahrscheinlichkeit gering, dass es das schon gibt.

Herbert

alexraasch
23-03-2010, 20:28
Ich hatte heute keine Probleme mit \AND, etc. in Verbindung mit \ifthenelse. Sollte also gehen.

@voss:
\hvAND usw. ist mir schon zu lang :D