我想在章节标题下添加一条水平线,更改标题的颜色和字符。到目前为止,我已经能够更改颜色和字符,但我发现在标题下添加水平线是一项艰巨的任务。到目前为止,我所做的如下:
\RequirePackage%
{%
fontspec,%
xcolor,%
}
...
...
\definecolor[named]{SectionFontColour}{wave}{395}
\newfontfamily \SectionFont {ITC Avant Garde Gothic}
...
...
\renewcommand\section
{
\@startsection{section}% #1
{1}% #2
{\z@}% #3
{-2.5ex \@plus -1ex \@minus .2ex}% #4
{2.3ex \@plus.2ex}% #5
{%
\SectionFont%
\Large%
\mdseries%
\textcolor{SectionFontColour}%
} % #6
我想在\section
宏中或在\@statrsection
宏中完成此任务。我不会使用这种方式:
\let \oldsection \section
\renewcommand \section {\oldsection ... <some code that makes the rule>}
我也不会在这里使用额外的包。顺便问一下,为什么的声明\section
不带任何参数,当我们调用这个宏(\section
)时,我们会向它传递一个参数?那么宏应该用参数声明吗?请帮我澄清这些问题。
答案1
你可以做这样的事情:
\documentclass{article}
\makeatletter
\renewcommand\section{\@startsection {section}{1}{\z@}%
{-3.5ex \@plus -1ex \@minus -.2ex}%
{2.3ex \@plus.2ex}%
{\normalfont\bfseries\mytitle}}
\makeatother
\newcommand{\mytitle}[1]{#1\par\noindent\rule{\textwidth}{1pt}}
\begin{document}
\section{Some section}
\end{document}