figure*
在带有浮点数的两列文档中,该preview
包设置为预览浮点数,如果fixltx2e
加载该包,则编译似乎会失败:
\documentclass[twocolumn]{article}
\usepackage{fixltx2e}
\usepackage[active,floats]{preview}
\begin{document}
\begin{figure*}Test\end{figure*}
\end{document}
看到的第一条错误消息是:
! Extra }, or forgotten \endgroup.
\@endfloatbox ...pagefalse \outer@nobreak \egroup
\color@endbox
l.7 \begin{figure*}Test\end{figure*}
?
fixltx2e
如果未加载或figure
使用该环境,则错误消失。
我的目标是“预览”两列文档中的所有图形,以便\linewidth
在环境中正确设置。我做错了什么?有没有办法在保留的同时“修复”这个问题fixltx2e
?在最近的 LaTeX 安装中是否需要这个包?
答案1
\pr@\end@dblfloat
执行时发生错误,使用\end@dblfloat
。
\end@dblfloat
让我们比较一下内核中和中的定义fixltx2e
:
latex.ltx
\def\end@dblfloat{%
\if@twocolumn
\@endfloatbox
\ifnum\@floatpenalty <\z@
\@largefloatcheck
\@cons\@dbldeferlist\@currbox
\fi
\ifnum \@floatpenalty =-\@Mii \@Esphack\fi
\else
\end@float
\fi
}
fixltx2e.sty
\def\end@dblfloat{%
\if@twocolumn
\@endfloatbox
\ifnum\@floatpenalty <\z@
\@largefloatcheck
\global\dp\@currbox1sp %
\expandafter\@gobble\end@float
\fi
\else
\end@float
\fi
}
如您所见,该\@largefloatcheck
命令后面跟着两个完全不同的路径,这会造成preview.sty
对内核定义的依赖。
我看不出有任何办法解决这个问题,除非更新以考虑加载preview.sty
时的情况。fixltx2e