我正在使用 Koma-Script scrbook 文档类。我想在所有偶数页的左上角标题中打印一个 tikz 图像,但图形在每一页都会向右移动,因此在第 206 页,图形已经位于文本的一半内。
请参阅第 2 页并与第 206 页进行比较
有谁知道为什么图像没有停留在预期位置?以下代码可以更详细地解释我的问题:
\documentclass{scrbook}
\usepackage{tikz}
\usetikzlibrary{calc}
\usepackage[automark, headsepline]{scrpage2}
\usepackage{lipsum}
% Place the page number and a black square in a fix position
\lehead{\thepage \tikz[overlay, remember picture]\fill [black] ($(-0.2,-1)$) rectangle ($(-1.2,-2)$);}
% Default page style
\pagestyle{scrheadings}
\begin{document}
\chapter{Lorem ipsum}
\lipsum[3-56]
\lipsum[3-56]
\lipsum[3-56]
\lipsum[3-56]
\lipsum[3-56]
\lipsum[3-56]
\lipsum[3-56]
\lipsum[3-56]
\lipsum[3-56]
\lipsum[3-56]
\lipsum[3-56]
\lipsum[3-56]
\lipsum[3-56]
\lipsum[3-56]
\lipsum[3-56]
\lipsum[3-56]
\lipsum[3-56]
\lipsum[3-56]
\lipsum[3-56]
\lipsum[3-56]
\lipsum[3-56]
\lipsum[3-56]
\end{document}
答案1
问题在于命令的顺序:你写了\thepage \tikz...
,它将插入一个数字,然后插入矩形。随着页码的增加,这个数字会获得更多位数。所以问题是例如206比6。如果反转顺序,效果会很好。此外,使用\thepage
可能会导致问题,因为由于浮动元素的移动,有时可能不包含实际的页码。最好\pagemark
在这里使用。
代码
\documentclass{scrbook}
\usepackage{tikz}
\usetikzlibrary{calc}
\usepackage[automark, headsepline]{scrpage2}
\usepackage{lipsum}
% Place the page number and a black square in a fix position
\lehead{\tikz[overlay, remember picture]{\fill [black] (-0,-1) rectangle ++(-1,-1);} \pagemark}
% Default page style
\pagestyle{scrheadings}
\begin{document}
\chapter{Lorem ipsum}
\lipsum[3-56]
\lipsum[3-56]
\lipsum[3-56]
\lipsum[3-56]
\lipsum[3-56]
\lipsum[3-56]
\lipsum[3-56]
\lipsum[3-56]
\lipsum[3-56]
\lipsum[3-56]
\lipsum[3-56]
\lipsum[3-56]
\lipsum[3-56]
\lipsum[3-56]
\lipsum[3-56]
\lipsum[3-56]
\lipsum[3-56]
\lipsum[3-56]
\lipsum[3-56]
\lipsum[3-56]
\lipsum[3-56]
\lipsum[3-56]
\end{document}
输出
答案2
我不明白 tikz 语法,但使用这些值有帮助:
\lehead{\thepage \tikz[overlay, remember picture]\fill [black] ($(-0.4,1)$) rectangle ($(-1.2,-0.2)$);}