利用titlesec, tocloft, tikz包定制一个目录格式

利用titlesec, tocloft, tikz包定制一个目录格式的样例. 

如何在LaTeX中实现以下目录格式

toc1.jpg

作者查阅了很多包的说明,勉强做出一点形式,但是并没有完全解决这个问题,现在给出一种定制的目录格式,涉及到etoolbox包的一些打补丁挂钩子的方法:

\documentclass[openany]{ctexbook}

\usepackage{multicol,etoolbox}
\usepackage{titletoc,titlesec,xcolor}
\usepackage[hidelinks]{hyperref}
\usepackage[centering,
           top=2.54cm,bottom=2.54cm,right=2.9cm,left=2.9cm,
           headsep=25pt,headheight=20pt]{geometry}
\usepackage{xcolor}
\usepackage{pgfornament}
\definecolor{myred}{RGB}{127,0,0}
\definecolor{myyellow}{RGB}{169,121,69}
\definecolor{gray75}{gray}{0.75}

\titleformat{\chapter}% Command
  [hang]% Shape
  {\Huge\bfseries\color{myred}}% Format
  {\protect{\color{myyellow}\thechapter\hfil}}% Label
  {1em}% Sep
  {}% Before-Code
  [\ifnum\value{chapter}>0 \addtocontents{toc}{\protect\begin{multicols}{2}}\fi]% After-Code

\pretocmd{\chapter}{\ifnum\value{chapter}>0 \addtocontents{toc}{\protect\end{multicols}}\fi}{}{}
\AtEndDocument{\ifnum\value{chapter}>0 \addtocontents{toc}{\protect\end{multicols}}\fi}

\renewcommand\contentsname{\centerline{目录}}
\usepackage{tocloft}
\renewcommand\cftsecnumwidth{1em}
\usepackage{tikz}

\definecolor{doc}{RGB}{0,60,110}
\definecolor{myblue}{RGB}{63,200,244}
\titlecontents{chapter}[8em]
{\filcenter
\begin{tikzpicture}[remember picture, overlay]%
\draw[fill=myblue,draw=myblue, sharp corners] (-\textwidth,-.2) rectangle (\textwidth,.5);%
\pgftext[left,x=-2.7cm,y=0.2cm]{\color{black}\Large \heiti\thecontentslabel};%
\end{tikzpicture}\color{black}\large\heiti\bfseries}%
{}
{}
{}%

\begin{document}
\begin{tikzpicture}[remember picture,overlay]
\node at([shift=(-114:6)]current page.north){\pgfornament[scale=0.3,color=blue!20]{78}};
\node at([shift=(-66:6)]current page.north){\pgfornament[scale=0.3,symmetry=v,color=blue!20]{78}};
\end{tikzpicture}
\tableofcontents

\chapter{章节}
\section{bar1}
\section{bar2}
\section{bar3}
\section{bar4}

\chapter{BAR}
\section{foo1}
\section{foo2}
\section{foo3}
\section{foo4}

\end{document}

未解决的问题是无法做到将目录中的章名称居中用带颜色的盒子包住,退而求其次,画了一整条带子。

toc2.png

选自: https://yuxtech.github.io/2019/09/23/toc/ 

分享到:
未经允许不得转载:利用titlesec, tocloft, tikz包定制一个目录格式
已有 条意见

    最新文章

    加载中...
      本站提供专业LaTeX排版、咨询、定制服务,请点击下图咨询详情


      全国首个精品的LaTeX视频教程,大牛带着你入门,让LaTeX学习不再纠结,请点击下图咨询详情

      热门评论

        联系我们

        交流QQ群:91940767
        本站QQ号:343083553
        邮箱联系latexstudio@qq.com
        淘宝店铺https://shop240512713.taobao.com/ 提供排版,模板定制,培训,图片处理,视频教程等LaTeX服务。

        关注我们微信公众号

        如果您投稿或者希望加入我们团队,请发送您的简历到latexstudio@qq.com。