Kommentarfunktion ausschalten

Fragen und Probleme, die nicht den obigen Kategorien zugeordnet werden können


chucky
Forum-Newbie
Forum-Newbie
Beiträge: 7
Registriert: Do 18. Mär 2010, 15:07

Beitrag von chucky »

KOMA hat geschrieben:Also dürfte es diesbezüglich kein Problem geben, solange man die gnuplot-Umgebung nicht im Argument eines LaTeX-Befehls verwendet.
Ist damit sowas gemeint?
\begin{figure}
	\begin{center}
		\begin{gnuplot}[terminal=epslatex]
[...]
		\end{gnuplot}
	\end{center}
\end{figure}

Benutzeravatar
iTob
Forum-Meister
Forum-Meister
Beiträge: 1221
Registriert: Mo 19. Apr 2010, 22:19
Kontaktdaten:

Beitrag von iTob »

@KOMA
Ja, mag schon sein, das ich das mit diesem Paket "hinfrickeln" könnte, aber die Plots von TikZ sind einfach schöner... schon von vornherein ohne viel einstellen zu müssen...

Benutzeravatar
KOMA
TeX-Entwickler
TeX-Entwickler
Beiträge: 2958
Registriert: Fr 4. Jul 2008, 17:28
Kontaktdaten:

Beitrag von KOMA »

chucky hat geschrieben:
KOMA hat geschrieben:Also dürfte es diesbezüglich kein Problem geben, solange man die gnuplot-Umgebung nicht im Argument eines LaTeX-Befehls verwendet.
Ist damit sowas gemeint?
\begin{figure}
	\begin{center}
		\begin{gnuplot}[terminal=epslatex]
[...]
		\end{gnuplot}
	\end{center}
\end{figure}
Nein. Damit ist so etwas gemeint:
\begin{figure]
\centerline{\begin{gnuplot}...\end{gnuplot}}
\end{figure}
Bei normalen Umgebungen wird der Inhalt nicht zu einem Befehlsargument. Das Problem bei Befehlsargumenten ist, dass das Argument komplett gelesen wird, bevor Teile des Arguments ausgeführt werden. Dabei werden dann auch bereits die Token gebildet. Der Kategorie-Code eines Zeichens zu diesem Zeitpunkt bestimmt, zu welcher Tokenklasse das Token gehört. Wenn also \begin{gnuplot} innerhalb eines Befehlsarguments steht, dann ändert diese Anweisung zwar den Kategorie-Code des % noch, aber das Prozent wurde bereits gelesen. In dem Fall wurde dann nicht einmal ein Token gebildet, sondern bereits beim Lesen alles bis zum Zeilnende weggeworfen.

Beispiel:
\newcommand{\machdas}{%
  \catcode`\%=12
  % Diese Zeile wirst Du nie wieder sehen
  \catcode`\%=14
}
\show\machdas
Da die gesamte Definition als Argument von \newcommand gelesen wird, ohne dass zuvor der Kategorie-Code von % geändert wurde, gibt die \show-Anweisung folgende Definition aus:
> \machdas=\long macro:
->\catcode `\%=12 \catcode `\%=14 .
Die Kommentarzeile ist also bereits weg und wurde nie Bestandteil der Definition von \machdas. Ändert man den Code jedoch in:
\catcode`\%=12
\newcommand{\machdas}{%
  % Diese Zeile, aber auch das Prozent davor ist Teil der Definition!
}
\catcode`\%=14
\show\machdas
Dann wird das Ergebnis so aussehen:
> \machdas=\long macro:
->% % Diese Zeile, aber auch das Prozent davor ist Teil der Definition! .
Dabei sind dann beide Prozentzeichen Token der Klasse 12 (other). Das Leerzeichen zwischen den beiden (und vor dem Ende-Markierungspunkt) kommt vom Zeilenumbruch.

chucky
Forum-Newbie
Forum-Newbie
Beiträge: 7
Registriert: Do 18. Mär 2010, 15:07

Beitrag von chucky »

Alles klar. Dann werd ich es so belassen wie es ist.

Danke für die Mühe.

Antworten