章节标题

章节标题

我尝试使用titlesec以下代码来个性化我的硕士论文的章节和部分标题

\documentclass{book}
\usepackage{tikz}
\usepackage{titlesec}
\usepackage{lipsum}

\makeatletter
\titleformat{\chapter}[display]
{}% format
{\raggedleft \@chapapp{} \thechapter}% label
{1ex}           % sep
{\raggedleft \Huge \scshape \bfseries}  % before
[\normalfont {\tikz \shade[left color=blue!20,right color=blue, shading angle=45] (0,0) rectangle (\textwidth,5pt);}]% after
\makeatother

\begin{document}
\chapter{Introduction}
\lipsum[1]
\end{document}

输出结果如下

结果

我想要的只是删除章节名称和 TikZ 绘图之间的空格,并定义绘图和文本之间的垂直空间(我唯一能做到的是章节和章节名称之间的空间)。另外,哪个最适合这个,titlesec或者将所有这些定义为类文件?

我也尝试了第二种选择,但遇到了类似的问题:

\documentclass{book}
\makeatletter
\usepackage{tikz}
\usepackage{palatino}
\usepackage[T1]{fontenc}
\usepackage{titlesec}
\def\@makechapterhead#1{%
\vspace*{10\p@}%
{\parindent \z@ \raggedleft \reset@font%
\@chapapp{} \thechapter\par\nobreak%
{\Huge \scshape \bfseries #1\par\nobreak%
\vspace{5pt}
{\tikz \shade[left color=blue!20,right color=blue, shading angle=45] (0,0) rectangle (\textwidth,5pt);}}\par\nobreak%
\vspace{40pt}
}}%
\begin{document}
\chapter{Introduction}
\chapter{Internal Structure}
\section{Internal Strut}
%\section{part 1}
\end{document}

答案1

直接在垂直列表中插入该行:

\makeatletter
\def\@makechapterhead#1{%
  \vspace*{10\p@}%
  {\parindent \z@ \raggedleft \reset@font
   \@chapapp{} \thechapter\par\nobreak
   {\Huge \scshape \bfseries #1\vadjust{\putline}\par\nobreak}%
   \vspace{40pt}
  }}
\makeatother
\newcommand{\putline}{%
  \kern10pt %%% <-- adjust here
  \hbox{\tikz \shade[left color=blue!20,right color=blue, shading angle=45] (0,0) rectangle (\textwidth,5pt);}%
}

根据需要调整字距量。

在此处输入图片描述

相关内容