我一直在研究在 tikz 节点内呈现页码的页脚。 MWE 是:
\documentclass[fontsize=11pt,pagesize=auto,hidelinks,cleardoublepage=empty,parskip]{scrbook}
\usepackage[paperheight=9in,paperwidth=7in,margin=1in,heightrounded,bindingoffset=5mm,showframe]{geometry}
\usepackage{fancyhdr}
\usepackage{fmtcount}
\usepackage{tikz}
\fancyhf{}
\pagestyle{fancy}
\fancyfoot[r]
{%
{%
\tikz%
{%
\node (a) [circle,text=black,draw,fill=black!5,inner xsep=1.5pt,inner ysep=1.5pt,outer sep=0pt]%
{%
num
};%
\node (b) [left of=a,node distance=6cm,inner sep=0pt,outer sep=0pt] {};%
\node (c) [right of=a,node distance=1cm,inner sep=0pt,outer sep=0pt] {};%
\draw (a.west) -- (b.center);%
\draw (a.east) -- (c.center);%
}%
}%
}%
\begin{document}
Whatever
\end{document}
渲染结果如下:
“num”只是我的页码的替代品,以避免使MWE复杂化。
我想将节点两侧的线条延伸到页面边缘,但我不知道该怎么做。如果我将节点之间的间隙增加太多,数字节点就会被推到右侧。例如,如果我增加节点之间的间隙A和b到 10cm,我得到:
如果我进一步增加它,那么数字就会完全从页面的右侧推开。
如何在不影响数字节点位置的情况下将节点两侧的线延伸至页面边缘?
答案1
平均能量损失
\documentclass[fontsize=11pt,pagesize=auto,hidelinks,cleardoublepage=empty,parskip]{scrbook}
\usepackage[paperheight=9in,paperwidth=7in,margin=1in,heightrounded,bindingoffset=5mm,showframe]{geometry}
\usepackage{fancyhdr}
\usepackage{fmtcount}
\usepackage{tikz}
\fancyhf{}
\pagestyle{fancy}
\fancyfoot[r]
{%
{%
\tikz[remember picture,overlay,baseline=(a.south)]%
{%
\draw(0,0-|current page.west)--(0,0-|current page.east) node(a)[circle,text=black,draw,fill=black!5,inner xsep=1.5pt,inner ysep=1.5pt,outer sep=0pt,pos=.8]%
{%
num
};%
}%
}%
}%
\begin{document}
Whatever
\end{document}
输出
答案2
scrlayer-scrpage
以下是使用KOMA-Script 包的一部分的附加建议:
\documentclass[fontsize=11pt,parskip]{scrbook}
\usepackage[
paperheight=9in,paperwidth=7in,
margin=1in,heightrounded,bindingoffset=5mm,
showframe
]{geometry}
\usepackage{tikz}
\usepackage{scrlayer-scrpage}
\clearpairofpagestyles
\ofoot*{
\hspace*{1cm}%
\smash{\makebox[0pt][c]{\tikz{
\node(a)[circle,draw,fill=black!5,inner sep=1.5pt,outer sep=0pt]{num};
\draw(a-|-\paperwidth,0)--(a)--(a-|\paperwidth,0);
}}}
\hspace*{1cm}%
}
\usepackage{blindtext}
\begin{document}
\blinddocument
\end{document}