goLaTeX .:. deutschsprachiges LaTeX Forum

... deutschsprachiges LaTeX Forum


Bücher:

Tabellen mit LaTeX (Sondereinband)

Forenstatistik:
Beiträge: 9655
Seitenaufrufe:
113095 PIs (Jan 2010)

Top-Poster: KOMA (1126)

Wir begrüßen unseren neuesten Benutzer Hiitzl.

Partner:

KOMA-Script



TeXblog



LaTeX Community




Forum
      Option
[Erweitert]
  • Diese Seite weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Variableninhalt über mehrere Absätze

 

IrenaSekuta
Forum-Century
Forum-Century

Beiträge: 105
Anmeldedatum: 02.12.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 04.02.2010, 16:37     Titel: Variableninhalt über mehrere Absätze
  Antworten mit Zitat      
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:

Code:
\documentclass{scrreprt}
\usepackage[T1]{fontenc}
\usepackage[ansinew]{inputenc}
\usepackage[ngerman]{babel}


\newcommand{\varA}{Erste Zeile

Zweite Zeile...
}

\begin{document}
\varA
\end{document}


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
Private Nachricht senden Benutzer-Profile anzeigen

KOMA
TeX-Entwickler
TeX-Entwickler


Beiträge: 1126
Anmeldedatum: 04.07.08
Wohnort: ---
Version: Postfach geschlossen
     Beitrag Verfasst am: 04.02.2010, 17:03     Titel: noch 21
  Antworten mit Zitat      
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:
Code:
\newcommand*{\Vara}{1}
\newcommand*{\Varb}{\Vara}
\renewcommand*{\Vara}{2}

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
Private Nachricht senden Benutzer-Profile anzeigen

IrenaSekuta
Forum-Century
Forum-Century

Beiträge: 105
Anmeldedatum: 02.12.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 05.02.2010, 09:45     Titel: Danke schön !!!
  Antworten mit Zitat      
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
Private Nachricht senden Benutzer-Profile anzeigen

Neues Thema eröffnen Neue Antwort erstellen



Options and Permissions
Beiträge der letzten Zeit anzeigen:

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
.

goLaTeX ist ein Teil des goForen-Labels
goForen.de goMATLAB.de goLaTeX.de goPCB.de


  Impressum | Werbung/Mediadaten | FAQ | goLaTeX RSS Button RSS-Feed

Copyright © 2008 - 2010 goLaTeX.de
Partner: LabVIEWforum.de