在目录中为章节标题文本添加下划线

在目录中为章节标题文本添加下划线

希望这很容易。我想在目录中为章节标题的文本加下划线(删除章节编号)。与此图类似,下划线的位置用红线表示:

在此处输入图片描述

请注意,我不想在文档中对章节标题加下划线,因为这个问题,仅显示其在目录中的条目。

我尝试了以下代码,但是它不起作用,因为\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

如果您想隐藏数字,或者将其包含在下划线中,您可以尝试这样做。如果您的章节标题足够短,那么使用souls \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包中。

相关内容