Сделайте так, чтобы номенклатура сортировала математику правильно

Сделайте так, чтобы номенклатура сортировала математику правильно

Я сортирую свою номенклатуру, как предлагается в nomenclдокументации по пакету, но \dot{q}сортировка выполняется до aи v, тогда как желаемая сортировка выглядит так:

  • a
  • \dot{q}
  • v

Наличие префикса по умолчанию не помогает, поэтому noprefixиспользуется. Префиксы используются для разделения римских [1]и греческих [2]переменных.

\documentclass[oneside,paper=a4,fontsize=12pt,english]{scrreprt}
\usepackage[noprefix]{nomencl}
\makenomenclature
\begin{document}
\printnomenclature
\nomenclature[1]{\(a\)}{Semimajor axis}
\nomenclature[1]{\(v\)}{Velocity}
\nomenclature[1]{\(\dot{q}\)}{Heat flux}
\nomenclature[2]{\(\rho\)}{Density}
% makeindex.exe Test.nlo -s nomencl.ist -o Test.nls
Lorem ipsum.
\end{document}

Использование [1q]в качестве префикса приводит к \dot{q}сортировке в конце римских переменных. Как мне заставить nomenclatureигнорировать \dot{}?

решение1

Просто добавьте квсезаписи, имеющие математическую версию ASCII для сортировки:

% arara: pdflatex
% arara: nomencl
% arara: pdflatex

\documentclass[oneside,paper=a4,fontsize=12pt,english]{scrreprt}
\usepackage[noprefix]{nomencl}
\makenomenclature

\begin{document}

\printnomenclature
\nomenclature[1a]{\(a\)}{Semimajor axis}
\nomenclature[1v]{\(v\)}{Velocity}
\nomenclature[1q]{\(\dot{q}\)}{Heat flux}
\nomenclature[2rho]{\(\rho\)}{Density}

Lorem ipsum.
\end{document}

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

С araraним вам не нужно запоминать команду для создания .nlsфайла. :)

решение2

Чтобы предотвратить сортировку символов окружающими командами, такими как \dot{q}, добавьте префикс с математическим режимом символа без дополнительных команд, например:

\nomenclature[1\(q\)]{\(\dot{q}\)}{Heat flux}

В полном примере мы видим, что этот дополнительный синтаксис требуется только для единственной проблемной переменной:

Выход

\documentclass[oneside,paper=a4,fontsize=12pt,english]{scrreprt}
\usepackage[noprefix]{nomencl}
\makenomenclature
\begin{document}
    \printnomenclature
    \nomenclature[1]{\(a\)}{Semimajor axis}
    \nomenclature[1]{\(v\)}{Velocity}
    \nomenclature[1\(q\)]{\(\dot{q}\)}{Heat flux}
    \nomenclature[2]{\(\rho\)}{Density}
    % makeindex.exe Test.nlo -s nomencl.ist -o Test.nls
    Lorem ipsum.
\end{document}

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