\hbox와 ?

관련 :

  • “(에있는 다른 종류의 상자는 무엇입니까?)에 대한이 답변 La) TeX? “는 일반적으로 다른 상자에 대해 설명합니다.
  • “수학 모드에서 텍스트를 생성하는 다양한 방법 간의 차이점 “에 대한이 답변 \text\mbox를 구분합니다.

댓글

  • 주된 차이점은 LaTeX에서 \hbox를 사용하면 예기치 않은 결과가 발생할 수 있다는 것입니다. 따라서 ' \hbox로 무엇을하고 있는지 모르는 경우 항상 후자를 사용하세요.

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) 예)

답글 남기기

이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다