加载 floatrow 包后,使用 adjustbox 旋转字幕不起作用

加载 floatrow 包后,使用 adjustbox 旋转字幕不起作用

我尝试使用该包旋转图形及其标题adjustbox。这很正常,直到我floatrow也加载了该包,标题才旋转。

参见我的 MWE:

\documentclass{article}
\usepackage{adjustbox}
\usepackage{blindtext}
\usepackage{floatrow} 

\begin{document}
\blindtext

\begin{figure}[ht]
  \begin{adjustbox}{addcode={\begin{minipage}{\width}}{\caption{%
      Here is a caption of the figure which is so long that 
      it has to be wrapped over multiple lines, but should 
      not exceed the width (height after the rotation) of the image.
      }\end{minipage}},rotate=90,center}
      \includegraphics[scale=.6]{example-image}%
  \end{adjustbox}
\end{figure}

\blindtext
\end{document}

我检查了两个包文档中是否有相互引用的内容,但似乎没有任何内容。

有人知道如何解决这个问题吗?

答案1

这里的问题是floatrow重新定义命令的内部代码\caption并挂接到figure环境代码中。然后商店首先在内部插入标题文本,然后将其重新插入到配置的位置,即图形内容的顶部或底部。如果没有该包,正常行为是立即放置标题。

由于它没有放置在编写代码的位置 - 在adjustbox环境内部 - 因此它不能被该环境旋转!相反,它会像上面提到的那样稍后重新插入。

不幸的是,没有简单的方法可以强制floatrow这里将标题正常放置,因为它看起来不是为此设计的。然后,adjustbox这里无能为力。我建议忍受它或尝试更改为另一个浮动包,它可以为您提供所需的功能,但让标题保持原样。

然而,我猜想一个完整的解决方案是再次破解内部代码float并将旋转代码放在floatrow代码之后,但有点小题大做。

相关内容