![シンボルの自動間隔設定](https://rvso.com/image/298800/%E3%82%B7%E3%83%B3%E3%83%9C%E3%83%AB%E3%81%AE%E8%87%AA%E5%8B%95%E9%96%93%E9%9A%94%E8%A8%AD%E5%AE%9A.png)
一緒に書かれた記号の周りに少しのスペースを自動的に確保する方法を知りたいです。
いくつかの抽象的なオブジェクトを表すシンボルA
とがあると仮定します。シンボルを挿入するB
コマンド\A
とを定義します。\B
\newcommand\A{\mathrm{A}}
\newcommand\B{\mathrm{B}}
ここで、他の記号と一緒に記述するときに、これらの記号の間に少しスペースを入れたいと思います。残念ながら、上記の定義では、これらのスペースを明示的に追加する必要があります。
余分なスペースを自動的に取得するにはどうすればよいですか? 等号と記号の間、および繰り返される記号の間に余分なスペースができないようにするには、静的な量のスペースを追加するだけではないこと、が特に重要です。
上記の出力を生成した MWE:
\documentclass[preview,border=10pt,fleqn]{standalone}
\usepackage{amsmath}
\setlength\mathindent{0pt}
\newcommand\A{\mathrm{A}}
\newcommand\B{\mathrm{B}}
\begin{document}
Symbols with no spacing \eqref{nospaces},
explicit \texttt{\textbackslash,} spaces \eqref{spaces}.
\begin{align}
\label{nospaces}
y &= \A x &
y &= x' \A x &
\B &= \A \A &
\B &= \A' \A
\\
\label{spaces}
y &= \A \, x &
y &= x' \, \A \, x &
\B &= \A \, \A &
\B &= \A' \, \A
\end{align}
\end{document}
答え1
明らかに答えではありませんが、次の 2 つの結果を比較してください。
\documentclass[preview,border=10pt,fleqn]{standalone}
\usepackage{mathtools}
\begin{document}
\begin{align*}
y &= Ax &\chi^2 &= x^TAx &C&= AB &D &= A^T B\\
y &= A\,x &\chi^2 &= x^T \, A \, x &C &= A \, B &D &= A^T \, B\\
y &= A x &\chi^2 &= x^T A x &C &= AB &D &= A^T B
\end{align*}
\end{document}
似ているように 3 回繰り返しました。メッセージを伝えるために太字にする必要はないと思います。大文字のマトリックス、小文字のベクター。転置は標準ではありません。そのためにプライムを使用する人もいますが、小文字の t は常に誤って印刷されたプライムのように見えます。特にマトリックスが太字の場合、重みが足りないためです。
答え2
他にも解決策を探している人がいるかもしれないので、私が試行錯誤して見つけた答えを共有します。
この回答では、この組み合わせは、\mathrm{}\!
差動の前に少し間隔を追加するために使用されますdそこで、シンボルの左右にスペースを追加するために、次の 2 つのコマンドを定義しました。
\newcommand\lxspace{\mathop{}\!}
\newcommand\rxspace{\!\mathop{}\nolimits}
次に、シンボルにスペースを手動で追加します。
\newcommand\A{\lxspace\mathrm{A}\rxspace}
\newcommand\B{\lxspace\mathrm{B}\rxspace}
これは望ましい効果を生み出すようです:
答え3
私は Mathematica の積をスペースで表す方法 (horresco referens!) が好きです。これを TeX で実行するために、*
数式モードで細いスペースを挿入するように再定義しました (以下を参照)。これは自動ではありませんが、通常のアトム、括弧、演算子ではうまく機能するようです。必要な場合は、簡単にオフにできます。
*
数式モードでのの他の用途には、 を代わりに使用できます。数式モード外での\ast
の動作は変更されません。*
\mathcode`\*="8000
{\catcode`\*=\active
\gdef*{\mathclose{}\,\mathopen{}}}
$a*b$
$a b$
$a\,b$
$a*\cos b$
$a \cos b$
$a\,\cos b$
\,
(の代わりにを使用すると*
、最後の式に不要なスペースが挿入されることに注意してください。)