考虑一张具有以下特征的图像:
- 长度未知的标题
- 高度未知
- 未知宽度
- 未知的长宽比
我希望这张图片占据整个页面的宽度,除非图片的总高度及其标题比页面高,在这种情况下,我希望图像和标题的总高度最大为页面的高度。
如果我们忽略标题,可以这样实现:
\includegraphics[width=\textwidth,height=\textheight,keepaspectratio]{image.jpg}
但显然这没有考虑到标题。这可以实现吗?是否有任何隐秘的软件包已经可以实现这种巫术?
注意:有一个类似的问题这里但他们知道标题的长度
答案1
这个解决方案是我对你所说的内容的最佳猜测。但我确实需要做出一些假设。但也许我错了。
首先,我假设您知道要打印的页面尺寸。如果您连这一点都不知道,那么……那么,您需要给我们更多帮助,让我们了解您正在做什么。
以下每幅图像都是使用相同环境创建的。我已加载包geometry
,showframe
以便您可以更轻松地看到整个页面是如何填充的。
这是我用来创建上述页面的代码。
\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}