命令 \nr 已定义(datetime2 和 nccmath 不兼容)

命令 \nr 已定义(datetime2 和 nccmath 不兼容)

当我首先加载选项时,似乎datetime2nccmath包不兼容(我得到)。[useregional]command \nr already defined

我使用了一个解决方案来减少需要后者的方程式周围的间距,我想我可以同样轻松地找到另一个解决方案(尽管可能不那么方便),但也许这里有人可以找到解决这个问题的方法。

梅威瑟:

\documentclass{article}

\usepackage[useregional]{datetime2}
\usepackage{nccmath}
\usepackage{lipsum}

\title{Example}
\author{Isabella B.}

\begin{document}
    \maketitle

    \lipsum[1]

    \useshortskip

    \[ 2\times2=4 \]

    \lipsum[1]
\end{document}

在此处输入图片描述

nccmath \useshortskip命令仍然有效,但其他一些功能可能受到影响。

\useshortskip

在此处输入图片描述

没有\useshortskip

在此处输入图片描述

答案1

是的,它们有一点不兼容。nccmath定义\nr为 相当于\\[0.5ex]。如果您不使用此快捷方式,则 @Zarko 提出的解决方案将起作用:nccmath将定义\nrdatetime2覆盖它而不会出现问题。

但是如果你想要\nr快捷方式,那么这将行不通。datetime2用作\nr临时宏来保存数字。您可以重新定义它以使用其他名称,这样就不会发生冲突。在加载之后datetime2和之前将其添加到您的序言中nccmath

\makeatletter
\define@choicekey{datetime2.sty}{useregional}[\DTM@val\DTM@nr]%
 {false,text,numeric,num}[text]%
 {%
   \ifcase\DTM@nr\relax
     \renewcommand*{\DTMifcaseregional}[3]{##1}%
   \or
     \renewcommand*{\DTMifcaseregional}[3]{##2}%
   \or
     \renewcommand*{\DTMifcaseregional}[3]{##3}%
   \or
     \renewcommand*{\DTMifcaseregional}[3]{##3}%
   \fi
 }
\let\nr\relax
\makeatother

梅威瑟:

\documentclass{article}

\usepackage[useregional]{datetime2}
\makeatletter
\define@choicekey{datetime2.sty}{useregional}[\DTM@val\DTM@nr]%
 {false,text,numeric,num}[text]%
 {%
   \ifcase\DTM@nr\relax
     \renewcommand*{\DTMifcaseregional}[3]{##1}%
   \or
     \renewcommand*{\DTMifcaseregional}[3]{##2}%
   \or
     \renewcommand*{\DTMifcaseregional}[3]{##3}%
   \or
     \renewcommand*{\DTMifcaseregional}[3]{##3}%
   \fi
 }
\let\nr\relax
\makeatother
\usepackage{nccmath}
\usepackage{lipsum}

\title{Example}
\author{Isabella B.}

\begin{document}
    \maketitle

    \lipsum[1]

    \useshortskip

    \[ 2\times2=4 \]

    \lipsum[1]
\end{document}

答案2

您可以按此顺序加载包,中和\nr以下命令nccmath

\usepackage{nccmath}%
\let\nr\relax%
\usepackage[useregional]{datetime2}

您可以将 替换nccmath \nr为其用途:\\[0.5ex],或使用linespread来自的环境mathtools(在这种情况下无需加载amsmath)。

相关内容