将 stmaryrd 与 extpfeil 结合使用

将 stmaryrd 与 extpfeil 结合使用

导入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尝试使用这些选项加载时,乳胶只是默默地忽略包加载,因为它被记录为已经使用兼容选项加载。

相关内容