|
|
Beiträge: 9655
Seitenaufrufe: 113095 PIs (Jan 2010)
Top-Poster: KOMA (1126)
Wir begrüßen unseren neuesten Benutzer Hiitzl.
|
|
|
|
Variableninhalt über mehrere Absätze |
|
| IrenaSekuta |

Forum-Century
|
 |
Beiträge: 105
|
 |
|
 |
Anmeldedatum: 02.12.08
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 04.02.2010, 16:37
Titel: Variableninhalt über mehrere Absätze
|
 |
Hallo zusammen,
ich möchte mir gerne Variablen generieren, die auch längere textpassagen enthalten können, eventuell sogar innerhalb dieser Textpassagen auch Bilder oder Tabellen.
Anbei ein einfaches Minimalbeispiel:
Ist diese Vorgehensweise anzuraten oder gibt es da bessere Möglickeiten. Die Möglichkeit mit \input ist mir bekannt. Gibt es zu obiger vorgehensweise und der Vorgehensweise mit CVariablen einen gravierenden Unterschied?
Gruß,
Irena
|
|
|
|
| KOMA |

TeX-Entwickler
|
 |
Beiträge: 1126
|
 |
|
 |
Anmeldedatum: 04.07.08
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: Postfach geschlossen
|
 |
|
|
 |
|
Verfasst am: 04.02.2010, 17:03
Titel: noch 21
|
 |
| |
 |
|
Etwas unbefriedigend ist das Verhalten von LaTeX, wenn in einer solchen Variablen ein Fehler enthalten ist. Du kannst das ja einmal ausprobieren, indem Du beispielsweise ein \endgroup oder sogar ein \DasIstEinBug irgendwo in der Variablen aus Deinem Beispiel einfügst.
Was Du da definierst, ist übrigens nicht wirklich eine Variable, sondern ein Makro. Das ist durchaus ein Unterschied. Die Unterschiede haben etwas damit zu tun, dass Makros expandiert werden, während Variablen Werte haben, die man setzen und abrufen kann. Ein Makro hat etwas von einer Funktion ist aber trotzdem auch keine Funktion. Wenn man wirklich wissen will, wie Makros funktionieren, sollte man sich etwas mit TeX selbst und der Expansion beschäftigen (→ »The TeX book« oder »TeX by Topic«).
Eine Alternative zu Makros sind übrigens Boxen. Hier sei dann ausdrücklich auf die im usrguide dokumentierte lrbox-Umgebung hingewiesen.
Eine weitere Alternative zu Makros sind Tokenregister. Das ist dann aber schon wieder etwas, bei dem na sich mit »The TeX book« oder »TeX by Topic« beschäftigen sollte.
Dass es so viele teilweise recht unterschiedliche Konzepte in TeX gibt, macht es übrigens nicht leichter TeX zu verstehen und oft auch nicht, es zu beherrschen.
Um zu Deinem Vergleich mit einer Variablen in C zurück zu kommen: Das sind zwei recht unterschiedliche Dinge. Nehmen wir das folgende Beispiel in C: | Code: | Vara=1
Varb=a
Vara=2 |
dann ist Varb am Ende dieses Beispiels bei einem Zugriff »1«.
Machen wir das mit Makros in LaTeX:
dann ergibt eine Expansion von \Varb nach diesem Beispiel »2«. Die Expansion kann sogar zu einem Fehler führen, wenn man beispielsweise ein \let\Vara\UnDeFined ergänzt.
Statt mit Makros zu arbeiten, kann man übrigens auch mit dem Paket filecontents und \input arbeiten. Das ist in vielen Fällen besser zu beherrschen und man bekommt Fehler wenigstens halbwegs gut gemeldet (wenn auch in der erzeugten Datei, statt in der Datei-erzeugenden Datei).
_________________
goLaTeX-Knigge (mit Themen Minimalbeispiel und So stellst Du Deine Frage richtig)
DE-TeX-FAQ, UK-FAQ, l2kurz, l2tabu, CTAN, The TeX Catalogue
KOMA-Script
Persönliche Nachrichten auf goLaTeX werden nicht mehr gelesen, also bitte keine PNs an mich!
Zuletzt bearbeitet von KOMA am 05.02.2010, 10:36, insgesamt einmal bearbeitet
|
|
|
|
| IrenaSekuta |

Forum-Century
|
 |
Beiträge: 105
|
 |
|
 |
Anmeldedatum: 02.12.08
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 05.02.2010, 09:45
Titel: Danke schön !!!
|
 |
Hallo KOMA,
recht herzlichen Dank für die tolle Erklärung. Ich werde mir dann erst einmal die von Dir aufgeführte Literatur zu Gemüte führen und erst einmal bei \input bleiben.
Gruß,
Irena
|
|
|
|
|
|
|
Options and Permissions
|
|
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum nicht posten Du kannst Dateien in diesem Forum herunterladen
|
|
|