客观的
如何更改横向页面的标题
到
?
最少代码
\documentclass{book}
\usepackage[a5paper,hmargin=3cm,vmargin=5cm]{geometry}
\usepackage{lscape,lipsum}
\begin{document}
\chapter{One}
\lipsum[1]
\section{One One}
\lipsum[2]
\newgeometry{hmargin=5cm,vmargin=3cm}
\begin{landscape}
\lipsum[3-5]
\end{landscape}
\restoregeometry
\lipsum[6]
\end{document}
编辑1(我的真实场景布局)
在我的实际情况下,左右边距不应该被标题占据。
答案1
该lscape
软件包不是为此设计的。例如,它是为旋转宽图或表格而设计的。并且该geometry
软件包明确指出\newgeometry
不能更改纸张大小或方向。所以我认为没有办法自动执行此操作。
您可以使用软件包包含横向 PDF 页面pdfpages
。(使用选项包含它们[landscape]
。)
新的解决方案
您还可以使用textpos
包来放置标题。通过将其与fancyhdr
包结合,您可以几乎自动化它。
\documentclass[twoside]{book}
\usepackage[a5paper,hmargin=3cm,vmargin=5cm]{geometry}
\usepackage{lscape,lipsum,graphicx}
\usepackage[absolute]{textpos}
\usepackage{fancyhdr}
\fancypagestyle{lscape}{%
\fancyhf{} % clear all header and footer fields
\fancyfoot[LE]{%
\begin{textblock}{20}(1,5){\rotatebox{90}{\leftmark}}\end{textblock}
\begin{textblock}{1}(13,10.5){\rotatebox{90}{\thepage}}\end{textblock}}
\fancyfoot[LO] {%
\begin{textblock}{1}(13,10.5){\rotatebox{90}{\thepage}}\end{textblock}
\begin{textblock}{20}(1,13.25){\rotatebox{90}{\rightmark}}\end{textblock}}
\renewcommand{\headrulewidth}{0pt}
\renewcommand{\footrulewidth}{0pt}}
\setlength{\TPHorizModule}{1cm}
\setlength{\TPVertModule}{1cm}
\begin{document}
\chapter{A chapter}
\section{A section}
\lipsum
\section{A section}
\lipsum
\newgeometry{hmargin=3cm,vmargin=5cm}
\thispagestyle{lscape}
\pagestyle{lscape}
\begin{landscape}
\lipsum[1-3]
\end{landscape}
\restoregeometry
\pagestyle{headings}
\lipsum[6]
\end{document}
答案2
我需要在横向页面上显示页码。页码应该位于底部,如上图第二张所示。
我有个主意。我们可以用它\fancypagestyle
来定义一个带有横向页码的新页面样式。我用它tikz
来放置页码。
\fancypagestyle{lscapedplain}{%
\fancyhf{}
\fancyfoot{%
\tikz[remember picture,overlay]
\node[outer sep=1cm,above,rotate=90] at (current page.east) {\thepage};}
}
\newpagestyle
这也可以由from来完成titlesec
。
答案3
另一种方法是使用包typearea
在文档中间切换到横向模式。虽然这样做确实很奇怪。
\documentclass[usegeometry,paper=a5,pagesize,headinclude]{book}
\usepackage{typearea}
\usepackage{lipsum}
\begin{document}
\chapter{One}
\lipsum[1]
\section{One One}
\lipsum[2]
\storeareas\normalsetting
\KOMAoption{paper}{landscape}
\areaset{2\textwidth}{.9\textheight}
\recalctypearea
\lipsum[3-5]
\clearpage
\normalsetting
\lipsum[6]
\end{document}
答案4
这里建议scrlayer
为这些旋转的页面定义一种新的页面样式。
\documentclass{book}
\usepackage[a5paper,hmargin=3cm,vmargin=5cm]{geometry}
\usepackage{lscape,lipsum}
\usepackage{scrlayer}
\DeclareNewLayer[
background,
rightmargin,
contents={%
\parbox[b][\layerheight][c]{\dimexpr\footskip+\footheight\relax}{%
\hfill\rotatebox{90}{\pagemark}}}
]{lscape.foot}
\DeclareNewLayer[
background,
textarea,
addhoffset=\dimexpr-\headsep-\headheight\relax,
width=\dimexpr\headsep+\headheight\relax,
contents={\hfill\rotatebox{90}{\headmark}\hspace*{\headsep}}
]{lscape.head}
\DeclareNewPageStyleByLayers{lscape}{lscape.foot,lscape.head}
\begin{document}
\chapter{One}
\lipsum[1]
\section{One One}
\lipsum[2]
\newgeometry{hmargin=5cm,vmargin=3cm}
\begin{landscape}
\pagestyle{lscape}
\lipsum[3-10]
\end{landscape}
\restoregeometry
\lipsum[6]
\end{document}