대괄호 없이 인수 명령을 인수로 사용

대괄호 없이 인수 명령을 인수로 사용

이전에 이런 질문을 받았다면 놀라지 않을 것입니다. 그러나 검색 결과가 나오지 않았습니다. TeX 커널 등의 정말 위험한 해킹을 하지 않고서는 이것이 가능하지 않다고 해도 놀라지 않을 것입니다. 하지만 어쨌든 물어보자.

권장되는 대로 수학 모드에서 굵은 글자에 대한 단축키로 다음 코드를 사용합니다.여기:

\documentclass{memoir}
\usepackage{amsmath,bm,amsfonts}

\def\*#1{\bm{\mathrm{#1}}}

\begin{document}
Let $\*v$ be a vector in $\mathbb R^n$ with $A\*v = \*v$.
\end{document}

이는 대부분의 상황에서 훌륭하고 편리하지만, \*v다른 명령의 인수 내부에 작성하는 것이 때때로 지루해집니다. 예를 들어, \*vas 의 파생물을 작성하고 싶을 수도 있습니다 \dot{\*v}. s를 쓰지 않아도 되는 방법이 있는지 궁금합니다 {}. 구체적으로 내가 원하는 것은 명령을 재정 \*의하여 다음과 같이 하는 것입니다.

$\dot\*v$

또는

$\dot\*{longvector}$

올바르게 구문 분석할 수 있습니다.

답변1

아마도 이것은 귀하의 요구에 충분할 것입니다

\def\*#1{{\bm{\mathrm{#1}}}}
\let\olddot\dot
\def\dot{\expandafter\olddot}

매크로 정의 본문 주위의 추가 대괄호에 유의하십시오 \*. 이는 확장이 다음 \*에 대한 단일 인수처럼 보이도록 하기 위한 것입니다 \olddot.

\dot\*v -> \expandafter\olddot\*v -> \olddot{\bm{\mathrm{v}}}

관련 정보