Überarbeitungsverlauf[Zurück]
Klicke auf Einblenden/Ausblenden von Überarbeitungen 7
besseres Format

13 Okt '13, 14:03

Mico's gravatar image

Mico
28513

Zwei Bemerkungen vorab: - LaTeX-intern sind Umgebungen als Befehlspaare definiert. Siehe z.B. die Umgebung `center`: Beim Auffinden der Anweisung `\begin{center}` wird der Befehl `\center` ausgeführt (welcher in latex.ltx als `{\trivlist \centering\item\relax}` ausgeführt, welcher (siehe latex.ltx) als \trivlist \centering\item\relax definiert ist), ist; und beim Auffinden der Anweisung `\end{center}` wird der Befehl `\endcenter` ausgeführt (welcher in latex.ltx als `{\endtrivlist}` ausgeführt, welcher (siehe wieder latex.ltx) als \endtrivlist definiert ist). ist. Man beachte dass die Umgebung `trivlist` -- begonnen und beendet via `\trivlist` und `\endtrivlist` -- implizit in der Umgebung `center` enthalten ist, via den Befehlen `\trivlist` und `\endtrivlist`. - ist Man kann diese Situation auch umkehren und einen einfachen Befehl, z.B. `\large`, wie eine Umgebung einsetzen, d.h., als `\begin{large} ... \end{large}`, auch selbst wenn die Umgebung `large` per se *per se* nicht definiert ist. Warum endet solches Tun nicht mit Fehlermeldung und Absturz? Wenn LaTeX die Anweisung `\begin{large}` findet wird, tratra, findet, wird `\large` ausgeführt. Und was passiert wenn LaTeX `\end{large}` auffindet? Antwort: Nichts; genauer gesagt: *nichts Schlimmes*. Beim Auffinden von `\end{large}` wird nicht `\endlarge` ausgeführt sondern `\csname large \endcsname`. (`cs` is kurz für `control sequence`.) Nun hat TeX hat eine (sehr nützliche!) Regel dass eine nicht definierte control sequence wie `\relax` wirkt... Man kann also in den meisten Fällen (aber schon nicht ganz beliebig!) eine Umgebung mit dem Namen eines normalen Befehls (aber ohne dem backslash Zeichen `\`) verwenden. Der Befehl muss natürlich existieren, sonst gibt's eine Fehlermeldung. Zu empfehlen ist diese Vorgehensweise allerdings schon nicht weil sie bei Uneingeweihten schnell Verwirrung und vielleicht sogar Bestürzen stiften wird. Ein separates Anliegen ist: *Warum* gibt es in LaTeX sowohl einfache Befehle, z.B. `\centering`, als auch Umgebungen, z.B. `\begin{center}` ... `\end{center}`? Die Antwort kann nur sein: Um den LaTeX-Nutzern das Leben (oder wenigstens das Schreiben) zu vereinfachen. Es ist einfach nicht nötig eine `appendix` *Umgebung* zu definieren und zu verlangen dass man immer sowohl `\begin{appendix}` als auch `\begin{appendix}` schreibt; die kurze Anweisung `\appendix` genügt. Den LaTeX Autoren vorzuschreiben sie müssten sich stets daran erinnern die Anweisung `\end{appendix}` (oder `\endappendix`) vor Ende des Dokuments einfügen wäre nur umständliche Zwängerei. So wäre es auch gar umständlich falls man statt den einfachen Anweisungen `\section{...}` und `\subsection{...}` Umgebungen einsetzen müsste, d.h., `\begin{section}{...}` und `\begin{subsection}{...}` sowie später `\end{section}{...}` und `\end{subsection}{...}` schreiben müsste. Solche strikte Konsistenz im coding mag vielleicht der Traum gewisser Informatik-Puristen sein, aber es würde meiner Meinung nach den Endnutzern nur Umstände und Zeitverschwendung bescheren.
Klicke auf Einblenden/Ausblenden von Überarbeitungen 6
einfügen von vergessenen Wörtern

11 Okt '13, 12:12

Mico's gravatar image

Mico
28513

Zwei Bemerkungen vorab: - LaTeX-intern sind Umgebungen als Befehlspaare definiert. Siehe z.B. die Umgebung `center`: Beim Auffinden der Anweisung `\begin{center}` wird der Befehl `\center` ausgeführt (welcher in latex.ltx als `{\trivlist \centering\item\relax}` definiert ist), und beim Auffinden der Anweisung `\end{center}` wird der Befehl `\endcenter` ausgeführt (welcher in latex.ltx als `{\endtrivlist}` definiert ist). Man beachte dass die Umgebung `trivlist` implizit in der Umgebung `center` enthalten ist, via den Befehlen `\trivlist` und `\endtrivlist`. - Man kann diese Situation auch umkehren und einen einfachen Befehl, z.B. `\large`, wie eine Umgebung einsetzen, d.h., als `\begin{large} ... \end{large}`, auch wenn die Umgebung `large` per se nicht definiert ist. Warum endet solches Tun nicht mit Fehlermeldung und Absturz? Wenn LaTeX die Anweisung `\begin{large}` findet wird, tratra, `\large` ausgeführt. Und was passiert wenn LaTeX `\end{large}` auffindet? Antwort: Nichts; genauer gesagt: *nichts Schlimmes*. Beim Auffinden von `\end{large}` wird nicht `\endlarge` ausgeführt sondern, genauer gesagt, sondern `\csname large \endcsname`. (`cs` is kurz für `control sequence`.) Nun hat TeX hat eine (sehr nützliche!) Regel dass eine undefinierte command nicht definierte control sequence wie `\relax` wirkt... Man kann also in den meisten Fällen (aber schon nicht ganz beliebig!) "on the fly" eine Umgebung mit dem Namen eines normalen Befehls (aber ohne dem backslash Zeichen, Zeichen `\`) verwenden. Der Befehl muss natürlich existieren, sonst gibt's eine Fehlermeldung. Zu empfehlen ist diese Vorgehensweise allerdings nicht da schon nicht weil sie bei Uneingeweihten schnell Verwirrung und vielleicht sogar Bestürzen entfesseln stiften wird. Ein separates Anliegen ist: *Warum* gibt es in LaTeX sowohl einfache Befehle, z.B. `\centering`, als auch Umgebungen, z.B. `\begin{center}` ... `\end{center}`? Die Antwort kann nur sein: Um den LaTeX-Nutzern das Leben (oder wenigstens das Schreiben...) Schreiben) zu vereinfachen. Es ist wirklich einfach nicht nötig eine `appendix` *Umgebung* zu definieren und zu verlangen dass man immer sowohl `\begin{appendix}` als auch `\begin{appendix}`; `\begin{appendix}` schreibt; die kurze Anweisung `\appendix` genügt wirklich. genügt. Den LaTeX Autoren vorzuschreiben sie müssten sich gegen stets daran erinnern die Anweisung `\end{appendix}` (oder `\endappendix`) vor Ende des Dokuments stets daran erinnern die Anweisung `\end{appendix}` (oder `\endappendix`) einfügen wäre nur umständliche Zwängerei. Und So wäre es wäre noch viel umständlicher auch gar umständlich falls man statt den einfachen Anweisungen `\section{...}` und `\subsection{...}` Umgebungen einsetzen müsste, d.h., `\begin{section}{...}` und `\begin{subsection}{...}` sowie später `\end{section}{...}` und `\end{subsection}{...}` schreiben müsste. Solche strikte Konsistenz im coding mag vielleicht der Traum gewisser Informatik-Puristen sein, aber es würde meiner Meinung nach den Endnutzern nur Umstände und Zeitverschwendung bescheren.
Klicke auf Einblenden/Ausblenden von Überarbeitungen 5

11 Okt '13, 10:20

Mico's gravatar image

Mico
28513

Klicke auf Einblenden/Ausblenden von Überarbeitungen 4

11 Okt '13, 10:18

Mico's gravatar image

Mico
28513

Klicke auf Einblenden/Ausblenden von Überarbeitungen 3

11 Okt '13, 10:17

Mico's gravatar image

Mico
28513

Klicke auf Einblenden/Ausblenden von Überarbeitungen 2

11 Okt '13, 10:16

Mico's gravatar image

Mico
28513

Klicke auf Einblenden/Ausblenden von Überarbeitungen 1

11 Okt '13, 10:10

Mico's gravatar image

Mico
28513

Willkommen, erstes Mal hier? Schau mal unter FAQ!

×