如何在數學模式下允許 siunitx 列表和範圍中的換行符?

如何在數學模式下允許 siunitx 列表和範圍中的換行符?

\numlist我使用和\numrange(及其\SI變體)寫了我的論文siunitx包裹。在某些情況下,我在數學模式下使用了這些宏,例如,與我現在才看到的手冊$\phi = \numlist{0.5;0.6;0.7}$中非常明確的建議形成鮮明對比。siunitx使用預設設置,這會導致列表最終分隔符號以數學文字(即斜體)列印。所以我想,沒問題,我只需將分隔符號包裝在\text{}巨集中mathtools, 問題解決了。不幸的是,這會阻止清單或範圍內發生換行,無論清單或範圍是否出現在數學模式下。

所以我的問題是,我是否可以透過更改設定來允許在需要的地方換行siunitx,或者我是否必須仔細閱讀我的論文並從數學模式中刪除每個\...rangeand\...list命令,以便我可以刪除s\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}

這樣引入的空間將參與線條的拉伸或收縮。

在此輸入影像描述

相關內容