在标题中使用宽条重音符

在标题中使用宽条重音符

我正在使用\widebar已实现的重音这里,因为我不想使用 mathabx;但是当我在图形标题中使用重音符号时,出现编译器错误。

以下是有问题的代码:

\caption{(Blah blah) and $(\widebar{N},\widebar{X})$.
\label{fig:Markov_pf_notation}}

错误如下:

\Hy@tempa 的参数有一个额外的 }.\par ...n 右边 $(\widebar{N},\widebar{X})$。} 段落在 \Hy@tempa 完成之前结束。\par ...n 右边 $(\widebar{N},\widebar{X})$。}

\widebar我在文档正文中使用它没有任何问题,而且当我在标题中注释掉这个实例时,一切都能正确编译。

这个实现能修复吗?有没有类似的、\widebar没有这个问题的实现?

答案1

代码在Hendrik Vogt 的回答有线

\newcommand*\widebar[1]{%
  [...code...]
}

但该定义对于移动参数(例如标题和分段标题)的使用而言是“不安全的”。因此\widebar应考虑脆弱的。 看脆弱命令和坚固命令之间有什么区别?了解更多信息。

您可以保留原有的定义并\protect\widebar在移动参数中使用,也可以通过将该行更改为完全消除问题

\newcommand{\widebar}{}% initialize
\DeclareRobustCommand*\widebar[1]{%
  [...code...]
}

“初始化”行只是为了确保\widebar尚未定义,因为\DeclareRobustCommand会默默覆盖先前的定义。

相关内容