![Memórias, babel[francês] e @makecaption](https://rvso.com/image/272012/Mem%C3%B3rias%2C%20babel%5Bfranc%C3%AAs%5D%20e%20%40makecaption.png)
Estou tendo um problema com os memoir
pacotes babel
, e caption
: ao compilar um documento, o log retorna o aviso:
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.
Acontece que o francês babel
deve fazer :
um personagem ativo e, como resultado, colocar um espaço antes e depois dele. Mas como a @makecaption
macro é de alguma forma redefinida, os espaços são perdidos. Como forçar o comportamento para que a tipografia ao redor :
seja correta?
Aqui está um 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}
Responder1
Solução 1
Usamos o fato de que dois pontos na tipografia francesa devem ser precedidos e seguidos por um espaço normal entre palavras.
\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}
Solução 2
Ensinamos memoir
a usar os dois pontos conforme redefinido por babel
; isso tem a vantagem de fornecer dois pontos normais se \selectlanguage{english}
for emitido ou estivermos no escopo de \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}
Quanto ao aviso sobre \@makecaption
, infelizmente você terá que mantê-lo ou usar o silence
pacote para removê-lo.