使用 \large 打印目录条目使其进入页边距

使用 \large 打印目录条目使其进入页边距

我想用section比其他内容都大的字体打印目录中的名称。

以下是其命令:

\titlecontents{section}
    [1.5em]
    {}
    {\large\sffamily\bfseries\contentslabel[\thecontentslabel.]{1.5em}}
    {\hspace{-1.5em}}
    {\hspace*{\fill}\sffamily\bfseries\large\contentspage}

但是,由于该\large命令,该部分的编号出现在边缘处:

在此处输入图片描述

我该如何修复它?以下是完整的 MWE:

\documentclass[12pt]{article}

\usepackage[showframe]{geometry}

\usepackage{titletoc}


\titlecontents{section}
    [1.5em]
    {}
    {\large\sffamily\bfseries\contentslabel[\thecontentslabel.]{1.5em}}
    {\hspace{-1.5em}}
    {\hspace*{\fill}\sffamily\bfseries\large\contentspage}


\begin{document}

\tableofcontents

\section{One}
\subsubsection{}
\subsubsection{title}
\subsubsection{title}


\section{Two}
\subsubsection{}
\subsubsection{title}
\subsubsection{title}


\end{document}

答案1

这是由于em单位依赖于字体造成的。

\documentclass[12pt]{article}

\usepackage[showframe]{geometry}

\usepackage{titletoc}

\setbox0\hbox{\large\sffamily\bfseries\xdef\myoneandhalfem{\the\dimexpr1.5em}}

\titlecontents{section}
    [\myoneandhalfem]
    {}
    {\large\sffamily\bfseries\contentslabel[\thecontentslabel.]{1.5em}}
    {\hspace{-1.5em}}
    {\hspace*{\fill}\sffamily\bfseries\large\contentspage}


\begin{document}

\tableofcontents

\section{One}
\subsubsection{}
\subsubsection{title}
\subsubsection{title}

\section{Two}
\subsubsection{}
\subsubsection{title}
\subsubsection{title}

\end{document}

在此处输入图片描述

我不知道代表titletoc什么{\hspace{-1.5em}},但也许你也需要它\hspace{-\myoneandhalfem},尽管即使没有它图片看起来也很好。

当对齐方式有问题时最好不要使用em,并且字体可能会发生变化。不幸的是,甚至 LaTeX 目录代码中的硬编码距离也会使用它(但无论如何,由于大部分都是硬编码的,所以这不是什么大问题)。

相关内容