希望这很容易。我想在目录中为章节标题的文本加下划线(删除章节编号)。与此图类似,下划线的位置用红线表示:
请注意,我不想在文档中对章节标题加下划线,因为这个问题,仅显示其在目录中的条目。
我尝试了以下代码,但是它不起作用,因为\underline
期望文本作为参数提供。
\documentclass[a4paper]{article}
\usepackage{lipsum}
\RequirePackage[titles]{tocloft}
\makeatletter
\renewcommand{\cftsecpresnum}{\begin{lrbox}{\@tempboxa}}
\renewcommand{\cftsecaftersnum}{\end{lrbox}}
\setlength{\cftsecnumwidth}{0pt}
\renewcommand{\cftsecfont}{\underline} % Doesn't work
\makeatother
\begin{document}
\tableofcontents
\section{Section 1 title}
\lipsum[1-2]
\section{Section 2 title}
\lipsum[3-4]
\end{document}
答案1
我不推荐它,因为它很难阅读:参见http://practicaltypography.com/underlining.html您可以通过以下方式进行操作:
\documentclass{article}
\usepackage{soul,xcolor}
\setul{1ex}{0.8ex}
\setulcolor{red}
\begin{document}
\tableofcontents
\section[\ul{Foobar}]{Foobar}
\end{document}
编辑:也许这会有所帮助,但我没能让它与灵魂一起工作,也没能得到正确的间距:
\documentclass{article}
\usepackage{titletoc}
\titlecontents{section}{\thecontentslabel\quad}{\underline}{}{\hfill\thecontentspage}
\begin{document}
\tableofcontents
\section{Foobar}
\end{document}
答案2
如果您想隐藏数字,或者将其包含在下划线中,您可以尝试这样做。如果您的章节标题足够短,那么使用soul
s \ul
(根据遇到的材料,可能会出现问题)就太多了,一个简单的\underline
或自制的方框+规则就可以了。
\documentclass[a4paper]{article}
\usepackage{color}
\usepackage{soul}
\usepackage{lipsum}
\usepackage{etoc}
\makeatletter
\newcommand*\TableOfContents {%
\setul{1ex}{0.8ex}
\setulcolor{red}
\let\standardpartline\l@part
\let\standardsectionline\l@section
\let\standardsubsectionline\l@subsection
\etocsetstyle{part}{}{}
{\standardpartline{\etocnumber\hspace{1em}\etocname}{\etocpage}}{}%
%
\etocsetstyle{section}{}{}
{\standardsectionline{\rule[-3ex]{0pt}{0pt}% FOR EXTRA VERTICAL SPACE
\expandafter\ul\expandafter{\etocthename}}{\etocpage}}{}%
%
\etocsetstyle{subsection}{}{}
{\standardsubsectionline{\numberline{\etocnumber}\etocname}{\etocpage}}{}%
\tableofcontents
}
\makeatother
\begin{document}
\TableOfContents
\section{Section 1 title}
\lipsum[1]
\subsection{Subsection 1 title}
\lipsum[2]
\section{Section 2 title}
\lipsum[3]
\subsection{Subsection 2 title}
\lipsum[4]
\section{A very very very long section title to see what happens them
with the \textbackslash ul macro does it work? well, yes it does.}
\lipsum[3]
\end{document}
答案3
如果您想要为整行加下划线(而不只是章节标题),只需这样写:
\titlecontents{section}{\thecontentslabel\quad}%
{}%
{}%
{\hfill\thecontentspage}[{\titlerule[1pt]}]%
此功能包含在默认titletoc
包中。