我需要创建一个包含标题页、一些介绍页和大量表格的文档。这些表格需要放在横向页面上。所以我需要在某个页面上切换方向。
而且边框应该非常窄,因为我需要大量的空间来放置表格和文档。
我找到了几种解决方案,但效果都不是很好。此外,花式标题应该继续出现在横向页面上,但应该与页面宽度一致。
以下是一个例子:
\documentclass[a4paper,headsepline,footsepline]{report}
\usepackage[utf8]{inputenc}
\usepackage[pdftex]{graphicx}
\usepackage[pdftex]{color}
\usepackage{typearea}
\usepackage{fancyhdr}
\usepackage{ngerman}
\usepackage{hyperref}
\setlength{\voffset}{-0.9in}
\setlength{\hoffset}{-0.9in}
\setlength{\textheight}{9.5in}
\setlength{\textwidth}{7in}
\setlength{\marginparwidth}{1in}
\pagestyle{fancy}
\fancyhf{}
\rhead{LOGO}
\lhead{CargoSoft Dokumentation}
\rfoot{Page \thepage}
\definecolor{cargosoft}{RGB}{1,107,181}
\newcommand{\myRule}[3][black]{\textcolor{#1}{\rule{#2}{#3}}}
\begin{document}
\begin{titlepage}
\centering
LOGO
{\scshape\LARGE Company name \par}
\vspace{1.5cm}
\myRule[cargosoft]{8cm}{0.4pt} \par
\vspace{0.5cm}
{\huge\bfseries document name\par}
\vspace{0.5cm}
\myRule[cargosoft]{8cm}{0.4pt} \par
\vspace{2cm}
\vfill
{\large \today\par}
\end{titlepage}
First page content comes here not in landscape
\KOMAoption{paper}{landscape}
\pagestyle{fancy}
\fancyhf{}
\rhead{LOGO}
\lhead{Dokumentation Landscape pages}
\rfoot{Page \thepage}
\areaset{\textwidth}{\textheight}
\recalctypearea
content on landscape pages
\end{document}
我接下来尝试的是这篇文章如何从纵向页面方向切换到横向页面方向?结果是,页面是横向的,但漂亮的标题不是。而且内容是水平居中的。
\documentclass[a4paper,headsepline,footsepline]{report}
\usepackage[utf8]{inputenc}
\usepackage[pdftex]{graphicx}
\usepackage[pdftex]{color}
\usepackage[margin=0.5cm]{geometry}
\usepackage{typearea}
\usepackage{fancyhdr}
\usepackage{ngerman}
\usepackage{hyperref}
\usepackage{pdflscape}
\pagestyle{fancy}
\fancyhf{}
\rhead{LOGO}
\lhead{CargoSoft Dokumentation}
\rfoot{Page \thepage}
\definecolor{cargosoft}{RGB}{1,107,181}
\newcommand{\myRule}[3][black]{\textcolor{#1}{\rule{#2}{#3}}}
\begin{document}
\begin{titlepage}
\centering
LOGO
{\scshape\LARGE Company name \par}
\vspace{1.5cm}
\myRule[cargosoft]{8cm}{0.4pt} \par
\vspace{0.5cm}
{\huge\bfseries document name\par}
\vspace{0.5cm}
\myRule[cargosoft]{8cm}{0.4pt} \par
\vspace{2cm}
\vfill
{\large \today\par}
\end{titlepage}
First page content comes here not in landscape
\begin{landscape}
content on landscape pages
\end{landscape}
\end{document}
有人能给我一个好的解决方案吗?
非常感谢,Hauke
答案1
这是一个解决方案typearea
:
您可以使用可选参数DIV=<value>
来控制文本区域的空间。
对于页眉/页脚,需要定义新的页面样式。它必须包含
\headwidth=\textwidth
为横向页面设置正确的宽度。
切换到横向之前必须先启动一个新页面。否则,新设置可能会影响之前的页面。
\pdfpageheight
并且为了让查看者以横向显示页面,\pdfpagewidht
必须进行设置。
\documentclass[a4paper,headsepline,footsepline]{report}
\usepackage[utf8]{inputenc}
\usepackage[pdftex]{graphicx}
\usepackage[pdftex]{color}
% uses DIV=8
\usepackage{typearea}
% set DIV to squeeze out more space for text area
%\usepackage[DIV=12]{typearea}
\usepackage{fancyhdr}
\usepackage{ngerman}
\usepackage{hyperref}
\pagestyle{fancy}
\fancyhf{}
\rhead{LOGO}
\lhead{CargoSoft Dokumentation}
\rfoot{Page \thepage}
% new pagestyle
\fancypagestyle{lscape}{%
% important, sets the width of head and foot to current textwidth
\headwidth\textwidth
% not needed as long as header/footer parts don't change
%\fancyhf{}
%\rhead{LOGO}
%\lhead{CargoSoft Dokumentation}
%\rfoot{Page \thepage}
}
\definecolor{cargosoft}{RGB}{1,107,181}
\newcommand{\myRule}[3][black]{\textcolor{#1}{\rule{#2}{#3}}}
\begin{document}
\begin{titlepage}
\centering
LOGO
{\scshape\LARGE Company name \par}
\vspace{1.5cm}
\myRule[cargosoft]{8cm}{0.4pt} \par
\vspace{0.5cm}
{\huge\bfseries document name\par}
\vspace{0.5cm}
\myRule[cargosoft]{8cm}{0.4pt} \par
\vspace{2cm}
\vfill
{\large \today\par}
\end{titlepage}
First page content comes here not in landscape
% start new page before setting page layout,
% otherwise previous page is also affected
\newpage
\KOMAoption{paper}{landscape}%
\typearea{12}% sets new DIV
\recalctypearea
% needed to show page in landscape in viewer
\pdfpageheight=\paperheight
\pdfpagewidth=\paperwidth
\pagestyle{lscape}%
content on landscape pages
\end{document}
typearea
不允许您完全控制边距。它根据边距比例规则设置页面布局。如果您需要更多控制,geometry
可以使用。但它不支持在文档中间切换到横向。不过,有一个解决方案这里。它的缺点是,更新后它可能停止工作geometry
。
备注:在第一个示例中,您使用了typearea
包,然后手动设置了页面布局的长度,而在第二个示例中,您先加载geometry
,然后typearea
加载。 这两种做法都不是好主意。 在第二种情况下,typearea
会覆盖使用 进行的所有设置geometry
。
答案2
使用 KOMA-Script 3.17 或更新版本,您可以设置usegeometry
包的选项typearea
,然后使用包更改边距geometry
:
\documentclass[a4paper,headsepline]{report}
\usepackage[utf8]{inputenc}
\usepackage{graphicx}
\usepackage{color}
\usepackage[ngerman]{babel}
\usepackage[usegeometry]{typearea}
\usepackage[hmargin=.65in,vmargin=1.1in]{geometry}
\usepackage[manualmark]{scrlayer-scrpage}
\clearpairofpagestyles
\ohead{LOGO}
\ihead{CargoSoft Dokumentation}
\ofoot*{\pagemark}
\addtokomafont{pageheadfoot}{\upshape}
\usepackage{hyperref}
\definecolor{cargosoft}{RGB}{1,107,181}
\newcommand{\myRule}[3][black]{\textcolor{#1}{\rule{#2}{#3}}}
\usepackage{blindtext}% only for dummy text
\begin{document}
\begin{titlepage}
\centering
LOGO
{\scshape\LARGE Company name \par}
\vspace{1.5cm}
\myRule[cargosoft]{8cm}{0.4pt} \par
\vspace{0.5cm}
{\huge\bfseries document name\par}
\vspace{0.5cm}
\myRule[cargosoft]{8cm}{0.4pt} \par
\vspace{2cm}
\vfill
{\large \today\par}
\end{titlepage}
\Blindtext
\cleardoublepage
\KOMAoptions{paper=landscape}
\recalctypearea
\newgeometry{hmargin=.65in,vmargin=1.1in}
\Blindtext
\end{document}
结果: