我的文档中有一张图片,我想让它在横向显示得尽可能大,但整个图形(图片和标题)应该在身体。
我研究了很多如何定义整个图形环境的大小,最推荐的解决方案是用迷你页面替换图形。但是,我没有得到我想要的结果。
MWE 用于小页面方法:
\documentclass[a4paper, DIV=13, 12pt]{scrreprt}
\usepackage{graphicx}
\usepackage{caption}
\usepackage{pdflscape}
\usepackage{lipsum}
\title{This is the Title}
\author{It's a Me, Mario!}
\begin{document}
\maketitle
\chapter{Chapter}
\lipsum[6]
\begin{landscape}
\begin{minipage}[t][\textheight][t]{\linewidth}
\centering
\noindent\includegraphics[height=\textheight,keepaspectratio]{example-image-a}
\captionof{figure}{This is the long version of the description of the caption}
\label{fig:flussdiagramm}
\end{minipage}
\end{landscape}
\chapter{Chapter}
\lipsum[5]
\end{document}
标题的边距(红色箭头)与其他页面的边距(蓝色箭头)不匹配。
我以为 minipage 重新定义了\textheight
and\linewidth
但事实似乎并非如此。有人能证实这一点吗?
我如何确保标题在正文/文本区域内并且边距在每一页上保持不变?
最好的,Korbinian
答案1
正如@David Carlisle 所写,必须在文档编译期间计算标题的高度,以确定图像可用的高度。
我使用了@Frank Mittelbach的答案这个帖子用于计算。这段代码对我来说很有效:
\usepackage{calc}
\newlength\graphht % holds the height available for the image
\newcommand\calculategraphicstargetheight[1]{% % pass the number of lines of the caption
\setlength\graphht{\textheight
-\parskip
-\abovecaptionskip -\belowcaptionskip
-(\baselineskip * #1)
}}
使用方式如下:
\begin{landscape}
\calculategraphicstargetheight{1}
\begin{figure}[htbp]
\centering
\noindent\includegraphics[width=\linewidth,height=\graphht,keepaspectratio]{example-image-a}
\captionof{figure}{This is the long version of the description of the caption}
\label{fig:niceimage}
\end{figure}
\end{landscape}
结果如下:
科尔比尼安