我希望从节号的开头到节标题有固定的距离。从视觉上看,我希望所有节和小节的编号和标题都垂直排列,就像它们在不可见的两列中向左对齐一样。但是,默认行为是在titlesec
数字末尾添加固定距离,因此我得到向左对齐的数字,但标题与数字末尾有固定的距离。
我对 进行了一些实验parbox
,它给了我想要的视觉效果,但我认为这会在标题而不是数字上创建一个 parbox,并且有一些垂直翻译,我尝试用 手动解决raisebox
,但效果很差。
我的 MWE:
\usepackage{lipsum}
\usepackage{titlesec}
\titleformat{\section}[hang]{\Large\bfseries}{\raisebox{0pt}{\parbox{20pt}{\thesection}}}{0pt}{}
\titleformat{\subsection}{\bfseries}{\raisebox{-0.25pt}{\parbox{20pt}{\thesubsection}}}{0pt}{}
\makeatletter
\makeatother
\begin{document}
\section{First section}
\subsection{A subsection}
\lipsum[1]
\subsection{Another subsection}
\lipsum[2]
\section{Another section}
\lipsum[3]
\end{document}
我很想得到一些建议。谢谢!
答案1
使用\makebox
而不是\parbox
:
\documentclass{article}
\usepackage{titlesec}
\titleformat{\section}[hang]{\Large\bfseries}{\makebox[20pt][l]{\thesection}}{0pt}{}
\titleformat{\subsection}{\bfseries}{\makebox[20pt][l]{\thesubsection}}{0pt}{}
\begin{document}
\section{First section}
\subsection{A subsection}
\subsection{Another subsection}
\section{Another section}
\end{document}