\numlist
我使用和\numrange
(及其\SI
變體)寫了我的論文siunitx
包裹。在某些情況下,我在數學模式下使用了這些宏,例如,與我現在才看到的手冊$\phi = \numlist{0.5;0.6;0.7}$
中非常明確的建議形成鮮明對比。siunitx
使用預設設置,這會導致列表最終分隔符號以數學文字(即斜體)列印。所以我想,沒問題,我只需將分隔符號包裝在\text{}
巨集中mathtools
, 問題解決了。不幸的是,這會阻止清單或範圍內發生換行,無論清單或範圍是否出現在數學模式下。
所以我的問題是,我是否可以透過更改設定來允許在需要的地方換行siunitx
,或者我是否必須仔細閱讀我的論文並從數學模式中刪除每個\...range
and\...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}
這樣引入的空間將參與線條的拉伸或收縮。