我希望能够\renewcommand\section
让 LaTeX 格式化章节和小节标题,以便它们的数字左对齐,并且标题正好位于段落缩进的上方:
1 章节标题 1.1 小节标题 段落开始
我发现建议像这样更改部分标题的缩进:
\renewcommand\section{%
\def\@seccntformat##1{\csname the##1\endcsname\hspace{_____}}
\@startsection{your}{parameters}{here}...
}
如果我插入1in
命令\hspace
,我会得到距离节号末尾正好一英寸的位置。我想要距离左边距 1 英寸的位置,所以可以使用\hspace{1in \@minus \width\csname}
或类似的命令。该命令不起作用,但至少显示了我的意图。
答案1
您使用哪种文档类别?下面是示例scrartlc
\documentclass{scrartcl}
\usepackage{lipsum}
\renewcommand*{\othersectionlevelsformat}[3]{%
\llap{#3\autodot\enskip}}
\begin{document}
\section{foo}
\lipsum[1]
\section{bar}
\subsection{foo bar}
\lipsum[1]
\end{document}
通过使用标准类,您可以使用包titlesec
\documentclass{article}
\usepackage{titlesec}
\titlelabel{\llap{\thetitle\quad}}
\usepackage{lipsum}
\begin{document}
\section{foo}
\lipsum[1]
\section{bar}
\subsection{foo bar}
\lipsum[1]
\end{document}
结果:
关于您的评论:
\documentclass{article}
\usepackage{titlesec}
%1inch=25,4mm
\titlelabel{\llap{\makebox[1cm][l]{\thetitle}}\hspace*{25.4mm}}
%\usepackage{indentfirst}
\usepackage{lipsum}
\usepackage{showframe}
\begin{document}
\section{foo}
\hspace*{25.4mm}\lipsum[1]
\section{bar}
\subsection{foo bar}
\lipsum[1]
\end{document}
包裹先缩进如果每个缩进都是 1 英寸,那么这是有可能的。我认为 1 英寸太大了。
答案2
正如@Marco 所指出的,我确实需要 titlesec 包。
\titleformat{\section}
{}
{\makebox[1in][l]{\thesection}}{0in}{}
和
\titleformat{\subsection}
{}
{\makebox[1in][l]{\thesubsection}}{0in}{}
得到了我需要的东西。我同意 1 英寸对于节标签和段落来说缩进太大了,但我无法选择格式 :)