\hbox
と?
関連:
- このは、「(のさまざまな種類のボックスは何ですか? La)TeX? “では一般的にさまざまなボックスについて説明しています。
- この「数学モードでテキストを生成するさまざまな方法の違い」に対する回答は、
\text
と\mbox
を区別します。
コメント
回答
\hbox
はTeXプリミティブであり、\mbox
は
\long\def\mbox#1{\leavevmode\hbox{#1}}
\leavevmode
を介して定義されたLaTeXマクロは、段落を開始することを意味します。比較してください:
\hbox{one} \hbox{two} three
with
\mbox{one} \mbox{two} three
もう1つの違いは、引数が通常のマクロ引数として解析されることです。たとえば、\mbox a
は機能し、\mbox{a}
と同じですが、\hbox a
は構文エラーです。 \mbox{\verb|{|}
はエラーになりますが、\hbox{\verb|{|}
は逐語的に{
を囲みます。
引数に中括弧グループを使用する場合は、明示的な{}
(またはcatcode 1および2の他の文字)である必要がありますが、\hbox
は、\hbox\bgroup
… \egroup
などの暗黙的な中括弧を使用できます(特に、1つのマクロでボックスを開始して終了することができます)
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は垂直モードになります。垂直モードでは、ボックスは垂直に積み重ねられます。次の2つのボックスは、\hbox
とおよびtwo
であるため、現在の垂直リストに垂直に追加されます。次に、three
のt
という文字が表示されます。文字は垂直モードでは許可されないため、TeXはそれを入力に押し戻し、代わりに新しい段落を開始し、段落のインデントを追加してから、水平モードでthree
を再度表示します。
最初のwith
の後に再び段落の区切りがありますが、今回はTeXは\leavevmode
(より正確には\unhbox
の定義)、新しい段落を開始し、インデントを追加すると、 水平モードで\hbox{one}
が表示されます。 。 \leavevmode
はhモードでは何も実行しないため、行末文字に起因する単語スペースからの接着後、TeXは\hbox{two}
を認識します。 、水平方向の後にone
が続き、three
が同じ段落の後に続きます。
2番目のcompare
の後、TeXは再び垂直モードになりますが、今回は段落がzero
で開始されるため、TeXはすでに\hbox
が表示される前の水平モード。したがって、\hbox
と\mbox
は同じように動作します。
基本的に、LaTeXは、基本的なTeXボックスの動作を決して公開しないようにある程度の長さになります。すべてのLaTeXボックスは、\leavevmode
で始まるため動作します。 \mbox
のように、\hbox
ではありません。 (違いは基本的に\parbox
(LaTeX)と\vbox
(TeX)と(LaTeX)および\hrule
(TeX)など。)
\hbox
を使用すると予期しない結果が生じる可能性があることです。したがって、'\hbox
で何をしているのかわからない場合は、常に後者を使用してください。