我发现在 tex.stackexchange.com 上一个优秀而美丽的肖像但只有 1 页横向表格的片段(见下文)。
这正是我需要的,但是我想要一个页码,但是当我注释掉thispagestyle{empty}时,pagenumber 本身是不是旋轉。所以那仍然是肖像。
如何让页脚/页眉也旋转?其余部分需要保持不变(功能良好,因此只影响带有表格、\afterpage、PDF 渲染等的单个页面)。
梅威瑟:
\documentclass{article}
\usepackage{pdflscape}
\usepackage{afterpage}
\usepackage{capt-of}% or use the larger `caption` package
\usepackage{lipsum}% dummy text
\begin{document}
\lipsum % Text before
\afterpage{%
\clearpage% Flush earlier floats (otherwise order might not be correct)
% \thispagestyle{empty}% empty page style (?)
\begin{landscape}% Landscape page
\centering % Center table
\begin{tabular}{llll}
A & B & C & D \\
\end{tabular}
\captionof{table}{Table caption}% Add 'table' caption
\end{landscape}
\clearpage% Flush page
}
\lipsum % Text after
\end{document}
答案1
在这里,我使用我的\atxy{x-loc}{y-loc}{text}
技术有哪些方法可以将内容绝对定位在页面上?在页面上的任意位置放置某项内容。我选择的位置是{\dimexpr\paperwidth-1in}{.5\paperheight}
相对于新方向水平居中,距离页面的新底部 1 英寸。我在此处排版的是{\rotatebox[origin=center]{90}{\thepage}}
。当然,我允许\thispagestyle{empty}
这个新页码代替自然的 LaTeX 页码。
\documentclass{article}
\usepackage{everypage,graphicx}
\def\PageTopMargin{1in}
\def\PageLeftMargin{1in}
\newcommand\atxy[3]{%
\AddThispageHook{\smash{\hspace*{\dimexpr-\PageLeftMargin-\hoffset+#1\relax}%
\raisebox{\dimexpr\PageTopMargin+\voffset-#2\relax}{#3}}}}
\usepackage{pdflscape}
\usepackage{afterpage}
\usepackage{capt-of}% or use the larger `caption` package
\usepackage{lipsum}% dummy text
\begin{document}
\lipsum % Text before
\afterpage{%
\clearpage% Flush earlier floats (otherwise order might not be correct)
\thispagestyle{empty}% empty page style (?)
\atxy{\dimexpr\paperwidth-1in}{.5\paperheight}{\rotatebox[origin=center]{90}{\thepage}}
\begin{landscape}% Landscape page
\centering % Center table
\begin{tabular}{llll}
A & B & C & D \\
\end{tabular}
\captionof{table}{Table caption}% Add 'table' caption
\end{landscape}
\clearpage% Flush page
}
\lipsum % Text after
\end{document}
答案2
史蒂文提出的出色解决方案尚未发挥坚实的作用。在类似的 MWE 中,页码从页面上掉下来(见下文)。
第一个问题:为什么不能将 PageTopMargin/PageleftMargin 偏移量作为当前页边距?为什么它们是硬编码的?
假设我有默认边距为 3.5 厘米的 A4 纸。对于横向表格,我将边距改为 1 厘米。如果我遵循 Stevens 的方法,以下代码片段将在正确的位置打印页码。但是它是不可见的(在页面外部)。
我可以通过更改为来使下面的示例可见:
\def\PageLeftMargin{3cm}
这有点奇怪,但它仍然没有很好地水平对齐(由 PageTopMargin 驱动)。因此,我可以通过调整常量来实现这一点,但是我很好奇真正的解决方案。
MWE,页码从页面上掉下来,根据 Steven 的例子,这并不是所预料到的。
\documentclass{article}
\usepackage[english]{babel}
\usepackage[a4paper,top=35mm,bottom=35mm,left=35mm,right=35mm]{geometry}
\usepackage{everypage,graphicx}
\def\PageTopMargin{1cm}
\def\PageLeftMargin{1cm}
\newcommand\atxy[3]{%
\AddThispageHook{\smash{\hspace*{\dimexpr-\PageLeftMargin-\hoffset+#1\relax}%
\raisebox{\dimexpr\PageTopMargin+\voffset-#2\relax}{#3}}}}
\usepackage{pdflscape}
\usepackage{afterpage}
\usepackage{capt-of}% or use the larger `caption` package
\usepackage{lipsum}% dummy text
\begin{document}
\lipsum % Text before
\afterpage{%
\clearpage% Flush earlier floats (otherwise order might not be correct)
\newgeometry{left=1cm, right=1cm,top=1cm,bottom=1cm}
\thispagestyle{empty}% empty page style (?)
\atxy{\dimexpr\paperwidth-1cm}{.5\paperheight}{\rotatebox[origin=center]{90}{\thepage}}
\begin{landscape}% Landscape page
\centering % Center table
\begin{tabular}{llll}
A & B & C & D \\
\end{tabular}
\captionof{table}{Table caption}% Add 'table' caption
\end{landscape}
\clearpage% Flush page
\aftergroup\restoregeometry
}
\lipsum % Text after
\end{document}