\num
我希望 pdflatex从包中获取命令siunitx
,但该命令似乎已经在stata
可获得的包中定义(不幸的是,如果你没有 stata,则以复杂的方式)http://repec.sowi.unibe.ch/stata/texdoc/index.html。
(我会在 github repo 中提供整个 sty 文件,但我不知道 Stata ToS 或 Ben Jann 是否允许这样做,所以,对此我很抱歉。)
主要问题
如何告诉 LaTeX 采取\num
from的定义siunitx.sty
而不改变stata.sty
(例如,直接删除该行stata.sty
,虽然可以立即解决问题,但稍后我可能在另一个文档中需要该定义)?欢迎其他任何建议性评论。
这是 MWE,期望的输出和错误的输出:
\documentclass{scrartcl}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{amsmath}
\usepackage{stata} % <--- deactivate to get desired output
\usepackage{siunitx}
\begin{document}
\begin{align*}
P(x \leq 2) & = \num{1e-9} + \num{8.1e-8}
\end{align*}
\num{1e-9}
\end{document}
什么应该看起来像
什么做看起来像
我收到的错误(日志文件)
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!
! LaTeX error: "xparse/command-already-defined"
!
! Command '\num' already defined!
!
! See the LaTeX3 documentation for further information.
!
! For immediate help type H <return>.
!...............................................
l.7289 }
|'''''''''''''''''''''''''''''''''''''''''''''''
| You have used \NewDocumentCommand with a command that already has a
| definition.
| The existing definition of '\num' will not be altered.
|...............................................
和(texstudio中的错误列表)
LaTeX error: "xparse/command-already-defined" Command '\num' already defined! For immediate help type H <return>. }
\num
的定义siunitx.sty
\NewDocumentCommand \num { o m } {
\leavevmode
\group_begin:
\bool_set_false:N \l__siunitx_font_set_bool
\IfNoValueF {#1}
{ \keys_set:nn { siunitx } {#1} }
\__siunitx_number_output:n {#2}
\group_end:
}
和相同的定义stata.sty
\def\num{{\it \#\/}}
(注释:我知道该命令\it
已被弃用,因为程序告诉我,如果我反转包stata
和的加载顺序siunitx
,但这是另一回事,我需要与 Jann 博士讨论)