매크로는 대괄호로 묶지 않고 인수를 취합니까?

매크로는 대괄호로 묶지 않고 인수를 취합니까?

인수를 받아들이기 위해 중괄호가 필요하지 않은 매크로를 만들고 싶습니다. 예를 만들어 보겠습니다. 선택적 인수 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에 대한 단일 토큰으로 표시되도록 할 수도 있습니다.

그리고 이 매크로가 수학이 아닌 텍스트에 사용된다면매우확장 시 공백에 주의하세요.

관련 정보