다음 스니펫을 고려하세요.
\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 발표).