我想要给我的小节标题加下划线——一条像 一样延伸整个页面宽度的水平线\hrule
。
我试过这个问题的答案即添加以下几行:
\titleformat{\subsection}
{\normalfont\Large\bfseries}{\thesection}{1em}{}[{\titlerule[0.8pt]}]
我已将其\section
改为\subsection
。
但这完全弄乱了我所有的小节标题!我已经给它们加了一些颜色,现在又删除了。此外,它们的小节编号(即5.1
)消失了,只显示了编号的部分(即5
)。
我该如何实现这个功能?有没有办法在标题下方添加这条水平线没有覆盖子部分的现有格式?
我的代码结构
\documentclass[11pt,a4paper]{article}
\usepackage[utf8x]{inputenc} %Character set
\usepackage[explicit]{titlesec}
\usepackage{xcolor,lipsum}
...
%Setting subsection and subsubsection title color
\definecolor{red}{RGB}{163, 25, 25}
\subsectionfont{\color{red}}
\subsubsectionfont{\color{red}}
%Setting section title bg color
\definecolor{redbg}{RGB}{235, 214, 214}
\titleformat{\section}
{\normalfont\LARGE\bfseries}{}{0em}{\colorbox{redbg}{\parbox{\textwidth-2\fboxsep}{\textcolor{red}{\thesection\quad#1}}}}
%Underlining ruler for subsections
\titleformat{\subsection}
{\normalfont\Large\bfseries}{\thesection}{1em}{}[{\titlerule[0.8pt]}]
\begin{document}
\section
Text text text
\subsection
Text text text
\end{document}
答案1
您需要使用(表示)计数器来表示子部分,并且您有一个用于部分的计数器。您需要\thesubsection
而\thesection
不是
\titleformat{\subsection}
{\normalfont\Large\bfseries}{\thesection}{1em}{}[{\titlerule[0.8pt]}]
您可以在第二个强制参数(影响编号和标题)或最后一个强制参数(仅影响标题)中引入颜色规范。一个完整的示例;请注意,我将颜色更改为红色(大写),因为红色已经是标准的 LaTeX 颜色:
\documentclass[11pt,a4paper]{article}
\usepackage{xcolor}
\usepackage[explicit]{titlesec}
%Setting section title bg color
\definecolor{redbg}{RGB}{235, 214, 214}
%Setting subsection and subsubsection title color
\definecolor{Red}{RGB}{163, 25, 25}
\titleformat{\section}
{\normalfont\LARGE\bfseries}
{}
{0em}
{\colorbox{redbg}{\parbox{\dimexpr\textwidth-2\fboxsep\relax}{\textcolor{Red}{\thesection\quad#1}}}}
%Underlining ruler for subsections
\titleformat{\subsection}
{\normalfont\Large\bfseries\color{Red}}
{\thesubsection}
{1em}
{#1}
[{\titlerule[0.8pt]}]
\begin{document}
\section{A test section}
Text text text
\subsection{A test subsection}
Text text text
\end{document}