图像的最大高度是多少?

图像的最大高度是多少?

我希望文档中的图形尽可能大,但又不破坏宽高比和布局。这意味着内容(包括标题)仍应位于页脚上方。当然,我可以手动更改高度直到合适,但我想知道是否有更好的选择。

如果这对于一般情况不起作用,那么是否有一个可行的解决方案,假设标题不超过两行?

目前,我使用

keepaspectratio,width=\linewidth,height=\paperheight

作为图像的默认选项,但我想还有比这更好的东西吗\paperheight

在写这个问题的时候我发现\textheight这样要好得多,但是由于标题的原因,仍然存在问题。

最小示例

代码

\documentclass[a4paper]{article}
\usepackage[ngerman]{babel}
\usepackage[utf8]{inputenc}
\usepackage{amssymb,amsmath}
\usepackage[a4paper, left=1cm, right=1cm, top=2cm, bottom=2cm]{geometry}

\usepackage{lastpage}
\usepackage{graphicx}
\usepackage[pagestyles]{titlesec}
\usepackage{float}

% Header and footer
\newpagestyle{mystyle}{%
  \sethead{Something}{is}{here}
  \setfoot{This is left}{middle}{Page \thepage{} of \pageref*{LastPage}}}
\pagestyle{mystyle}

\begin{document}
    % https://de.wikipedia.org/wiki/Datei:Burj_Khalifa.jpg
    \begin{figure}[H]
        \centering
        \includegraphics[keepaspectratio,width=\linewidth,height=\paperheight]{Burj_Khalifa.jpg}
        \caption{A caption}
    \end{figure}
\end{document}

渲染

在此处输入图片描述

答案1

实际上,您应该使用\textheight,而不是 \paperheight。如果图形有标题,则使用该长度的一小部分作为.8\textheight\dimexpr\textheight-5\baselineskip(文本高度减去五行)作为 4 行标题,或者更准确地说,理论上是\dimexpr\textheight-\abovecaptionskip-4\baselineskip,但在实践中使用\abovecaptionskip可能会产生有点太大的浮点数。但是,您几乎不会注意到这一点(默认 10pt 字体大小时 <2pt,12pt 时 0.13pt,11pt 时没有...)。当然,始终假设正常行没有大字符或内联数学增加行高。

姆韦

\documentclass[a4paper]{article}
\usepackage[showframe]{geometry} % to show document layout
\usepackage{graphicx,lipsum}
\begin{document}
\begin{figure}
\centering\includegraphics[
keepaspectratio,
width=\linewidth,
height=\dimexpr\textheight-7\baselineskip]%
{example-image-9x16}    
\caption{\protect\lipsum*[2]}
\end{figure}
\end{document}

答案2

如果假设标题恰好有两行,则\textheight-34.02pt大约是适合页面的最大高度。

如何得出该值:使用带有图像\textheight并查看 .log 文件,将会有一个警告,指示 vbox 有多满(34.02pt如果您的设置中有两行标题)。

\documentclass[a4paper]{article}
\usepackage[showframe]{geometry} % to show document layout
\usepackage{graphicx}
\begin{document}
\begin{figure}
\centering\includegraphics[keepaspectratio,
width=\linewidth,height=\dimexpr\textheight-34.02pt\relax]{example-image-9x16}   
\caption{text text text text text text text text text text text text text text text text text text text text text text text text } 
\end{figure}
\end{document}

相关内容