数学设计与回忆录章节风格之间的冲突

数学设计与回忆录章节风格之间的冲突

我刚刚遇到了 mathdesign 和 memoir 中的 ell chapterstyle 之间的奇怪交互。我使用的是 TeX Live 2013,我相信这是在 mathdesign 2.31 更新中引入的。

以下是触发该行为的最少代码:

\documentclass{memoir}
\usepackage[charter]{mathdesign}
\chapterstyle{ell}
\begin{document}
\chapter{First chapter title}
Some text.
\end{document} 

这会出现以下错误:

! Leaders not followed by proper glue.
<to be read again> 
    \hfill 
l.5 \chapter{First chapter title}

无论为 mathdesign 选择哪种字体系列,都会发生这种情况(未加载 mathdesign 时不会发生这种情况)。

问题似乎是由 \chapterheadstart 中的 \hrulefill 在回忆录端引发的。ell chapterstyle 的定义包括以下内容:

\renewcommand*{\chapterheadstart}{\begingroup
  \vspace*{\beforechapskip}%
  \begin{adjustwidth}{}{-\chapindent}%
  \hrulefill
  \smash{\rule{0.4pt}{15mm}}
  \end{adjustwidth}\endgroup}

将 \hrulefill 替换为 \hfill 或 \dotfill 可消除错误,反之,使用上述重新定义代替完整的 ell chapterstyle 也会导致错误。但在普通段落中使用 \hrulefill 不会导致错误。

可能存在什么问题以及如何解决?

答案1

嗯,你的回答确实如此:\mathdesign改变它的定义\hrulefill可能不应该。

这恢复了定义。

\documentclass{memoir}
\let\xhrf\hrulefill

\usepackage[charter]{mathdesign}
\let\hrulefill\xhrf

\renewcommand*{\chapterheadstart}{\begingroup
  \vspace*{\beforechapskip}%
  \begin{adjustwidth}{}{-\chapindent}%
  \hrulefill
  \smash{\rule{0.4pt}{15mm}}
  \end{adjustwidth}\endgroup}


\begin{document}
\chapter{First chapter title}
Some text.
\end{document} 

或者在不破坏其他用途的情况下添加 mathdesign 预期宽度参数的定义:

\makeatletter
\def\hrulefill{\leavevmode\leaders \hrule height \rulethickness \hfill\kern\z@}
\makeatletter

相关内容