После обновления MiKTeX 23 апреля 2015 г. компиляция моих файлов TeX, использующих пакет fixltx2e.sty, была нарушена. Согласно статье LaTeX News Issue 22, пакет fixltx2e устарел, и его функциональность была интегрирована в ядро LaTeX. Чтобы исправить проблемы компиляции, я последовал рекомендациям в статье LaTeX News Issue 22, включив \RequirePackage[2015/01/01]{latexrelease}
перед \documentclass
. Однако это, похоже, приводит к проблемам с пробелами/разрывами текста в классе документа IEEEtran.cls, когда в файле TeX есть рисунки.
Вот MWE. Проблема возникает как для одноколоночных, так и для двухколоночных документов с параметрами класса conference
или journal
. Я включаю только пример для двухколоночного журнала, потому что проблема возникает для более короткого документа.
\RequirePackage[2015/01/01]{latexrelease} % Comment this for old MiKTeX
%\RequirePackage{fixltx2e} % Uncomment this for old MiKTeX
\documentclass[10pt,final,twocolumn]{IEEEtran}
\RequirePackage[demo,final]{graphicx}
\RequirePackage[cmex10]{amsmath}
\interdisplaylinepenalty=2500
\RequirePackage{amsthm}
\RequirePackage{algorithm}
\RequirePackage[english]{babel} % Without this new MiKTeX throws -- Package babel Error: Unknown language `english'. Comment out for old MiKTeX
\RequirePackage{blindtext}
\newtheorem{remark}{Remark}
\newtheorem{theorem}{Theorem}
\begin{document}
\title{ABC DEF}
\author{\IEEEauthorblockN{Author~1, Author~2 and Author~3}\\
\IEEEauthorblockA{Dept. of XYZ, University of UVW\\
Email: \{author1,author2,author3\}@uvw.edu}}
\maketitle
\begin{abstract}
\blindtext
\end{abstract}
\section{Introduction}
\label{sec:intro}
\Blindtext[7]
\section{System Model}
\label{sec:system-model}
\blindtext
\begin{equation}
asd = fgh
\end{equation}
\blindtext
\blindtext
\begin{equation}
asd = fgh
\end{equation}
\blindtext
\section{Problem Description}
\label{sec:prob-descrip}
\blindtext
\begin{equation}
asd = fgh
\end{equation}
\blindtext
\begin{figure}
\centering
\includegraphics[width=0.9\linewidth,height=0.7\linewidth]{}
\caption{random text random text\textsubscript{random}, $ghi$, random text. Here $abc$ and $def$.}
\label{fig:cspectrum}
\end{figure}
Random text
\begin{equation}
abc = def = ghi
\end{equation}
\begin{equation}
\begin{split}
abc & = def \\
& = ghi
\end{split}
\end{equation}
\blindtext
\section{Algorithm}
\blindtext
\begin{figure}
\begin{algorithm}[H]
\caption{random caption}
\textbf{Input:}
\blindenumerate
\textbf{Output:} random text\\
\textbf{Steps:}
\begin{enumerate}
\item random text
\item random text
\blindenumerate
\item random text
\end{enumerate}
\label{alg:random-ALG}
\end{algorithm}
\end{figure}
\begin{remark}
\blindtext
\begin{equation}
abc \geq def \geq ghi
\end{equation}
\end{remark}
\begin{theorem}
\label{thm:random}
random text
\begin{align}
abc & = def \\
ghi & = jkl
\end{align}
\end{theorem}
\begin{IEEEproof}
\blindtext
\end{IEEEproof}
\section{Conclusions}
\label{sec:conclusion}
\blindtext
\end{document}
Первая строка моего лог-файла гласит:
Это pdfTeX, версия 3.14159265-2.6-1.40.15 (MiKTeX 2.9 64-бит) (предустановленный формат=pdflatex 2015.2.11)
Вторая страница документа, полученного путем компиляции приведенного выше примера, выглядит так: Для этого короткого примера перемещение рисунка в файле TeX может решить проблемы с интервалами (это чисто вопрос удачи). Но для более крупных документов с большим количеством рисунков это становится серьезной проблемой.
Я проверил, что проблема не возникала до обновления MiKTeX, т. е. когда пакет fixltx2e.sty требовался для исправления ядра LaTeX. Компиляция файла в старом MiKTeX с изменениями, предложенными в комментариях MWE, дает правильный интервал/разрыв текста, при этом вторая страница выглядит так Для старого MiKTeX первая строка моего файла журнала гласит:
Это pdfTeX, версия 3.1415926-2.5-1.40.14 (MiKTeX 2.9) (предварительно загруженный формат=pdflatex 2013.8.10)
Есть ли хороший способ исправить эту проблему без особого вмешательства в преамбулу файла-примера?
Примечание:Связанная проблема обсуждалась вРисунки и таблицы «выталкивают» текст в правом столбцена этом форуме о взаимодействии класса документа IEEEtran.cls и пакета fixltx2e.sty, с утверждением, что некоторые версии IEEEtran.cls несовместимы с fixltx2e.sty. Но это было давно, и с тех пор IEEEtran и fixltx2e претерпели серьезные изменения, поэтому не уверен, что этот пост все еще актуален.