새 명령에는 기본값이 작동하지 않습니다.

새 명령에는 기본값이 작동하지 않습니다.
\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}
  }%

이것은 일종의 서문처럼 사용하는 패키지의 명령입니다.

여기서 내가 관심을 두는 것은 기하학 명령에 대한 기본값이며, 명령을 사용할 때 기본값이 사용되지 않습니다.

\initialize[]{}

내 기본값을 작동시키는 방법에 대한 도움이 도움이 될 것입니다.

답변1

작동하는(또는 손상된) 코드 없이는 무엇을 하고 있는지 추측하기 어렵지만 다음과 같습니다.

  • \initialize[]{}하나가 아닌 두 개의 인수를 전달합니다. 두 인수가 모두 비어 있습니다. 둘 다 지정되었으므로 기본값은 사용되지 않습니다.
  • \initialize{}기본값을 호출하는 데 사용됩니다 .

답변2

나는 당신이 올바른 방법을 사용하고 있다고 생각하지 않습니다.

필수 인수는 \initialize비어 있는지 여부와 사용되지 않는지 구별하는 것 같습니다.

초기화가 수행되어야 한다고 가정

\geometry{tmargin=1in, bmargin=1in, right=0.75in, left=0.75in}
\setlength{\parindent}{0pt}

당신은 더 나은 서비스를 받아야합니다

\NewDocumentCommand{\initialize}{sO{}}{%
  \IfBooleanTF{#1}{\setlength{\parindent}{12pt}}{\setlength{\parindent]{0pt}}%
  \geometry{tmargin=1in, bmargin=1in, right=0.75in, left=0.75in,#2}%
}

따라서 다음과 같은 호출은 \initialize의도한 기본값을 0으로 설정하는 \parindent반면 \initialize*기본 기하학 및 \parindent12pt를 설정합니다. 와 함께

\initialize[tmargin=2in]

tmargin다른 값은 유지하면서 기본값 을 재정의합니다 . 마찬가지로

\initialize*[tmargin=2in]

\parindent12pt로 설정하는 것을 제외하고는 동일합니다 .

관련 정보