我得到了 Markus Kohm(KOMA-Script 作者)在“Die TeXnische Komödie”(德国 TeX 用户组成员期刊)第 3/2012 卷中提供的一些代码。他展示了如何使用 KOMA-Script 轻松修改标题。我现在有以下代码,基本上是从期刊中复制而来(所以这是 Markus 的,不是我的)
\documentclass{scrartcl}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{blindtext}
\usepackage{scrpage2}
\pagestyle{scrheadings}
\clearscrheadfoot
\setheadsepline{0.5pt}
\lehead[\pagemark]{\makebox[\marginparwidth][l]{\pagemark}\hspace{\marginparsep}\headmark}
\rohead[\pagemark]{\headmark\hspace{\marginparsep}\makebox[\marginparwidth][r]{\pagemark}}
\renewcommand*{\pagemark}{%
\usekomafont{pagenumber}%
\ifodd\value{page}\makebox[\marginparwidth][l]{\pnumbar\enskip\thepage}%
\else\makebox[\marginparwidth][r]{\thepage\enskip\pnumbar}%
\fi
}%
\newcommand*{\pnumbar}{%
\raisebox{0pt}[\ht\strutbox][\dp\strutbox]{%
\rule[-\dp\strutbox]{1.5pt}{1.1\baselineskip}%
}%
}
\AfterCalculatingTypearea{%
\setheadwidth[0pt]{%
\dimexpr\textwidth+\marginparsep+\marginparwidth\relax
}%
}%
\recalctypearea
\begin{document}
\Blindtext
\end{document}
当添加twoside
-option时,\documentclass
我得到的页码位置符合预期(屏幕截图剪切在一起):
而oneside
在偶数页上页码的定位是错误的:
我可以想象问题是由于\ifodd
检查而发生的。是否有可能对是否设置选项做出反应twoside
以oneside
修复此问题并使所有页面都oneside
相同?
正如您所见,标题和正文之间的分隔线太长了。这是我添加的,但我不知道如何缩短它,所以它只有文本宽度的长度(可能停在页码旁边的垂直标记处)。我该怎么做?
答案1
该模板似乎不适合oneside
,但可以修改为。
编辑:我想我已经解决了你的头部分离线长度的问题。
\documentclass{scrartcl}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{blindtext}
\usepackage{scrpage2}
\pagestyle{scrheadings}
\clearscrheadfoot
\setheadsepline{0.5pt}
\lehead[\pagemark]{\makebox[\marginparwidth][l]{\pagemark}\hspace{\marginparsep}\headmark}
\rohead[\pagemark]{\headmark\hspace{\marginparsep}\makebox[\marginparwidth][r]{\pagemark}}
\makeatletter
\if@twoside%
\renewcommand*{\pagemark}{%
\usekomafont{pagenumber}%
\ifodd\value{page}\makebox[0pt][l]{\pnumbar\enskip\thepage}%
\else\makebox[0pt][r]{\thepage\enskip\pnumbar}%
\fi%
}%
\else%
\renewcommand*{\pagemark}{%
\usekomafont{pagenumber}%
\makebox[0pt][l]{\pnumbar\enskip\thepage}%
}%
\fi%
\makeatother
\newcommand*{\pnumbar}{%
\raisebox{0pt}[\ht\strutbox][\dp\strutbox]{%
\rule[-\dp\strutbox]{1.5pt}{1.1\baselineskip}%
}%
}
\AfterCalculatingTypearea{%
\setheadwidth[0pt]{%
\dimexpr\textwidth+\marginparsep\relax%+\marginparwidth\relax
}%
}%
\recalctypearea
\begin{document}
\Blindtext \Blindtext
\end{document}
如果twoside
加载了该选项:
如果twoside
选项是不是已加载: