另一位用户问问了类似的问题;但我只需要顶部标题和不是 edp 的完整设计. 我提供了一个最小的工作示例。
它看起来应该是这样的:
如果您按下上方标题框之一,它们会将您重定向到正确的章节。我认为这真的很好,所以我想将其用于私人目的。但我很难重现这种效果。
以下是我使用 tikz 尝试的操作:
\documentclass{book}
\usepackage{tikz}
\usetikzlibrary{calc}
\usepackage{lipsum}
\pagestyle{empty}
\begin{document}
\begin{tikzpicture}[overlay, remember picture]
\foreach \x in {1,...,7};
\draw let \p1 = (current page.west), \p2 = (current page.east) in node[minimum width=\x2-\x1, minimum height=2cm, draw, rectangle, fill=black!90, anchor=north west, align=left, text width=\x2-\x1] at ($(current page.north west)$) {\Large\bfseries \quad #1};
\end{tikzpicture}
\chapter{Chapter one}
\end{document}
嗯,它在标题中创建了一个大黑框,里面没有文本。所以它根本不起作用。我曾想过使用 \foreach 函数,但遇到了麻烦。
基本上,我需要帮助来创建顶部的框,但在让它们重定向到章节方面遇到了问题。
希望你能帮助我?
答案1
这是tcolorbox
自动链接到章节的版本。由于tcolorbox
是 Ti钾Z 包装可以对带有上层或底层的盒子进行很多添加。
\documentclass{book}
\usepackage[lmargin=1.5cm,rmargin=1.5cm,headheight=1.5cm]{geometry}
\usepackage{tikz}
\usepackage[most]{tcolorbox}
\usetikzlibrary{calc}
\usepackage{lipsum}
\pagestyle{empty}
\usepackage{totcount}
\usepackage{fancyhdr}
\usepackage[hidelinks]{hyperref}
\newtcolorbox{mycolorboxinternal}[1][]{%
enhanced jigsaw,
sharp corners,
boxrule=0.0pt,
boxsep=0pt,
colupper={white},
fontupper={\bfseries},
equal height group=headerboxes,
colback=orange,
halign=center,
valign=center,
nobeforeafter,
height=0.8cm,
#1,
}
\newcommand{\mycolorbox}[2][]{%
\begin{mycolorboxinternal}[#1]%
#2%
\end{mycolorboxinternal}%
}
\regtotcounter{chapter}
\rhead{}
\lhead{}
\chead{%
\begin{tcbraster}[%raster valign=center,
raster row skip=0pt,
raster before skip=0pt,
raster columns={5},
raster equal height=all,
raster equal height group=headerboxes,
raster column skip=0pt,
nobeforeafter,
raster left skip=0pt,
raster right skip=0pt]
\foreach \x in {1,...,\totvalue{chapter}} {%
\ifodd\x
\def\backgroundcolor{orange}%
\else
\def\backgroundcolor{red}%
\fi
\mycolorbox[colback=\backgroundcolor]{\protect\nameref{chaplabel:\x}}%
}
\end{tcbraster}
}
\pagestyle{fancy}
\usepackage{blindtext}
\begin{document}
\chapter{Kirche}\label{chaplabel:1}
\chapter{Soziales}\label{chaplabel:2}
\chapter{Gesellschaft}\label{chaplabel:3}
\chapter{Umwelt}\label{chaplabel:4}
\chapter{Kultur}\label{chaplabel:5}
\chapter{Entwicklung}\label{chaplabel:6}
\chapter{Ausland}\label{chaplabel:7}
\newpage
\blindtext[5]
\end{document}
答案2
这将在顶部绘制标签并使用 LaTeX 的\label
/\ref
系统插入章节编号。在我看来,这对于一个问题来说已经足够了,超链接留给读者作为练习。
换句话说,我可以让 TikZ 做一些事情,但是hyperref
当它不想做或不想做的时候,我无法让它表现。
然而,这里确实不止一个问题,所以我认为即使我无法回答另一个问题,也值得回答其中一个问题。
\documentclass{book}
\usepackage{tikz,calc}
\pagestyle{empty}
\begin{document}
\newlength\tabwidth
\setlength\tabwidth{\paperwidth/7}%
\begin{tikzpicture}[overlay, remember picture]
\path [fill=red] (current page.north west) rectangle +(\paperwidth,-20mm);
\path (current page.north west) foreach \i [evaluate=\i as \j using {25*(mod(\i,2)}] in {1,...,7} {%
+({(\i-1)*\tabwidth},0) node [minimum width=\tabwidth, minimum height=2cm, rectangle, fill=white!\j!red, font=\Large\bfseries, text=white, anchor=north west] {\ref{ch:\i}}
};
\end{tikzpicture}
\chapter{Chapter one}\label{ch:1}
\chapter{2}\label{ch:2}
\chapter{3}\label{ch:3}
\chapter{4}\label{ch:4}
\chapter{5}\label{ch:5}
\chapter{6}\label{ch:6}
\chapter{7}\label{ch:7}
\end{document}