![fancyhdr - 科赫雪花是 \headrule 的一部分](https://linux22.com/image/408477/fancyhdr%20-%20%E7%A7%91%E8%B5%AB%E9%9B%AA%E8%8A%B1%E6%98%AF%20%5Cheadrule%20%E7%9A%84%E4%B8%80%E9%83%A8%E5%88%86.png)
我已重新定义 \headrule 以包含 \usetikzlibrary{decorations.fractals} 包中的 Koch Snowflake 部分。这是我的代码和屏幕截图:
\documentclass[10pt]{article}
\usepackage{fancyhdr}
\usepackage{tikz}
\usetikzlibrary{decorations.fractals}
\renewcommand\headrule{%
\vspace{-0.75in}
\hrulefill
{\tikz[decoration=Koch snowflake]{\draw decorate{ decorate{ decorate{ (0,-2) -- (3,-2) }}};}}
}
\fancypagestyle{firstpage}{
\fancyhead[L]{Name:}
\fancyhead[C]{Period:}
}
\begin{document}
\thispagestyle{firstpage}
First Page
\end{document}
我的目标是让雪花的第 n 次迭代与文档的第 n 页相对应(我的文档只有大约 5-6 页)。我的想法是使用某种类型的 for 循环来执行此操作。我设想了类似的东西,我正在重新定义每个页面的 headrule。
\foreach \x in {1,...,final page}{%
\renewcommand\headrule{%
%%something with koch snowflake here%%
}
}
我认为我需要的装饰命令数量等于 \thepage。我确信有办法做到这一点,但我搞不清楚。任何帮助都非常感谢!
答案1
您可以递归定义一个宏,在每个页面上拾取一个新的decorate
。这是通过
\xdef\MyDeco{decorate{\MyDeco}}
在
\documentclass[10pt]{article}
\usepackage{fancyhdr}
\usepackage{tikz}
\usetikzlibrary{decorations.fractals}
\setlength\headheight{16pt}
\renewcommand\headrule{%
\vspace{-0.75in}
\hrulefill
{\tikz[decoration=Koch snowflake]{\draw \MyDeco;}}%
\xdef\MyDeco{decorate{\MyDeco}}%
}
\xdef\MyDeco{decorate{ (0,-2) -- (3,-2) }}
\fancypagestyle{firstpage}{
\fancyhead[L]{Name:}
\fancyhead[C]{Period:}
}
\pagestyle{firstpage}
\begin{document}
First Page
\clearpage
Second Page
\clearpage
Third Page
\clearpage
Fourth Page
\end{document}