次のスニペットを検討してください。
\documentclass{memoir}
\usepackage{fixltx2e}
\setfloatadjustment{figure}{\raggedleft}
\begin{document}
\begin{figure}
ABC
\end{figure}
\end{document}
ABC
このコードをコンパイルすると、がタイプブロックの右側に配置されるはずですが、デフォルト側 (左側) に配置されます。fixltx2e パッケージをコメント アウトすると、コードは期待どおりに動作します。残念ながら、使用しているパッケージの中には、fixltx2e パッケージをロードするものがあるため、usepackage を単にコメント アウトすることができません。この問題を修正する方法を知っている人はいますか?\@xfloat
は上書きされているようですが、これは次の行でメモワールによってカバーされているはずです。
\AtBeginDocument{
\let\m@m@xfloat\@xfloat
\def\@xfloat #1[#2]{%
\m@m@xfloat #1[#2]%
\def\baselinestretch{\m@m@float@spacing}%
\normalsize}
}
答え1
確かに、fixltx2e
上書きします\@xfloat
。これは、標準ドキュメントクラスのコンテンツを固定するものであると考えられています。memoir
ではありません。
memoir
は独自に管理するため、memoir
の 固有のバージョンを保存して復元する\@xfloat
か、単に再定義するのが最善です。
\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}
fixltx2e
デフォルトでは、LaTeX2e (近日リリース予定の TeX Live 2015) リリースの一部となることに注意してください。
LaTeX2eは、以前はパッケージを明示的にロードすることによってのみ含まれていた変更をデフォルトで組み込むようになりました
fixltx2e
。これは、現在では何も行いません(CTANのお知らせ)。