某些 TeXLive 安装中出现奇怪的浮点放置编译错误

某些 TeXLive 安装中出现奇怪的浮点放置编译错误

请考虑以下文档:

\documentclass{article}
\usepackage{subcaption}
\usepackage{float}
\begin{document}
\begin{figure}[H]
  \caption{A caption.}
\end{figure}
Some text after the figure.
\end{document}

直到最近,这个在我的 Devuan Beowulf (~= Debian Buster) 系统上编译得很好。然后一个apt-get dist upgrade半月前,它停止了编译,抱怨 H 的位置:

 LaTeX Error: Unknown float option `H'.

但是,在我的笔记本电脑上,使用 Ubuntu 18.04.3(Bionic),它可以继续工作。

为什么会发生这种情况?我该如何避免这种情况?

笔记:

源调整的效果

  • 如果我删除\usepackage{subcaption}- 它就可以起作用。
  • 如果我移动\usepackage{subcaption}浮点数之后的它 - 它仍然不起作用。
  • 如果我[H][h]- 替换,它就可以工作。

TeXLive 版本

  • 新破系统:2018.20190227-2
  • 工作笔记本系统:2017.20180305-1

完整日志:

Latexmk: This is Latexmk, John Collins, 18 June 2019, version: 4.65.
Latexmk: applying rule 'pdflatex'...
Rule 'pdflatex': The following rules & subrules became out-of-date:
      'pdflatex'
------------
Run number 1 of rule 'pdflatex'
------------
------------
Running 'pdflatex --shell-escape  -recorder  "a.tex" -file-line-error -synctex=1'
------------
This is pdfTeX, Version 3.14159265-2.6-1.40.20 (TeX Live 2019/Debian) (preloaded format=pdflatex)
 \write18 enabled.
entering extended mode
(./a.tex
LaTeX2e <2018-12-01>
(/usr/share/texlive/texmf-dist/tex/latex/base/article.cls
Document Class: article 2018/09/03 v1.4i Standard LaTeX document class
(/usr/share/texlive/texmf-dist/tex/latex/base/size10.clo))
(/usr/share/texlive/texmf-dist/tex/latex/caption/subcaption.sty
(/usr/share/texlive/texmf-dist/tex/latex/caption/caption.sty
(/usr/share/texlive/texmf-dist/tex/latex/caption/caption3.sty
(/usr/share/texlive/texmf-dist/tex/latex/graphics/keyval.sty))))
(/usr/share/texlive/texmf-dist/tex/latex/float/float.sty) (./a.aux)

! LaTeX Error: Unknown float option `H'.

See the LaTeX manual or LaTeX Companion for explanation.
Type  H <return>  for immediate help.
 ...                                              

l.5 \begin{figure}[H]

? 

答案1

tl;dr:您的发行版打包了一个错误的版本caption.sty

这是由于您的机器使用了 Debian SID texlive-latex-recommended 包的一个特别不合适的版本。漏洞导致caption.sty了这次失败;虽然很快就修复了,但是texlive-latex-recommended软件包中还是出现了缺陷caption.sty

如果您下载最新版本的subcaption包裹,并将其放在您本地的 texmf 树中 - 该文档应该可以正常编译。

另外 - 检查你的/etc/apt/sources.list。在升级到 Devuan Beowulf 的某些情况下存在已知故障,即在 APT 源中放置了 Devuan Unstable 存储库(ceres 而不是 beowulf)的 APT 行。


感谢@DavidCarlisle 为我指明了方向,并感谢@PhelypeOleinik 指出了确切的错误。

相关内容