Standard funktioniert nicht für neuen Befehl

Standard funktioniert nicht für neuen Befehl
\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 \initializescheint 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 \initializewürde also den beabsichtigten Standardwert mit Null festlegen \parindent, während \initialize*die Standardgeometrie und \parindentauf 12pt festgelegt würde. Mit

\initialize[tmargin=2in]

Sie würden die tmarginin der Standardeinstellung überschreiben und die anderen Werte beibehalten. Gleiches gilt für

\initialize*[tmargin=2in]

das würde dasselbe bewirken, außer dass es \parindentauf 12pt eingestellt wäre.

verwandte Informationen