我在一份 A4 文档中有一个横向的 A3 页面,但是我编写代码的方式需要一张空白页,或者将上一页也定向为横向。
有人能提供建议吗?
另外,有没有简单的方法可以让该页不计入页码计数?
非常感谢!
\documentclass[titlepage,a4paper,12pt]{book}
\usepackage{graphicx}
\usepackage{rotating}
\usepackage{lscape}
\begin{itemize}
\item Carbon dioxide;
\item Temperature changes;
\item Global ice volume.
\end{itemize}
\begingroup
\pdfpagewidth=2\pdfpagewidth
\noindent%\makebox[0pt][l]{%
\pagestyle{empty}
\begin{landscape}
\begin{figure}[ht]
\centering
\includegraphics[width=0.95\linewidth]{BigFig.jpg}
\label{fig:locations}
\caption{TEXT}
\end{figure}
\end{landscape}
\endgroup
\end{document}
答案1
我想到你真正想要的是让整个页面充当浮动元素,而不是将浮动元素放入页面中。
更改边距比我想象的要难。KOMA 对这个问题的理解很模糊,几何图形强制使用 \newpage。即使我自己重置了所有参数,\centering 或 \vfill 之类的东西也不起作用。我使用 \vbox 让 \vfill 工作,或者使用 \hbox 让 \hfill 工作,但不能同时使用两者。
我尝试使用 \NewEnviron,但 \BODY 和 \afterpage 不能协同工作。最后,我无法让页码显示在下一页上,最终只是将其覆盖。
\documentclass{article}
\usepackage{geometry}
\usepackage{afterpage}
\usepackage{caption}% for \captionof
\usepackage{mwe}% for example-image (also loads lipsum and graphicx)
\newlength{\oldpaperheight}
\newlength{\oldpaperwidth}
\newcommand{\writepagenumber}%
{\raisebox{\dimexpr -\textheight-\footskip}[0pt][0pt]{\rlap{\makebox[\textwidth]{\thepage}}}}
\newcommand{\pagefloat}[2][1cm]% #1 = margin size (optional), #2 = contents
{\afterpage{%
\savegeometry{current}%
\thispagestyle{empty}%
\paperwidth=42cm
\eject \pdfpagewidth=\paperwidth \pdfpageheight=\paperheight
\topmargin=#1
\advance\topmargin by -1in
\headheight=0pt
\headsep=0pt
\oddsidemargin=#1
\advance\oddsidemargin by -1in
\evensidemargin=\oddsidemargin
\linewidth=\paperwidth
\advance\linewidth by -#1
\advance\linewidth by -#1
\textheight=\paperheight
\advance\textheight by -#1
\advance\textheight by -#1
\textwidth=\linewidth% technically not in landscape
\noindent\vbox to \textheight{#2}%
\paperwidth=21cm
\eject \pdfpagewidth=\paperwidth \pdfpageheight=\paperheight
\loadgeometry{current}% automatic \newpage
\addtocounter{page}{-1}
\noindent\null\writepagenumber
}}
\begin{document}
\pagefloat{%
\rule{\linewidth}{1pt}\vfill\par% show top of text area
\makebox[\linewidth][c]{\includegraphics[height=0.9\textheight]{example-image}}
\captionof{figure}{example image}
\vfill\par\rule{\linewidth}{1pt}% show bottom of text area
}
\lipsum[1-16]
\end{document}
答案2
这是我在看一个类似的问题时采取的方法(我不记得是哪一个了,但如果有人认出它,请给予赞扬):
\usepackage{lscape} %allow certain pages to be formatted in landscape orientation
\usepackage[paper=A4,pagesize]{typearea}
\usepackage{afterpage}
\begin{document}
\afterpage{% Insert after the current page
\clearpage
\KOMAoptions{paper=A3,paper=landscape,pagesize}
\recalctypearea
%put stuff on A3 lanscape page here
\clearpage
\KOMAoptions{paper=A4,pagesize}
\recalctypearea
}
\pagebreak
对于页码,您可以使用\setcounter{page}{1}
重置不同页面上的页码计数器(例如,仅从目录之后开始计数等。不确定如何错过某一页,也许它会给你一个可以查看的地方