Considere el siguiente fragmento:
\documentclass{memoir}
\usepackage{fixltx2e}
\setfloatadjustment{figure}{\raggedleft}
\begin{document}
\begin{figure}
ABC
\end{figure}
\end{document}
Cuando compila este código, uno esperaría que ABC
se colocara en el lado derecho del bloque de tipos, pero en cambio se coloca en el lado predeterminado (izquierda). Después de comentar el paquete fixltx2e, el código funciona como se esperaba. Desafortunadamente, algunos paquetes que uso cargan el paquete fixltx2e, por lo que no puedo simplemente comentar el paquete use. ¿Alguien sabe cómo solucionar este problema? Parece que \@xfloat
está sobrescrito, pero debería haber sido cubierto por las memorias con las líneas:
\AtBeginDocument{
\let\m@m@xfloat\@xfloat
\def\@xfloat #1[#2]{%
\m@m@xfloat #1[#2]%
\def\baselinestretch{\m@m@float@spacing}%
\normalsize}
}
Respuesta1
En efecto,fixltx2e
sobrescribe \@xfloat
. La suposición es que fija el contenido en las clases de documentos estándar, de las cualesmemoir
no es.
Dado que memoir
gestiona las cosas por sí solo, lo mejor sería guardar y restaurar la memoir
versión específica de \@xfloat
, o simplemente redefinirla:
\documentclass{memoir}
\usepackage{fixltx2e}
\makeatletter
% Restore original memoir definition of \@xfloat
\def\@xfloat#1[#2]{\mem@old@xfloat{#1}[#2]\@nameuse{#1adjustment}}
\makeatother
\setfloatadjustment{figure}{\raggedleft}
\begin{document}
\begin{figure}
ABC
\end{figure}
\end{document}
Tenga en cuenta que fixltx2e
formará parte de la versión LaTeX2e (próximamente TeX Live 2015) de forma predeterminada:
LaTeX2e ahora incorpora, de forma predeterminada, cambios que antes se incluían solo al cargar explícitamente el
fixltx2e
paquete, que ahora no es operativo (Anuncio CTAN).