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
包将其删除。