如何使单个(浮动)页面的顶部和底部页边距更小?

如何使单个(浮动)页面的顶部和底部页边距更小?

我有一个高大的人物,我想让它出现在单独的页面上,但不是在文章的最后,并且想要较小的顶部和底部边距仅有的对于浮动页面。我可以\begin{figure}[p]将其放在浮动页面上。

我确实尝试过诸如此类的技巧\newgeometry ... \restoregeometry,但它们要么会剪切上一页的文本(请参阅下面的 MWE),要么会影响前/后页的边距(我无法在 MWE 中重现这一点)。在下面的 MWE 中,第二页的文本被剪切,只显示 4 行文本,然后我得到了下一页的图形,然后再次显示文本。我希望文本仍然正常流动,即第二页有全文。

\documentclass[12pt,a4paper,oneside]{article}
\usepackage[utf8]{inputenc}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{graphicx}
\usepackage{blindtext}
\usepackage[left=1.8in,right=1.8in,top=1.75in,bottom=1.65in]{geometry}
\begin{document}
  \blindtext[1]
  \blindtext[1]
  \blindtext[1]
  \blindtext[1]
  \newgeometry{top=10mm, bottom=15mm}
  \begin{figure}
  \includegraphics[height=10cm]{image.png}
  \caption{bleh}
  \end{figure}
  \restoregeometry
  \blindtext[1]
  \blindtext[1]
  \blindtext[1]
  \blindtext[1]
  \blindtext[1]
\end{document}

如果没有,\newgeometry我可以通过使用负片来获得/模拟较小的顶部边距\vspace,并且仍然使文本流动而不会在上一页被剪切,但底部边距是最大的罪魁祸首,因为我想将页码推得更低。

我将非常感激能够得到一些提示。

答案1

部分问题在于\blindtext创建一个大的单个段落而不是多个段落。

我不确定为什么,但\clearpage最后的额外内容似乎是必要的。我确实注意到 afterpage\clearpage在内部重新定义了。

\documentclass[12pt,a4paper,oneside]{article}
\usepackage[utf8]{inputenc}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{graphicx}
\usepackage{lipsum}
\usepackage[left=1.8in,right=1.8in,top=1.75in,bottom=1.65in]{geometry}
\usepackage{afterpage}
\begin{document}
  \lipsum[1-3]
  \afterpage{\newgeometry{top=10mm, bottom=15mm}
    \begin{figure}[p]
      \includegraphics[height=10cm]{example-image}
      \caption{bleh}
    \end{figure}
    \restoregeometry\clearpage}
  \lipsum[4-10]
\end{document}

此解决方案将小页面和页脚叠加在空白页面上。第一个按钮\raisebox\vfills 一起移动到修改后的文本区域的中心。第二个\raisebox按钮执行页脚,假设几何形状不会改变\footskip

\documentclass[12pt,a4paper,oneside]{article}
\usepackage[utf8]{inputenc}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{graphicx}
\usepackage{lipsum}
\usepackage[left=1.8in,right=1.8in,top=1.75in,bottom=1.65in,showframe]{geometry}
\usepackage{afterpage}

\makeatletter
\newcommand{\setcaptype}[1]% #1 = figure or table
  {\def\@captype{#1}}
\makeatother

\begin{document}
  \lipsum[1-3]
  \afterpage{\clearpage\thispagestyle{empty}
    \null\vfill
    \noindent\raisebox{\dimexpr 1.75in-1.65in}[10mm][15mm]% center of new text area
      {\begin{minipage}[c]{\textwidth}
        \setcaptype{figure}
        \includegraphics[height=10cm]{example-image}
        \caption{bleh}
     \end{minipage}}
    \vfill% add footer manually
    \noindent\raisebox{\dimexpr 15mm-1.65in-\footskip}[0pt][0pt]{\makebox[\textwidth][c]{\thepage}}
    \newpage}
  \lipsum[4-10]
\end{document}

相关内容