\newcommand{\initialize}[2][tmargin=1in, bmargin=1in, right=0.75in, left=0.75in]{
\geometry{#1}
\ifthenelse{\equal{#2}{}}{\setboolean{indent}{false}}{\setboolean{indent}{true}}
\ifthenelse{\boolean{indent}}{}{\setlength\parindent{0pt}}
% \setlength\parindent{12pt}
}%
Dies ist ein Befehl in meinem Paket, den ich als eine Art Präambel verwende.
Was mich hier interessiert, ist mein Standard für den Geometriebefehl. Der Standard wird nicht verwendet, wenn ich den Befehl verwende:
\initialize[]{}
Für jede Hilfe, wie ich meine Standardeinstellung zum Laufen bekomme, wäre ich dankbar.
Antwort1
Ohne funktionierenden (oder defekten) Code ist es schwer zu erraten, was Sie tun, aber:
\initialize[]{}
übergibt zwei Argumente --- nicht eins. Beide Argumente sind leer. Da beide angegeben sind, wird der Standardwert nicht verwendet.- Wird verwendet
\initialize{}
, um den Standardwert aufzurufen.
Antwort2
Ich glaube nicht, dass Sie die richtige Methode verwenden.
Das obligatorische Argument \initialize
scheint nur dazu zu dienen, zu unterscheiden, ob es leer ist oder nicht, und es wird nicht verwendet.
Vorausgesetzt, die Initialisierung sollte
\geometry{tmargin=1in, bmargin=1in, right=0.75in, left=0.75in}
\setlength{\parindent}{0pt}
Sie sollten besser bedient sein mit
\NewDocumentCommand{\initialize}{sO{}}{%
\IfBooleanTF{#1}{\setlength{\parindent}{12pt}}{\setlength{\parindent]{0pt}}%
\geometry{tmargin=1in, bmargin=1in, right=0.75in, left=0.75in,#2}%
}
Ein Aufruf wie \initialize
würde also den beabsichtigten Standardwert mit Null festlegen \parindent
, während \initialize*
die Standardgeometrie und \parindent
auf 12pt festgelegt würde. Mit
\initialize[tmargin=2in]
Sie würden die tmargin
in der Standardeinstellung überschreiben und die anderen Werte beibehalten. Gleiches gilt für
\initialize*[tmargin=2in]
das würde dasselbe bewirken, außer dass es \parindent
auf 12pt eingestellt wäre.