未放在单独页面上的最大图像?

未放在单独页面上的最大图像?

在文档的某个部分中有一张图片,例如:

\subsubsection{Title}

\begin{figure}
\centering
\includegraphics[width=0.7\textwidth]{somefile.pdf}
\end{figure}

如何设置它以使图像在页面限制内尽可能大,但又不会太大以至于将图像放在与标题不同的页面上?

答案1

下面通过使用一些计算来设置键值,\stretchtofitimage从而垂直拉伸图像以适合“页面的其余部分” :height

在此处输入图片描述

\documentclass{article}
\usepackage{geometry,graphicx,zref-savepos}% http://ctan.org/pkg/{geometry,graphicx,zref}
\makeatletter
% \zsaveposx is defined since 2011/12/05 v2.23 of zref-savepos
\@ifundefined{zsaveposy}{\let\zsaveposy\zsavepos}{}
\newcounter{stretchtofit}
\newcommand{\stretchtofitimage}[2][]{%
  \stepcounter{stretchtofit}% Next image
  \zsaveposy{fig:top\thestretchtofit}% Save vertical position on page
  \includegraphics[height=\dimexpr\zposy{fig:top\thestretchtofit}sp-\Gm@bmargin-1pt,#1]{#2}}
\begin{document}
\section{A section}
\subsection{A subsection}
Here is some text.

\subsubsection{A subsubsection}
{\centering\stretchtofitimage[width=.6\linewidth]{example-image-a}\par}

Here is some more text.
\end{document}

高度的计算使用zrefsavepos模块用于存储页面底部的垂直高度(以点为s单位)。由于此垂直高度是从下往上测量的,因此我们减去底部边距(由提供的)以及一点点。部分下方允许有一些拉伸,此移除可适应此情况。pgeometry\Gm@bmargin1pt1pt

请注意,以上内容假设您没有使用\caption- 它没有包含在您的代码片段中,因此这可能是一个合理的假设。

上图包括一个showframe,这也得到了geometry


如果您想要一个带\subsubsection标题的单页图像,那么您可以不用zref

在此处输入图片描述

\documentclass{article}
\usepackage{graphicx}% http://ctan.org/pkg/graphicx
\begin{document}
\section{A section}
\subsection{A subsection}
Here is some text.

\subsubsection{A subsubsection\strut}
{\centering
\includegraphics[width=\textwidth,height=\dimexpr\textheight-1.7ex-\baselineskip-1pt]{example-image-a}\par}

Here is some more text.
\end{document}

计算的测量值height基于以下事实:使用标准文档类(具有常规)\subsubsection设置标题,并使用跳过后缀标题。同样,差异是为了更好的衡量。\normalfont\normalsize\bfseries\baselineskip1.5ex \@plus .2ex1pt

内部确保标题的正确使用。在实际标题中\strut,您可能不需要它。\subsubsection\baselineskip

答案2

这是一种稍微“黑客”的方式,但生成 LaTeX 的程序只需被告知预期的页面大小,并根据纵横比指定 20 厘米高或 15 厘米宽。

相关内容