如何限制图形+标题的大小?

如何限制图形+标题的大小?

我的图表(和表格)有时确实带有几行长的标题。我试图以最佳方式填充页面,因此我将有效内容放在 \maxsizebox 中。在大多数情况下,它工作正常,直到注释太长,在这种情况下部分标题会超出页面。据我了解,我无法将浮动对象放在 \maxsizebox 中。我可以以某种方式限制图像+标题的高度吗?

答案1

可以使用\newlength\settowidth代替\savebox,但这样更快。也可以将宽度设置minipage\textwidth而不是图像宽度。主要区别在于,这样长标题将与图像匹配。

\documentclass{article}
\usepackage{adjustbox}
\usepackage{mwe}

\newsavebox{\tempbox}

\begin{document}

\begin{figure}
\savebox{\tempbox}{\includegraphics{example-image}}% get width of image
\centering\maxsizebox{\textwidth}{.2\textheight}{%
\begin{minipage}{\wd\tempbox}%
\usebox{\tempbox}
\caption{\blindtext}
\end{minipage}}
\end{figure}

\lipsum[1-6]
\end{document}

带标题的调整框

请注意,也可以仅调整图像大小,以便图像和标题适合给定的高度。

\newcommand{\maxfigure}[3]% #1 = max height, #2 = image, #3 = caption
{\bgroup
  \sbox0{\begin{minipage}{\textwidth}\caption{#3}\end{minipage}}%
  \ifdim\ht0>#1\relax\errmessage{\string\maxfigure: caption too big}
  \else\centering\maxsizebox{\textwidth}{\dimexpr #1 - \ht0}{#2}\fi
  \par\box0
\egroup}

答案2

或者,您可以使用该\usepackage[figuresleft]{rotating}包来实现这一点,它会自动扩展。

或者一个不太优雅但更短的手动解决方案是使用scale选项

\includegraphics[scale=0.6]{figure.png}

查看相关答案 https://tex.stackexchange.com/a/488985/34958

相关内容