\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}
}%
Este es un comando en mi paquete que uso como una especie de preámbulo.
Lo que me importa aquí es mi valor predeterminado para el comando de geometría, el valor predeterminado no se utiliza cuando uso el comando:
\initialize[]{}
Cualquier ayuda sobre cómo hacer que funcione mi valor predeterminado sería excelente.
Respuesta1
Es difícil adivinar qué estás haciendo sin un código que funcione (o esté roto), pero:
\initialize[]{}
pasa dos argumentos --- no uno. Ambos argumentos están vacíos. Como se especifican ambos, no se utiliza el valor predeterminado.- Úselo
\initialize{}
para invocar el valor predeterminado.
Respuesta2
No creo que estés usando el método correcto.
El argumento obligatorio \initialize
parece simplemente distinguir si está vacío o no y no se usa.
Suponiendo que la inicialización debería funcionar
\geometry{tmargin=1in, bmargin=1in, right=0.75in, left=0.75in}
\setlength{\parindent}{0pt}
deberías estar mejor atendido con
\NewDocumentCommand{\initialize}{sO{}}{%
\IfBooleanTF{#1}{\setlength{\parindent}{12pt}}{\setlength{\parindent]{0pt}}%
\geometry{tmargin=1in, bmargin=1in, right=0.75in, left=0.75in,#2}%
}
Por lo tanto, una llamada como \initialize
establecerá el valor predeterminado deseado, con cero \parindent
, mientras que \initialize*
establecería la geometría predeterminada y \parindent
en 12 puntos. Con
\initialize[tmargin=2in]
anularía el tmargin
valor predeterminado y conservaría los demás valores. De manera similar para
\initialize*[tmargin=2in]
eso haría lo mismo excepto configurarlo \parindent
en 12 puntos.