将图像和标题放在一页上

将图像和标题放在一页上

考虑一张具有以下特征的图像:

  • 长度未知的标题
  • 高度未知
  • 未知宽度
  • 未知的长宽比

我希望这张图片占据整个页面的宽度,除非图片的总高度及其标题比页面高,在这种情况下,我希望图像和标题的总高度最大为页面的高度。

如果我们忽略标题,可以这样实现:

\includegraphics[width=\textwidth,height=\textheight,keepaspectratio]{image.jpg}

但显然这没有考虑到标题。这可以实现吗?是否有任何隐秘的软件包已经可以实现这种巫术?

注意:有一个类似的问题这里但他们知道标题的长度

答案1

这个解决方案是我对你所说的内容的最佳猜测。但我确实需要做出一些假设。但也许我错了。

首先,我假设您知道要打印的页面尺寸。如果您连这一点都不知道,那么……那么,您需要给我们更多帮助,让我们了解您正在做什么。

以下每幅图像都是使用相同环境创建的。我已加载包geometryshowframe以便您可以更轻松地看到整个页面是如何填充的。

在此处输入图片描述

在此处输入图片描述

在此处输入图片描述

这是我用来创建上述页面的代码。

\documentclass{article}

\usepackage[showframe,margin=0.5in]{geometry}
\usepackage{graphicx}
\usepackage{mwe}

\newsavebox\aebox
\newenvironment{captionedpicture}[2][5in]
  {\def\mypic{#2}%%
   \begin{lrbox}\aebox
    \begin{minipage}[b]{#1}
      \raggedright}
  {\end{minipage}%%
   \end{lrbox}%%
   \noindent\begin{minipage}[t]{\columnwidth}
      \hspace*{\fill}%%
      \includegraphics[height=\dimexpr\textheight-\ht\aebox-2ex]{\mypic}%%
      \hspace*{\fill}%%
      \par\addvspace{1ex}%%
      \hspace*{\fill}\usebox{\aebox}\hspace*{\fill}
   \end{minipage}}

\pagestyle{empty}

\begin{document}

\begin{captionedpicture}{example-image-10x16}
  {\LARGE\centering A HUGE CAPTION\par}
  ARMA virumque cano, Troiae qui primus ab oris
  Italiam, fato profugus, Laviniaque venit
  litora, multum ille et terris iactatus et alto
  vi superum saevae memorem Iunonis ob iram;
  multa quoque et bello passus, dum conderet urbem,
  inferretque deos Latio, genus unde Latinum,
  Albanique patres, atque altae moenia Romae.

  Musa, mihi causas memora, quo numine laeso,
  quidve dolens, regina deum tot volvere casus
  insignem pietate virum, tot adire labores
  impulerit.  Tantaene animis caelestibus irae?

  Urbs antiqua fuit, Tyrii tenuere coloni,
  Karthago, Italiam contra Tiberinaque longe
  ostia, dives opum studiisque asperrima belli;
  quam Iuno fertur terris magis omnibus unam
  posthabita coluisse Samo; hic illius arma,
  hic currus fuit; hoc regnum dea gentibus esse,
  si qua fata sinant, iam tum tenditque fovetque.
  Progeniem sed enim Troiano a sanguine duci
  audierat, Tyrias olim quae verteret arces;
  hinc populum late regem belloque superbum
  venturum excidio Libyae:  sic volvere Parcas.
  Id metuens, veterisque memor Saturnia belli,
  prima quod ad Troiam pro caris gesserat Argis---
  necdum etiam causae irarum saevique dolores
  exciderant animo:  manet alta mente repostum
  iudicium Paridis spretaeque iniuria formae,
  et genus invisum, et rapti Ganymedis honores.
  His accensa super, iactatos aequore toto
  Troas, reliquias Danaum atque immitis Achilli,
  arcebat longe Latio, multosque per annos
  errabant, acti fatis, maria omnia circum.
  Tantae molis erat Romanam condere gentem!

  Vix e conspectu Siculae telluris in altum
  vela dabant laeti, et spumas salis aere ruebant,
  cum Iuno, aeternum servans sub pectore volnus,
  haec secum:  'Mene incepto desistere victam,
  nec posse Italia Teucrorum avertere regem?
  Quippe vetor fatis.  Pallasne exurere classem
  Argivom atque ipsos potuit submergere ponto,
  unius ob noxam et furias Aiacis Oilei?
  Ipsa, Iovis rapidum iaculata e nubibus ignem,
  disiecitque rates evertitque aequora ventis,
  illum expirantem transfixo pectore flammas
  turbine corripuit scopuloque infixit acuto.
  Ast ego, quae divom incedo regina, Iovisque
  et soror et coniunx, una cum gente tot annos
  bella gero! Et quisquam numen Iunonis adoret
  praeterea, aut supplex aris imponet honorem?'
\end{captionedpicture}%%

\clearpage

\begin{captionedpicture}{example-image-10x16}
  {\LARGE\centering A modest caption\par}
  ARMA virumque cano, Troiae qui primus ab oris
  Italiam, fato profugus, Laviniaque venit
  litora, multum ille et terris iactatus et alto
  vi superum saevae memorem Iunonis ob iram;
  multa quoque et bello passus, dum conderet urbem,
  inferretque deos Latio, genus unde Latinum,
  Albanique patres, atque altae moenia Romae.

  Musa, mihi causas memora, quo numine laeso,
  quidve dolens, regina deum tot volvere casus
  insignem pietate virum, tot adire labores
  impulerit.  Tantaene animis caelestibus irae?
\end{captionedpicture}%%

\clearpage

\begin{captionedpicture}{example-image-10x16}
  {\LARGE\centering A one liner\par}
\end{captionedpicture}%%

\end{document}

相关内容