数式モードで siunitx リストと範囲に改行を許可するにはどうすればよいですか?

数式モードで siunitx リストと範囲に改行を許可するにはどうすればよいですか?

\numlist私は、および\numrange(および\SIその派生語)を使用して論文を書きました。siunitxパッケージ。いくつかのケースでは、これらのマクロを数式モードで使用しました。たとえば、今になって初めて目にした$\phi = \numlist{0.5;0.6;0.7}$マニュアルの非常に明確なアドバイスとは対照的に、 です。デフォルト設定では、リストの最後の区切り文字が数式テキストで印刷されます(つまり、イタリック体)。そこで、問題ない、マクロsiunitxで区切り文字を囲めばいい、と考えました。\text{}mathtools問題は解決しました。残念ながら、これにより、リストまたは範囲が数式モードであるかどうかに関係なく、リストまたは範囲内で改行が行われなくなります。

そこで質問なのですが、siunitx設定を変更することで必要な場所で改行を許可できますか、それとも論文を調べて数式モードからすべての\...rangeandコマンドを削除し、sの周りの\...listを削除する必要がありますか?\text{}list-separator

デモ:

\documentclass[draft]{article}
\usepackage{siunitx}

\usepackage[showframe]{geometry}
\geometry{width=0.5in}

\setlength{\parindent}{0pt}

\begin{document}
\SIrange{750}{1000}{\kelvin} % Breaks

\SIlist{0.5;0.6;0.7}{\percent} % Breaks

$\phi = \numlist{0.5;0.6;0.7}$ % Doesn't break and italics

\sisetup{%
    range-phrase = {\text{ to }},
    list-separator = {\text{, }},
    list-final-separator = {\text{, and }},
    list-pair-separator = {\text{ and }},
}%


\SIrange{750}{1000}{\kelvin} % Doesn't break

\SIlist{0.5;0.6;0.7}{\percent} % Doesn't break

$\phi = \numlist{0.5;0.6;0.7}$ % Doesn't break
\end{document}

答え1

あなたがリンクしたメッセージは確かに関連性があります。

\documentclass[draft]{article}
\usepackage{siunitx}

\setlength{\parindent}{0pt}

\begin{document}

\sisetup{%
  range-phrase = {\ \linebreak[0]\text{to}\ \nolinebreak},
  list-separator = {\text{, }},
  list-final-separator = {,\ \linebreak[0]\text{and }},
  list-pair-separator = {\ \text{and}\ },
  list-separator = {,\ \linebreak[0]}
}%

\parbox{0pt}{

\SIrange{750}{1000}{\kelvin} % Doesn't break

\SIlist{0.5;0.6;0.7}{\percent} % Doesn't break

$\phi = \numlist{0.5;0.6;0.7}$ % Doesn't break

}
\end{document}

このように導入されたスペースは、ラインの伸縮に関与します。

ここに画像の説明を入力してください

関連情報