seitenzahlen in eine externe Seite schreiben

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


akoc

seitenzahlen in eine externe Seite schreiben

Beitrag von akoc »

Hallo Latex Gemeinde,

ich möchte gerne die Seitenzahlen meines Latex Dokumentes in eine externe Datei schreiben. Nur funzt das nicht so recht mit dem \value{page} in einem outputstream bereich. In dem unteren Beispiel wird in document.tmp "\c@page" geschrieben. Ich habe keine Idee, warum nicht die Seitenzahl in die Datei vernünftig geschrieben wird.
\newwrite\outputstream
\immediate\openout\outputstream=document.tmp
\immediate\write\outputstream{\value{page}}
\immediate\closeout\outputstream

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

Beitrag von KOMA »

Das liegt daran, dass Du den Unterschied zwischen einem LaTeX-Zähler, einem TeX-Zähler und der Ausgabe eines Zählers nicht kennst:
  • \newcounter{foo} ─ definiert den LaTeX Zähler "foo". Intern wird dazu der TeX-Zähler \c@foo definiert, wenn \newcounter nicht anderweitig umdefiniert wurde.
  • \value{foo} ─ der Wert des LaTeX Zählers "foo", also der TeX-Zähler \c@foo (Voraussetzungen: siehe \newcounter).
  • \thefoo ─ Ausgabe des LaTeX Zählers "foo" in seiner vorgesehenen Darstellung. Intern wird dazu in der Regel auf \Alph, \alph, \arabic, \roman, \Roman, \fnsymbol oder \@Alph, \@alph, \@arabic, \@roman, \@Roman oder \@fnsymbol zurückgegriffen.
  • \Alph{foo} ─ Darstellung des LaTeX Zählers "foo" in arabischen Großbuchstaben.
  • \alph{foo} ─ Darstellung des LaTeX Zählers "foo" in arabischen Kleinbuchstaben.
  • \arabic{foo} ─ Darstellung des LaTeX Zählers "foo" als arabische Zahl.
  • \roman{foo} ─ Darstellung des LaTeX Zählers "foo" als kleine römische Zahl.
  • \Roman{foo} ─ Darstellung des LaTeX Zählers "foo" als große römische Zahl.
  • \fnsymbol{foo} ─ Darstellung des LaTeX Zählers "foo" als Fußnotenzeichen.
  • \c@foo ─ der TeX-Zähler, der zum LaTeX Zähler "foo" gehört.
  • \the\c@foo ─ Ausgabe des Werts des TeX-Zählers \c@foo.
  • \number\c@foo ─ der Wert des TeX-Zählers \c@foo.
  • \@Alph\c@foo ─ Darstellung des TeX-Zählers \c@foo in arabischen Großbuchstaben.
  • \@alph\c@foo ─ Darstellung des TeX-Zählers \c@foo in arabischen Kleinbuchstaben.
  • \@arabic\c@foo ─ Darstellung des TeX-Zählers \c@foo als arabische Zahl.
  • \@roman\c@foo ─ Darstellung des TeX-Zählers \c@foo als kleine römische Zahl.
  • \@Roman\c@foo ─ Darstellung des TeX-Zählers \c@foo als große römische Zahl.
  • \@fnsymbol\c@foo ─ Darstellung des TeX-Zählers \c@foo als Fußnotenzeichen.
Mit einem TeX-Zähler, also auch mit dem Wert eines LaTeX-Zählers, kann man viele Dinge tun. Man kann ihn mit anderen Zählern oder Zahlen oder sogar Längen vergleichen und man kann damit rechnen. Aber man kann abvr nicht setzen (also in das Ausgabedokument schreiben) und beim Schreiben in eine Datei wird er eben ggf. der Zähler und nichts anderes in die Datei geschrieben. Du willst aber eine Ausgabe oder Darstellung des Wertes eines Zählers in eine Datei schreiben. Also solltest Du genau das tun.

Wäre außerdem schön, wenn Du passende Wiki-Einträge erstellen würdest.

phi
Moderator
Moderator
Beiträge: 420
Registriert: Fr 6. Feb 2009, 21:28

Beitrag von phi »

Mit \immediate\write funktioniert das sowieso nicht, da die Seitenzahl erst beim Shipout bekannt ist. Du sucht vermutlich \protected@write ... {\thepage} oder etwas Ähnliches.

Antworten