\hbox
와 ?
관련 :
- “(에있는 다른 종류의 상자는 무엇입니까?)에 대한이 답변 La) TeX? “는 일반적으로 다른 상자에 대해 설명합니다.
- “수학 모드에서 텍스트를 생성하는 다양한 방법 간의 차이점 “에 대한이 답변 는
\text
와\mbox
를 구분합니다.
댓글
Answer
\hbox
는 TeX 프리미티브이고 \mbox
는
\long\def\mbox#1{\leavevmode\hbox{#1}}
\leavevmode
를 통해 정의 된 LaTeX 매크로는 단락이 시작됨을 의미합니다.
\hbox{one} \hbox{two} three
with
\mbox{one} \mbox{two} three
다른 차이점은 인수가 일반 매크로 인수로 파싱된다는 것입니다. 예를 들어 \mbox a
가 작동하고 \mbox{a}
와 동일하지만 \hbox a
는 구문 오류입니다. \mbox{\verb|{|}
는 오류로 이어지지 만 \hbox{\verb|{|}
는 그대로 {
를 상자에 넣습니다.
인수에 중괄호 그룹을 사용하는 경우 명시 적 {}
(또는 catcode가 1 및 2 인 기타 문자) 여야하지만 \hbox
는 \hbox\bgroup
… \egroup
와 같은 암시 적 중괄호를 사용할 수 있습니다 (특히 하나의 매크로에서 상자를 시작하고 끝낼 수 있습니다.
LaTeX 문서에서 \hbox
를 사용하지 마십시오 (내부 패키지 코드에서 자주 볼 수 있음).
요청한대로 \leavevmode
에 대한 추가 세부 정보 :
\documentclass{article} \begin{document} compare \hbox{one} \hbox{two} three with \mbox{one} \mbox{two} three see? compare zero \hbox{one} \hbox{two} three with zero \mbox{one} \mbox{two} three see? \end{document}
첫 번째 compare
가 단락 나누기 후에 TeX는 수직 모드로 전환됩니다. 세로 모드에서는 상자가 세로로 쌓입니다. 다음 두 상자는 iv id = “207275 인 \hbox
입니다. b810 “>
및 two
는 현재 카테고리 목록에 세로로 추가됩니다. 그런 다음 three
의 문자 t
가 나옵니다. 세로 모드에서는 문자가 허용되지 않으므로 TeX는 입력으로 다시 밀어 넣고 대신 새 단락을 시작하고 단락 들여 쓰기를 추가 한 다음 가로 모드에서 three
를 다시 표시합니다.
첫 번째 with
다음에 다시 단락 나누기가 있지만 이번에는 TeX에 \leavevmode
(또는 더 정확하게는 \unhbox
정의), 새 단락을 시작하고 들여 쓰기를 추가 한 다음 그런 다음 가로 모드에서 \hbox{one}
를 확인합니다. . \leavevmode
는 h 모드에서 아무 작업도 수행하지 않으므로 줄 끝 문자로 인한 단어 공간의 글루 이후 TeX는 \hbox{two}
를 봅니다. , one
뒤에 가로 오고 같은 단락에서 three
뒤에옵니다.
두 번째 compare
이후 TeX는 다시 세로 모드에 있지만 이번에는 단락이 zero
에 의해 시작되므로 TeX는 이미 가로 모드는 \hbox
가 표시되기 전에 \hbox
및 \mbox
가 동일한 방식으로 작동합니다.
기본적으로 LaTeX는 기본 TeX 상자 동작을 노출하지 절대 하지 않습니다. 모든 LaTeX 상자는 \leavevmode
로 시작하여 작동합니다. \mbox
와 같으며 \hbox
가 아닙니다. (차이점은 기본적으로 \parbox
(LaTeX)와 \vbox
(TeX) 및 (LaTeX) 및 \hrule
(TeX) 예)
\hbox
를 사용하면 예기치 않은 결과가 발생할 수 있다는 것입니다. 따라서 '\hbox
로 무엇을하고 있는지 모르는 경우 항상 후자를 사용하세요.