\documentclass{article} \usepackage[a5paper,vmargin=2cm]{geometry} \usepackage{background} \usepackage{etoolbox} \usepackage{totcount} \usepackage{lipsum} % to have access to the total number of sections \regtotcounter{section} % every section starts on a new page \pretocmd{\section}{\clearpage}{}{} % auxiliary lengths for the height of the frame and the width of each tab \newlength\mylen \newlength\mylena % style for the section tabs \tikzset{tab/.style={ text width=\mylena,anchor=south, draw=gray,thick,rectangle,rounded corners=12pt,rotate=270, align=center,text height=20pt, text depth=25pt,inner sep=0pt,fill=gray!20, yshift=-18pt,font=\sffamily\LARGE}} % style for the current section tab \tikzset{selectedtab/.style={tab,color=white,fill=gray!90}} % the page number is showed in the background material \pagestyle{empty} \AtBeginDocument{ % calculation of the width for each tab \setlength\mylen{\dimexpr\textheight+2cm\relax} \ifnum\totvalue{section}>0 \setlength\mylena{\dimexpr\mylen/\totvalue{section}\relax} \fi % the main part; as background material we place the border, % the section (current and other) tabs and the page number \SetBgScale{1} \SetBgColor{black} \SetBgAngle{0} \SetBgOpacity{1} \SetBgContents{ \begin{tikzpicture}[remember picture, overlay] \node[inner sep=0pt,text width=\the\dimexpr\textwidth+1.5cm\relax] at (current page.center) (border) {\rule{0pt}{\dimexpr\textheight+2cm\relax}}; \foreach \valsection in {0,...,\numexpr\totvalue{section}-1\relax} { \node[\ifnum\thesection<\numexpr\valsection+1\relax tab\else \ifnum\thesection>\numexpr\valsection+1\relax tab\else selectedtab\fi\fi,xshift=(0.5+\valsection)*\mylena] at (border.north east) (tab-\valsection) {Section \the\numexpr\valsection+1\relax}; } \node[draw=gray,line width=2pt,rectangle,rounded corners=10pt,inner sep=0pt, text width=\the\dimexpr\textwidth+1.5cm\relax,fill=white] at (current page.center) {\rule{0pt}{\dimexpr\textheight+2cm\relax}}; \node[font=\LARGE\sffamily,fill=white] at (border.south) {\makebox[3em][c]{\thepage}}; \end{tikzpicture}} } \begin{document} \section{Test Section One} \lipsum[1-3] \section{Test Section Two} \lipsum[1-3] \section{Test Section Three} \lipsum[1-3] \section{Test Section Four} \lipsum[2] \end{document}
选自:http://tex.stackexchange.com/questions/75637/how-to-print-section-titles-like-tab-list
发表评论 取消回复