minipage、multicol 和 xcolor 的奇怪交互

minipage、multicol 和 xcolor 的奇怪交互

我并不是 LaTeX 的专家(而且我对底层的 TeX 引擎几乎一无所知),所以如果答案比我看到的更明显,我很抱歉。

有人能告诉我为什么简单地加载xcolor包会改变编译以下代码片段创建的 PDF 的外观(从实际代码中删减以提供 MWE):

\documentclass{report}

    \usepackage{ multicol }
    \usepackage{ xcolor }

\begin{document}

    \begin{minipage}{\textwidth}
        Inside Minpage:
        \begin{multicols}{3}
            \begin{enumerate}
                \item item1
                \item item2
                \item item3
                \item item4
                \item item5
                \item item6
            \end{enumerate}
        \end{multicols}
    \end{minipage}

    \vspace{4 em}

    Outside Minipage:
    \begin{multicols}{3}
        \begin{enumerate}
            \item item1
            \item item2
            \item item3
            \item item4
            \item item5
            \item item6
        \end{enumerate}
    \end{multicols}

\end{document}

请在此处查看结果,特别是item6小页面内部的错位:

在此处输入图片描述

但是,如果我注释掉该\usepackage{ xcolor }行,我会得到这个结果:

在此处输入图片描述

我在Windows7-64位下使用pdflatexTexLive-2014(32位版本)的命令。

更清楚地说,问题在于仅仅包含 就会导致垂直错位xcolor。这是一个已知问题吗?是否有一种可行的解决方法?简单是指不以任何方式干扰 TexLive 安装。可能它应该涉及简单的 LaTeX 设置(我有一个复杂的设置,其中 Lua 代码生成 LaTeX 代码,最终编译为 PDF,因此我想避免更改太多的 LaTeX 生成代码)。

最坏的情况下我会放弃xcolor,但那时我需要一个替代彩色文​​本的工具:不需要做复杂的事情,但必须在 TeXLive 中可用。

非常感谢您的帮助!

编辑

在尝试找出问题时,我发现color包也出现了同样的问题。这能提供线索来追踪问题的根源吗?

此外,由于一位 Linux 用户在评论中表示该问题无法重现,我还重新测试了将行尾字符更改为简单的 LF,而不是标准的 Windows CR-LF,但无济于事。我还将 .tex 文件编码切换为纯 ASCII(之前是 UTF-8),但这应该没关系,因为 MWE 中没有非 ASCII 字符,但你永远不知道。无论如何,没有运气,问题仍然存在。

万一有用,这是我使用的命令行(由我的文本编辑器 SciTE 自动生成):

"G:\root\prg\office\tex\app\texlive/bin/win32/pdflatex.exe" -shell-escape -halt-on-error "bug_xcolor.tex"

该程序记录的第一行内容如下:

This is pdfTeX, Version 3.14159265-2.6-1.40.15 (TeX Live 2014/W32TeX) (preloaded format=pdflatex)
 \write18 enabled.
entering extended mode
(./bug_xcolor.tex
LaTeX2e <2014/05/01>

编辑(由@cfr 的评论引发)

以下是使用 输出的文件列表\listfiles

当 和 均未color加载xcolor时:

 *File List*
  report.cls    2007/10/19 v1.4h Standard LaTeX document class
  size10.clo    2007/10/19 v1.4h Standard LaTeX file (size option)
multicol.sty    2014/04/23 v1.8e multicolumn formatting (FMi)
 ***********

使用时color

 *File List*
  report.cls    2007/10/19 v1.4h Standard LaTeX document class
  size10.clo    2007/10/19 v1.4h Standard LaTeX file (size option)
multicol.sty    2014/04/23 v1.8e multicolumn formatting (FMi)
   color.sty    2014/04/23 v1.1a Standard LaTeX Color (DPC)
   color.cfg    2007/01/18 v1.5 color configuration of teTeX/TeXLive
  pdftex.def    2011/05/27 v0.06d Graphics/color for pdfTeX
infwarerr.sty    2010/04/08 v1.3 Providing info/warning/error messages (HO)
 ltxcmds.sty    2011/11/09 v1.22 LaTeX kernel commands for general use (HO)
supp-pdf.mkii
 ***********

使用时xcolor

*File List*
  report.cls    2007/10/19 v1.4h Standard LaTeX document class
  size10.clo    2007/10/19 v1.4h Standard LaTeX file (size option)
multicol.sty    2014/04/23 v1.8e multicolumn formatting (FMi)
  xcolor.sty    2007/01/21 v2.11 LaTeX color extensions (UK)
   color.cfg    2007/01/18 v1.5 color configuration of teTeX/TeXLive
  pdftex.def    2011/05/27 v0.06d Graphics/color for pdfTeX
infwarerr.sty    2010/04/08 v1.3 Providing info/warning/error messages (HO)
 ltxcmds.sty    2011/11/09 v1.22 LaTeX kernel commands for general use (HO)
supp-pdf.mkii
 ***********

编辑

在@cfr 的帮助下问题解决了。看来我安装的 TL2014 发行版引入了一个错误(切换回较旧的 TL2010 发行版后问题就消失了)。

通过将发行版中的文件更新multicol.sty至 CTAN 上的最新可用版本 (v1.8m) 来解决问题。

答案1

请注意,在下面的比较中,我过滤掉了完美匹配,即我只显示我的输出与您的输出不同的行。

我对 TL 2015 的 MWE 案例的结果如下:

  report.cls    2014/09/29 v1.4h Standard LaTeX document class
  size10.clo    2014/09/29 v1.4h Standard LaTeX file (size option)
multicol.sty    2015/03/31 v1.8m multicolumn formatting (FMi)

与您的相比:

 report.cls    2007/10/19 v1.4h Standard LaTeX document class
  size10.clo    2007/10/19 v1.4h Standard LaTeX file (size option)
multicol.sty    2014/04/23 v1.8e multicolumn formatting (FMi)

使用 TL 2014,我获得:

  report.cls    2014/09/29 v1.4h Standard LaTeX document class
  size10.clo    2014/09/29 v1.4h Standard LaTeX file (size option)
multicol.sty    2014/10/28 v1.8i multicolumn formatting (FMi)

这表明您安装的 TeX Live 可能从未更新过 - 肯定不是 2015 年之前的最终版本。

使用 TL 2013:

  report.cls    2007/10/19 v1.4h Standard LaTeX document class
  size10.clo    2007/10/19 v1.4h Standard LaTeX file (size option)
multicol.sty    2011/06/27 v1.7a multicolumn formatting (FMi)

这表明问题本质上在于您拥有的副本multicol.sty要么太新,要么太旧,但不幸的是,不是“恰到好处”。 (我想知道 OverLeaf 是否使用相同版本multicol- 可能会解释一些事情。)

我会尝试以下内容,但请注意,它可能会失败,所以请做好您的文档根本无法编译的准备。multicol从 CTAN 下载当前副本,并将.sty文件与您的文件一起放在您的工作目录中.tex。如果这导致混乱,您可以删除该文件。

或者,如果你能找到一个老的的副本multicol,它也可能有效。事实上,在这种情况下它应该可以工作。但更新可能修复了其他错误,因此请先尝试更新它。

相关内容