我正在尝试使用 KOMA 更改页面大小,但无法
\usepackage[paper=A4]{typearea}
\usepackage{pdfpages}
\usepackage{geometry}
\begin{document}
\KOMAoptions{paper=2.5in:6.0in,DIV=1}
\recalctypearea
"POTRAIT"
\KOMAoptions{paper=6in:2.5in,DIV=1}
\recalctypearea
"LANDSCAPE"
\end{document}
使用 KOMA 我尝试设置两种页面大小2.5in:6.0in
和6in:2.5in
。
但输出的 pdf 显示两页大小2.5in:6.0in
为6in:2.5in
。
解决方案 1:我发现它有效(我还添加了页码)
笔记:
1) use \documentclass[version=3.21]{scrartcl}
2) mention page size as width:height
3) no need of landscape
\documentclass[version=3.21]{scrartcl}
% this is required for pagenumber and also KOMAoptions to work
\usepackage[automark,headsepline,footsepline]{scrlayer-scrpage}
% the above both are required to show page number
\usepackage
[showframe]% to show the page layout
{geometry}
\begin{document}
\KOMAoptions{paper=2.5in:6.0in,DIV=calc}
% widht:height
\recalctypearea
\newgeometry{layoutwidth = 2.5in,layoutheight = 6.0in,left=0mm,right=0mm,top=0mm,bottom=0mm,footskip=1mm}
"POTRAIT"
\KOMAoptions{paper=6in:2.5in,DIV=calc}
% here widht:height mention 6in:2.5in instead of 2.5:6in
\recalctypearea
\newgeometry{layoutwidth =6in,layoutheight = 2.5in,left=0mm,right=0mm,top=0mm,bottom=0mm,footskip=1mm}
"LANDSCAPE"
\end{document}
输出是(我还想在底部添加页码。因此使用 newgeometry 来重置页边距
解决方案 2:我发现它有效(我还添加了页码)
这里无论 widht:height 如何,它都会显示纵向。我们必须特别提到纵向或横向。最近我犯了一个拼写错误,我使用了potrait
而不是portrait
,我认为它不起作用。
\documentclass{scrartcl}
\usepackage{pdfpages}
\usepackage{geometry}
\usepackage[automark]{scrlayer-scrpage}
\begin{document}
\KOMAoptions{paper=432pt:566.36717pt,paper=portrait}
\recalctypearea
\newgeometry{layoutwidth = 432pt,layoutheight = 566.36717pt,left=0mm,right=0mm,top=0mm, bottom=0mm,footskip=1mm}
POTRAIT
\KOMAoptions{paper=432pt:226.15027pt,paper=landscape}
\recalctypearea
\newgeometry{layoutwidth = 432pt,layoutheight = 226.15027pt,left=0mm,right=0mm,top=0mm, bottom=0mm,footskip=1mm}
LANDSCAPE
\KOMAoptions{paper=432pt:566.36717pt,paper=portrait}
\recalctypearea
\newgeometry{layoutwidth = 432pt,layoutheight = 566.36717pt,left=0mm,right=0mm,top=0mm, bottom=0mm,footskip=1mm}
EXPECTING SAME POTRAIT
\end{document}
答案1
不幸的是,您的示例无法编译,因为您忽略了显示\documentclass
为 KOMAscript 设置的选项的声明。
笔记:
- KOMAScript 文档指出,无需显式加载该
typearea
包;它还指出,一般不建议将typearea
功能与该geometry
包一起使用。但是,如果需要,可以usegeometry=true
选择 KOMAscript 类声明。 paper=A4
如果不需要,为何要设置?- of会导致页面划分非常“糟糕”;事实上,typearea 会对这个非常低的
DIV
值发出警告。1
DIV
解决您的问题的一个方法是先设置纵向尺寸,然后简单地切换到横向:
\documentclass[pagesize, usegeometry=true]{scrartcl}
\usepackage{pdfpages} %%although it is not needed for your example
\usepackage{geometry}
\begin{document}
\KOMAoptions{paper=2.5in:6.0in,DIV=1}
\recalctypearea
"PORTRAIT"
\KOMAoptions{paper=landscape}
\recalctypearea
"LANDSCAPE"
\end{document}
答案2
关于选项,paper
KOMA-Script 版本 3.22 发生了变化(当前版本为 3.31)。如果您添加以下选项,您的示例将version=3.21
起作用typearea
:
\documentclass{article}
\usepackage[paper=A4,
version=3.21% <- added, but it is a really old version
]{typearea}
\usepackage{pdfpages}
\usepackage
[showframe]% to show the page layout
{geometry}
\begin{document}
\KOMAoptions{paper=2.5in:6.0in,DIV=calc}
%\KOMAoptions{paper=2.5in:6.0in,DIV=current}% maybe better
"POTRAIT"
\KOMAoptions{paper=6in:2.5in,DIV=calc}
"LANDSCAPE"
\end{document}
请注意,OptionDIV
会导致重新计算 typearea。因此,如果您在 的参数中的 keyDIV
之后使用 key ,则可以删除附加项(与 几乎相同)。paper
\KOMAoptions
\recalctypearea
\KOMAoptions{DIV=last}
请注意 是DIV=1
的同义词DIV=calc
。但我认为您不希望DIV=calc
将其用于横向页面。
也许您想用于DIV=current
横向页面?
从 3.22 版开始,它取决于方向(portrait
或landscape
),哪个值作为高度,哪个值作为宽度。使用paper = portrait
,paper=2.5in:6.0in
和paper=6.0in:2.5in
都会导致页面高度为 6.0 英寸,宽度为 2.5 英寸。如果要切换到landscape
,则必须使用paper=landscape
!但如果仅交换宽度和高度,则使用paper=landscape
后跟DIV=current
或 也足够了DIV=last
:
\documentclass{article}
\usepackage[paper=A4]{typearea}
\usepackage{pdfpages}
\usepackage[%
showframe% to show the page layout
]{geometry}
\begin{document}
\KOMAoptions{paper=2.5in:6.0in,DIV=calc}
"POTRAIT"
\KOMAoptions{paper=landscape,DIV=current}
"LANDSCAPE"
\end{document}