인수를 받아들이기 위해 중괄호가 필요하지 않은 매크로를 만들고 싶습니다. 예를 만들어 보겠습니다. 선택적 인수 f
와 인수를 허용하는 매크로를 원한다고 가정해 보겠습니다 x
.
\dd[f]{x}
그리고 이는 다음과 같이 작성하는 것과 동일합니다.
\frac{\mathrm{d} f }{\mathrm{d} x }
문제는 대괄호를 쓸 필요가 없지만 여전히 인수를 허용하는 매크로를 만들 수 있느냐는 것입니다.
대괄호 사용을 피할 수 있다면 매우 편리할 것입니다. 다음과 같은 것이 훌륭할 것입니다:
\dd f,x
괄호 쓰기를 피할 수 있는 방법이 있나요?
답변1
이러한 종류의 매크로는 일반 tex 구성이며 "구분된 매크로"라고 합니다. 실수하기 쉽기 때문에 적어도 부분적으로는 라텍스에서는 권장되지 않습니다.
다음은 귀하가 요청한 작업을 수행하는 예입니다.
\documentclass{article}
\def\dd #1,#2 {\frac{\mathrm{d} #1 }{\mathrm{d} #2 }}
\begin{document}
\thispagestyle{empty}
$\dd f,x $
\end{document}
입력에서 두 번째 인수 뒤에 공백을 생략하면 관찰하십시오.
$\dd f,x$
오류가 발생합니다.
! Missing } inserted.
<inserted text>
}
l.5 $\dd f,x$
그러나 명확한 "closer"가 없으면 인수 인식이 단일 입력 토큰으로 제한됩니다. 이는 매우 제한적일 수 있지만 이 예에서는 그렇지 않습니다.
편집하다: 인수가 선택 사항일 수 있는 유사한 구분 매크로에 대한 요청에 대한 응답으로 여기에 해당 목적으로 수정된 동일한 매크로가 있습니다. 이 특별한 경우에는 모든 인수를 명확하게 구분하기만 하면 됩니다.
\documentclass{article}
\def\dd #1,#2;{\frac{\mathrm{d} #1 }{\mathrm{d} #2 }}
\begin{document}
\[\dd f,x; \quad \dd ,x; \quad \dd ,; \]
\end{document}
이 경우 각 인수가 단 하나의 문자 또는 제어 시퀀스(예: \phi
)일 가능성이 높으므로 인수를 생략하면 출력에서 해당 인수가 생략됩니다. (예제를 설정할 때 했던 것처럼 쉼표 대신 마침표를 입력하지 마세요.)
다중 문자 문자열이 인수가 되는 더 복잡한 상황에서 인수에 구두점이 있을 수 있다는 것은 구분 기호 선택에 훨씬 더 주의를 기울여야 함을 의미합니다. 이러한 경우 @SeanAllred의 의견에서 제안한 대로 영향을 받는 인수를 중괄호로 묶어 (la)tex에 대한 단일 토큰으로 표시되도록 할 수도 있습니다.
그리고 이 매크로가 수학이 아닌 텍스트에 사용된다면매우확장 시 공백에 주의하세요.