我是 Latex 详细格式化功能的新用户... 我很难找到 titlesec 文档来进行我所需的格式化。不幸的是,在线示例对我没有太大帮助...
- 我正在上作文课。
- 我需要大写的章节标签,其中包含子章节的章节编号(例如 1.0 INTRODUCTION . . . . . . pg#)
- 还应包括小节和小小节,分别缩进,不包含任何超出默认行为的内容
- 附录不必大写,而应标记为“附录 A - 附录标题...页码#)
- 最后,目录标题应为粗体、居中、大写。
这是我现在的代码:
\documentclass[12pt]{article}
\usepackage{blindtext}
\usepackage{titlesec}
\usepackage{titletoc}
\titleformat{\section} % command
[hang] % shape
{\normalsize\bfseries} % format
{\thesubsection} % label
{1em} % Spacing between label and title
{\MakeUppercase} % before code
\titlespacing{\section}% Set the spacing around the title
{0pt} % Left
{0pt} % Above
{0pt} % Below
\titlecontents{section}[2em]{\vspace{12pt}}{\normalfont\normalsize \contentslabel{2em}}{\hspace*{-2em} \MakeUppercase}{}{}
\titleformat{\subsection} % command
[hang] % shape
{\bfseries\normalsize} % format
{\thesubsection} % label
{1em} % Spacing between label and title
{} % before code
\titlespacing{\subsection}% Set the spacing around the title
{0pt} % Left
{0pt} % Above
{0pt} % Below
\titleformat{\subsubsection} % command
[runin] % shape
{\bfseries\normalsize} % format
{\thesubsubsection} % label
{1em} % Spacing between label and title
{} % before code
[.] % after code
\begin{document}
\tableofcontents
% Put this after TOC to keep single spacing in TOC:
\setlength{\parskip}{2ex} %--skip lines between paragraphs
\setlength{\parindent}{0pt} %--don't indent paragraphs
\vspace{4em} % Would normally be \newpage
\blinddocument
\end{document}
抱歉……我花了五个小时却没有取得什么进展。我想我还在学习很多对我来说很复杂的基础知识……谢谢,Mike
答案1
以下是一种方法:
\documentclass[12pt]{article}
\usepackage{blindtext}
\usepackage{etoolbox}
\usepackage{titlesec}
\usepackage{titletoc}
\titleformat{\section} % command
[hang] % shape
{\normalsize\bfseries} % format
{\thesubsection} % label
{1em} % Spacing between label and title
{\MakeUppercase} % before code
\titlespacing{\section}% Set the spacing around the title
{0pt} % Left
{0pt} % Above
{0pt} % Below
\newcommand\RegToCEntries{
\titlecontents{section}[2em]
{\vspace{12pt}}
{\normalfont\normalsize\contentslabel[\thecontentslabel.0]{2em}\uppercase}
{\hspace*{-2em}\uppercase}
{\titlerule*[.75em]{.}\contentspage}
}
\newcommand\AppToCEntries{
\titlecontents{section}[0em]
{\vspace{12pt}}
{\normalfont\normalsize\contentspush{\MakeUppercase{\appendixname}}%
\contentslabel{-1em}\hspace{2em}\makebox[1em][l]{--}%
}
{\hspace*{-2em}}
{\titlerule*[.75em]{.}\contentspage}
}
\AtBeginDocument{\RegToCEntries}
\pretocmd{\appendix}{\AppToCEntries}{}{}
\patchcmd{\tableofcontents}
{\contentsname}
{\hfill\MakeUppercase{\contentsname}\hfill\null}
{}
{}
\titleformat{\subsection} % command
[hang] % shape
{\bfseries\normalsize} % format
{\thesubsection} % label
{1em} % Spacing between label and title
{} % before code
\titlespacing{\subsection}% Set the spacing around the title
{0pt} % Left
{0pt} % Above
{0pt} % Below
\titleformat{\subsubsection} % command
[runin] % shape
{\bfseries\normalsize} % format
{\thesubsubsection} % label
{1em} % Spacing between label and title
{} % before code
[.] % after code
\begin{document}
\tableofcontents
\clearpage% just for the example
\blinddocument
\appendix
\section{A test appendix}
\section{Another test appendix}
\end{document}
结果:
解释
将目录标题居中。
我使用该
etoolbox
包进行修补\tableofcontents
:\patchcmd{\tableofcontents} {\contentsname} {\hfill\MakeUppercase{\contentsname}\hfill\null} {} {}
章节条目的格式。
我定义了两个命令
\RegToCEntries
和\AppToCEntries
:\newcommand\RegToCEntries{ \titlecontents{section}[2em] {\vspace{12pt}} {\normalfont\normalsize\contentslabel[\thecontentslabel.0]{2em}\uppercase} {\hspace*{-2em}\uppercase} {\titlerule*[.75em]{.}\contentspage} } \newcommand\AppToCEntries{ \titlecontents{section}[0em] {\vspace{12pt}} {\normalfont\normalsize\contentspush{\MakeUppercase{\appendixname}}% \contentslabel{-1em}\hspace{2em}\makebox[1em][l]{--}% } {\hspace*{-2em}} {\titlerule*[.75em]{.}\contentspage} }
第一个命令给出了常规部分所需的格式,第二个命令给出了附录部分所需的格式;我使用 添加了附录
\contentspush
。第一个命令用于\AtBeginDocument
:\AtBeginDocument{\RegToCEntries}
第二个在调用后自动应用
\appendix
:\pretocmd{\appendix}{\AppToCEntries}{}{}
建议
您的代码集
\titlespacing{\section}% Set the spacing around the title
{0pt} % Left
{0pt} % Above
{0pt}
这会抑制章节标题周围的间距;我建议您在最后两个参数中使用正值,这样章节标题相对于周围文本将具有更好的垂直间距。