Как разрешить переносы строк в списках и диапазонах siunitx в математическом режиме?

Как разрешить переносы строк в списках и диапазонах siunitx в математическом режиме?

Я написал свою диссертацию, используя \numlistи \numrange\SIих варианты) изsiunitxpackage. В некоторых случаях я использовал эти макросы в математическом режиме, например, $\phi = \numlist{0.5;0.6;0.7}$, в отличие от очень явного совета в siunitxруководстве, который я только сейчас увидел. С настройками по умолчанию это приводит к тому, что конечный разделитель списка печатается в математическом тексте (т. е. курсивом). Поэтому я подумал, нет проблем, я просто оберну разделители в макросе \text{}изmathtools, проблема решена. К сожалению, это предотвращает переносы строк внутри списка или диапазона, независимо от того, находится ли список или диапазон в математическом режиме или нет.

Итак, мой вопрос: могу ли я разрешить переносы строк там, где они мне нужны, изменив siunitxнастройки, или мне придется пройтись по своей диссертации и удалить все команды \...rangeи \...listиз математического режима, чтобы я мог удалить \text{}вокруг list-separators?

Демонстрация:

\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}

Введенные таким образом пробелы будут способствовать растяжению или сжатию линии.

введите описание изображения здесь

Связанный контент