在词汇表条目中使用 unicode-math/mathrm 时出错

在词汇表条目中使用 unicode-math/mathrm 时出错

自从我更新了 TeX Live 2017 软件包后,似乎出现了此错误。当我尝试使用\mathrm\newglossaryentry,它会导致两个错误:

!缺少 { 插入。__um_group_begin:l.83 \gls{sFSW} \gls{HIL} 此处必须使用左括号,因此我添加了一个。您可能需要删除和/或插入一些更正,以便我尽快找到匹配的右括号。如果您对这一切感到困惑,请尝试立即输入“I}”。

!缺失 } 插入。 } l.83 \gls{sFSW} \gls{HIL} 我插入了一些您可能忘记的内容。(参见上文。)运气好的话,这会让我解开。但如果您真的没有忘记任何东西,请尝试现在输入“2”;然后我的插入和我当前的困境都会消失。

$F_\mathrm{SW}$此外,在文档中使用 eg也会导致同样的错误。

如果没有该unicode-math包或者没有\mathrm在词汇表条目中使用,我不会收到任何错误。

(几乎)MWE:

\documentclass[
a4paper,                            % alle weiteren Papierformate einste
headsepline,                        % Trennline zum Seitenkopf  
headings=normal,                
listof=totoc, version=first,        % Abb.- und Tab.verzeichnis im Inhalt
bibliography=totoc, version=first,  % Literaturverzeichnis im Inhalt
numbers=noenddot,                   % Keine Endpunkte wie 1.2. sondern 1.2
]
{scrbook}


\usepackage{fontspec}
\usepackage{mathtools}      % includes: \usepackage{amsmath} (-> needed e.g. for bmatrix) !! load BEFORE \usepackage{unicode-math}
\usepackage{unicode-math}   % Unicode mathematics support for X∃TEX and LuaTEX

% Set font 
%\setromanfont{Cambria}
%\setsansfont{Calibri}
%\setmonofont{Consolas}
%\setmathfont{Cambria Math}

\usepackage[  %Paket Glossaries laden, muss nach Hyperref geladen werden!
xindy,
nonumberlist, % keine Seitenzahlen anzeigen           
acronym,      % ein Abkürzungsverzeichnis erstellen
toc           % Einträge im Inhaltsverzeichnis
] 
{glossaries}

\newglossary[slg]{symbolslist}{syi}{syg}{Table of Symbols}
\renewcommand*{\glspostdescription}{}

%Glossar-Befehle anschalten
\makeglossaries

\newglossaryentry{sFSW}{
    name=\ensuremath{{F_\mathrm{SW}}},
    description={Driver force, generated by steering wheel moment, acting on the gear rack.},
    sort=FSW, type=symbolslist
}  
% Acronyms
\newacronym{HIL}{HIL}{Hardware-in-the-Loop}

\begin{document}
\pagenumbering{Roman}
\printglossary[type=symbolslist,style=long]
\printglossary[type=\acronymtype, title=Acronyms, nonumberlist=true, toctitle=Acronyms]

\mainmatter                     % Hauptteil
\pagenumbering{arabic}

    \chapter{Test}
    \gls{sFSW} \gls{HIL}

    $F_\mathrm{SW}$

\end{document}

答案1

语法是错误的,但碰巧F_\mathrm{SW}能正常工作。pdflatex

正确的语法是,并且始终是F_{\mathrm{SW}}

所以就这么做吧

\newglossaryentry{sFSW}{
  name=\ensuremath{F_{\mathrm{SW}}},
  description={Driver force, generated by steering wheel moment, acting on the gear rack.},
    sort=FSW, type=symbolslist
}  

你的问题就解决了。


的明显成功F_\mathrm{SW}归功于如何\mathrm在 LaTeX 内核中实现。然而,unicode-math必须以不同的方式实现它,这使得不支持语法失败。

相关内容