我想用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 目录代码中的硬编码距离也会使用它(但无论如何,由于大部分都是硬编码的,所以这不是什么大问题)。