PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : newdim



maba
01-10-2017, 20:53
Hallo,

ich habe eine input-Datei, die u.a. den Befehl
\newdimen\MRbreite
enthält. Lädt man diese Datei mehrmals mit \input, wird auch der Befehl \newdim mehrmals ausgeführt, was zu zu vielen \MRbreite führt, und auch den Zähler jedesmal um 1 erhöht, was dann irgendwann auch zu einem Fehler führt, weil der Zähler zu hoch ist.

Wie kann man das in den Griff bekommen?

Grüße

Johannes_B
03-10-2017, 11:26
Definiere die Dimension außerhalb der Datei.

rais
11-10-2017, 01:54
So ich Johannes auch zustimme, hier die eine oder andere Idee:

Dafür gibt es eigentlich \usepackage & Co: wenn ein Paket bereits geladen wurde (z. B. durch ein anderes Paket), wird es nicht nochmal geladen.

OTOH kann man eine Datei auch gegen wiederholtes Laden sichern, z. B.


% zu Beginn der per \input einzubindenden Datei
\csname DateiXbereitsgeladen\endcsname
\let\DateiXbereitsgeladen\endinput

Im ersten Aufruf ist \DateiXbereitsgeladen nicht definiert, was dank \csname..\endcsname aber nicht stört.
In jedem Folgeaufruf ist \DateiXbereitsgeladen definiert als \endinput, d. h. alles, was danach in dieser Datei kommt, wird gar nicht mehr eingelesen.

BTW: ich wusste gar nicht, daß \newdimen einen Zähler auch erhöht, zumal es gar keinen Zähler definiert...vllt meintest Du ja die Anzahl benutzter Dimensionsregister.

VG