인수 이동에 대한 설명

인수 이동에 대한 설명

latex2e나는 의 사용에 대해 읽고 있었습니다 \protect. 13.8절에서는 움직이는 논증의 예로 "내부 표현 tabular과 환경"을 언급합니다. array나는 이것에 조금 놀랐다. 누군가 여기서 의미하는 바를 명확히 할 수 있습니까? 아니면 왜 그럴까요?

등의 실험을 해보았습니다.

\documentclass{article}
\usepackage{etoolbox}

\makeatletter

\newcommand\ae@suchthat{\mid}
\newcommand\set[1]{%%
  \begingroup
    \let\suchthat\ae@suchthat
      \{\,#1\,\}%%
  \endgroup
}

\makeatother

\begin{document}

\begin{tabular}{lc}
This & $\set{x\in X \suchthat x>42}$
\end{tabular}

\end{document}

하지만 여기서는 문제가 없을 것 같습니다. 깨지기 쉬운 것과 견고한 것에 대해 내가 무엇을 오해하고 있습니까?

답변1

매뉴얼에는 Leslie Lamport의 공식 매뉴얼과 일치하도록 " 및 @의 -표현식 "을 언급해야 합니다. 예는 다음과 같습니다.tabulararray

\documentclass{article}
\usepackage{graphicx}
\begin{document}

\begin{tabular}{l@{ \resizebox{2mm}{!}{$x$} }l}
A & B \\
C & D
\end{tabular}
\end{document}

이동 인수의 취약한 명령으로 인해 일반적인 오류 메시지가 표시됩니다.

! Use of \@array doesn't match its definition.
\@ifnextchar ... \reserved@d =#1\def \reserved@a {
                                                  #2}\def \reserved@b {#3}\f...
l.5 ...in{tabular}{l@{ \resizebox{2mm}{!}{$x$} }l}

사용하면 \protect\resizebox오류가 발생하지 않습니다.

"LaTeX, 문서 준비 시스템", 페이지 168에서 인용:

C.1.3 취약한 명령

명령은 다음 중 하나로 분류됩니다.건장한그리고부서지기 쉬운. [...] 다음은 이동 인수가 있는 모든 명령과 환경입니다.

  • [...]

  • 또는 환경 .@​ ( 명령은 아니지만 -expression의 취약한 명령은 움직이는 인수에 있는 것처럼 'ed 되어야 합니다 .)arraytabular@@\protect

관련 정보