警告“命令 \underbar 已更改”

警告“命令 \underbar 已更改”

我正在使用以下代码并收到警告

Command \underbar has changed.

这是什么意思?我该如何解决?

\documentclass{article}

\usepackage{amsmath}

\usepackage{unicode-math}

\usepackage[english,greek]{babel}

\usepackage{fontspec}

\setmainfont
[
    UprightFont = *,
    BoldFont = *Bold,
    ItalicFont = *It,
    BoldItalicFont = *BoldIt,
    Extension = .otf,
    Ligatures = TeX,
    Mapping = tex-text
]{GFSArtemisia}


\setsansfont
[
    Mapping = tex-text
]{GFSArtemisia.otf}

\setmathfont{latinmodern-math.otf}

\usepackage{sectsty}

\sectionfont{\RaggedRight}


\begin{document}

Text

\end{document}

答案1

sectsty此警告是由于对 的定义进行检查而引起的\underbar。如果它与预期的定义之一不匹配,则会发出警告。

您可以避免此警告但我不推荐。这个警告​​是告诉您一些重要的事情:它sectsty发现的定义\underbar并不是它所期望的,而且事情可能无法正常工作。

事实上,我建议不要sectsty与 LuaTeX/XeTeX 一起使用。特别是,我不会将它与 一起使用unicode-math

如果您坚持的话,对于 LuaTeX,您可以通过提前加载包来避免该特定警告。对于 XeTeX,您可以通过提前加载包来避免该警告。

例如,

\documentclass{article}
\usepackage{sectsty}
\usepackage{amsmath}
\usepackage{unicode-math}
\usepackage[english,greek]{babel}
\usepackage{fontspec}
\setmainfont
[
    UprightFont = *,
    BoldFont = *Bold,
    ItalicFont = *It,
    BoldItalicFont = *BoldIt,
    Extension = .otf,
    Ligatures = TeX,
]{GFSArtemisia}
\setsansfont
[
    Ligatures = TeX,
]{GFSArtemisia.otf}
\setmathfont{latinmodern-math.otf}
\sectionfont{\RaggedRight}
\begin{document}

Text

\end{document}

然而,我在使用 LuaTeX 时收到了其他警告。

答案2

你真的没有什么可担心的,只要你不sectsty使用下划线章节标题。

\underbar该包不断地检查\underline,因为它想要重新定义它们,但它只是在排版这些标题时这样做。

因此,如果您不使用下划线(最好不要使用),则应该没有问题。

实际上可以采取一些措施来完全禁用这些重新定义(\underbar实际上,只有当您碰巧在章节标题中使用时才会有风险)。

\documentclass{article}

\usepackage{amsmath}
\usepackage{unicode-math}
\usepackage[english,greek]{babel}
\usepackage[immediate]{silence}
\WarningFilter[temp]{latex}{Command} % silence the warning
\usepackage{sectsty}
\DeactivateWarningFilters[temp] % So nothing unrelated gets silenced

\makeatletter % disable the runtime redefinitions
\let\SS@makeulinesect\relax
\let\SS@makeulinepartchap\relax
\makeatother

\setmainfont[
    UprightFont = *,
    BoldFont = *Bold,
    ItalicFont = *It,
    BoldItalicFont = *BoldIt,
    Extension = .otf,
    Ligatures = TeX,
]{GFSArtemisia}
\setsansfont{GFSArtemisia.otf}
\setmathfont{latinmodern-math.otf}

\sectionfont{\RaggedRight}


\begin{document}

Text

\end{document}

相关内容