数式の前後の四分アキ
【質問1】
次の文書をpLaTeXでタイプセットすると「4」の前後だけスペースが入りません。
\documentclass{article}
\begin{document}
\xkanjiskip10pt
あ1あ
あ$2$あ
あ\hbox{3}あ
あ\hbox{$4$}あ% ←ここだけスペースが入らない
\end{document}
数式が欧文と同様に扱われるとすると考えると、\hbox{$...$}の前後にもスペースが入るのが自然だと思いますが、入らないのには何か理由があるのでしょうか?
また、\xspcodeなどのコマンドで\hbox{$...$}の前後にスペースが入るように設定を変更する方法がありましたら教えてください。
ptexskip.pdfやアスキーのwebページで調べましたが、この件については見つかりませんでした。
【質問2】
次の現象も質問1の問題が原因だと考えています。
siunitxパッケージの\SIコマンドの後のスペースの問題です。
次の文書をpLaTeXでタイプセットすると、「1 m s-1」の後だけスペースが入りません。
\documentclass{article}
\usepackage{siunitx}
\sisetup{
detect-family=true,
detect-weight=true,
detect-mode=true,
detect-inline-family=math,
detect-inline-weight=math,
detect-display-math=true
}
\begin{document}
\xkanjiskip10pt
あ\SI{1}{\m}あ
あ\SI{1}{\m\per\s}あ
\end{document}
\SIコマンドは単位の指数を\text{$^{\text{-1}}$}のような方法で表示しているようで、\textは内部で\hboxを使用しているので、\hbox{$...$}の問題が\SIの問題の原因ではないかと考えています。
現在、以下のようにして\SIコマンドの後に$\relax$を入れることで対処しています。
\let\originalSI\SI
\renewcommand{\SI}[2]{%
\ifmmode
\originalSI{#1}{#2}%
\else
\originalSI{#1}{#2}%
$\relax$%
\fi
}
この方法には、
- \SIのオプション引数が使用できなくなる、
- \hbox{\SI{...}{...}}のようにすると後のスペースが入らない
という欠点があります。
1つ目の欠点はxparseの\RenewDocumentCommandを使うことで解決できそうですが、2つ目は解決方法がわかりません。
pLaTeXで\SIコマンドの後にスペースが正しく入るようにするよい用法がありましたら教えてください。
よろしくお願いします。