回忆录、babel[法语] 和 @makecaption

回忆录、babel[法语] 和 @makecaption

memoir我在使用、babel和包时遇到问题caption:编译文档时,日志返回警告:

Package frenchb.ldf Warning: The definition of \@makecaption has been changed,
(frenchb.ldf)                frenchb will NOT customise it;
(frenchb.ldf)                reported on input line 8.

问题是,法语babel应该创建:一个活动字符,因此,在它的前后放置一个空格。但由于@makecaption宏以某种方式重新定义,空格丢失了。如何强制使 周围的排版行为:正确?

以下是 MWE:

\documentclass[a4paper,12pt,twoside,openright,final]{memoir}
\usepackage[T1]{fontenc}
\usepackage[english,francais]{babel}
\begin{document}

Blah blah blah (\ref{fig:Figure})

\begin{figure}
\caption{Xxxxx}
\label{fig:Figure}
\end{figure}
\end{document}

答案1

解决方案 1

我们利用这样一个事实:法语字体中的冒号前后应有正常的单词间空格。

\documentclass[a4paper,12pt,twoside,openright,final]{memoir}
\usepackage[T1]{fontenc}
\usepackage[english,francais]{babel}

\captiondelim{ : }

\begin{document}

Blah blah blah (\ref{fig:Figure})

\begin{figure}
\caption{Xxxxx}
\label{fig:Figure}
\end{figure}
\end{document}

解决方案 2

我们教导memoir使用由 重新定义的冒号;这样做的好处是,如果发出或者我们在 的范围内,babel它将给出正常的冒号。\selectlanguage{english}\begin{otherlanguage}{english}

\documentclass[a4paper,12pt,twoside,openright,final]{memoir}
\usepackage[T1]{fontenc}
\usepackage[english,francais]{babel}

\AtBeginDocument{%
  \begingroup\lccode`~=`:
  \lowercase{\endgroup\captiondelim{~ }}%
}

\begin{document}

Blah blah blah (\ref{fig:Figure})

\begin{figure}
\caption{Xxxxx}
\label{fig:Figure}
\end{figure}
\end{document}

在此处输入图片描述

至于有关的警告\@makecaption,恐怕您必须保留它或使用silence包将其删除。

相关内容