TLDR:如何创建带有左边距编号(右对齐)和居中主体的标题?
现在我有
\documentclass[a4paper,10pt,oneside]{book}
\usepackage{lipsum}
\usepackage{titlesec}
\titleformat{\chapter}[block]
{\Huge\bfseries\center}
{\huge\thechapter}
{20pt}
{}
\begin{document}
\chapter{test}
\lipsum[1]
\end{document}
这样就创建了完整的章节标签,编号和正文都居中在一起,正如这里所见。
如何使左边距上出现编号(我尝试用 [leftmargin] 替换 [block],但这会将整个标题(包括编号和正文)放入左边距中)并使标题正文单独居中(没有编号)。(同时使编号在页面左边距内右对齐。)
期望的结果如下:
(注意:在这个期望结果图中,测试头主体没有正确居中,但我确实希望它正确居中。)
答案1
我\mychapter
用 创建了一个新的命令,并用\parbox
修改了 。\titleformat
\makebox
我已经留下了我用于对齐测试的内容的评论。
\documentclass[a4paper,10pt,oneside]{book}
%\usepackage{showframe}% for testing purpose
\usepackage{lipsum}
\usepackage{makecell}
\usepackage{titlesec}
%\newcommand{\mychapter}[1]{\chapter[#1]{\framebox[\linewidth][c]{#1}}}% \framebox for testing purpose
\newcommand{\mychapter}[1]{\chapter[#1]{\parbox[t]{\linewidth}{\centering #1}}}
\begin{document}
\titleformat{\chapter}
{\centering\Huge\bfseries}
{}
{}
{}
\tableofcontents
\titleformat{\chapter}
{\Huge\bfseries}
%{\huge\hspace{-50pt}\parbox[t]{50pt}{\framebox[30pt][r]{\thechapter}}}% \framebox for testing purpose
{\huge\hspace{-50pt}\parbox[t]{50pt}{\makebox[30pt][r]{\thechapter}}}
{0pt}
{}
\mychapter{Short chapter title}
\lipsum[1]
\mychapter{Long long long long long long chapter title}
\lipsum[1]
\mychapter{Short chapter title}
\lipsum[1]
\mychapter{Long long long long long long chapter title}
\lipsum[1]
\mychapter{Short chapter title}
\lipsum[1]
\mychapter{Long long long long long long chapter title}
\lipsum[1]
\mychapter{Short chapter title}
\lipsum[1]
\mychapter{Long long long long long long chapter title}
\lipsum[1]
\mychapter{Short chapter title}
\lipsum[1]
\mychapter{Long long long long long long chapter title}
\lipsum[1]
\end{document}
标题简短的章节:
具有长标题的章节(两位数):
为了完整起见,我还将目录标题居中,但将章节列表保持左对齐: