导入extpfeil
似乎取消了 中的一些宏定义stmaryrd
。特别是 LaTeX 抱怨
! Undefined control sequence.
<recently read> \Yleft
除非我删除extpfeil
。
\documentclass{article}
\usepackage{extpfeil}
\usepackage{stmaryrd}
\begin{document}
$\Yleft$
\end{document}
难道我做错了什么?
答案1
不幸的extpfeil
是
\RequirePackage[only,shortleftarrow,shortrightarrow]{stmaryrd}
因此stmaryrd
以有限形式加载,这意味着如果您stmaryrd
先加载,您会得到一个选项冲突错误,如果您稍后加载它,则只会定义那些箭头。
最简单的事情(除了将上面的内容更改为如果stmaryrd
包已经加载则不执行此操作)是stmaryrd
先加载,然后伪造包选项,这样就不会发出选项冲突错误:
\documentclass{article}
\usepackage{stmaryrd}
\expandafter\def\csname [email protected]\endcsname
{only,shortleftarrow,shortrightarrow}
\usepackage{extpfeil}
\begin{document}
$\Yleft$
\end{document}
这无疑是一种糟糕的风格,因为它会深入研究核心乳胶定义,但无论如何,它stmaryrd
在没有任何选项的情况下加载,但错误地记录了选项,
only,shortleftarrow,shortrightarrow
因此当extpfeil
尝试使用这些选项加载时,乳胶只是默默地忽略包加载,因为它被记录为已经使用兼容选项加载。