
LaTeX는 \vec
다음과 같이 정의합니다.
\DeclareMathAccent{\vec}{\mathord}{letters}{"7E}
이는 결국 다음으로 확장됩니다.
\mathaccent"017E\relax
반면 plainTeX는 이를 다음과 같이 정의합니다.
\def\vec{\mathaccent"017E }
\relax
공백으로 대체합니다 .
실질적인 차이가 있나요?
답변1
is 의 구문은 \mathaccent
(TeXbook, p. 291)
\mathaccent
⟨15비트 숫자⟩⟨수학 필드⟩
⟨15비트 숫자⟩는 0–2 15 범위의 정수(LaTeX에서 허용하는 모든 표기법)입니다 . ⟨수학 분야⟩란 무엇인가요? 289페이지에서 찾을 수 있습니다.
⟨수학 필드⟩ → ⟨필러⟩⟨수학 기호⟩ | ⟨필러⟩
{
⟨수학 모드 자료⟩}
\relax
⟨filler⟩는 구문 규칙에 맞는 것을 찾기 위해 입력 스트림을 처리할 때 무시되는(확장 수행) 공간 토큰 및 토큰의 시퀀스입니다 .
따라서 LaTeX에서는 \relax
⟨filler⟩로 표시되는 반면 일반 TeX에서는 공백이 숫자 지정을 종료하고 무시됩니다.
LaTeX는 왜 사용하나요 \relax
? 대답은 \DeclareMathAccent
내부적으로 사용되는 정의에 있습니다 \set@mathaccent
.
% latex.ltx, line 3596:
\def\set@mathaccent#1#2#3#4{%
\xdef#2{\mathaccent"\mathchar@type#3\hexnumber@#1#4\relax}}
\relax
선택은 보조 파일에 쓸 때 작업에 더 적합하다는 사실에 따라 달라질 수 있습니다 .