任何软件包文档看起来如下:
\titleformat{<command>}[<shape>]{<format>}{<label>}{<sec>}{<before-code>}[<after-code>]
对于新手(比如我)来说,它比示例要没那么有用。它没有给新手读者提供太多线索,真正的文档中到底应该输入什么。我要输入那些尖括号吗?花括号?方括号?这些分隔符中究竟应该包含什么?
例子是记录的方式。
文档titlesec
最后确实有示例,但是太少了,而且没有涵盖我感兴趣的情况。
我的问题是:有什么简单、直接的方法来格式化章节标题?我的输出有几个设计要求:
- 章节编号根本不应该缩进。
- 整个章节文本的正文应该像包中那样缩进
enumerate
,但我更喜欢普通的散文段落缩进而不是换行。也就是说,章节中段落的第一行缩进“两次”,而后续行只缩进“一次”。这里的“一次”和“两次”是指相对于章节编号。
我确信有办法做到这一点,但我在这里和其他地方搜索都没能找到它。如果能得到任何帮助,我将不胜感激。提前致谢!
这是使用该包的一个几乎可以工作的最小示例enumerate
。我几乎可以用这个包做到这一点,除了想要加粗的章节标题等等。
\documentclass[12pt]{article}
\usepackage{enumerate}
\begin{document}
\begin{enumerate}[I.]
\item Section Title
This level has a great spacing from the 1. on the left to the first word ``This''. And then, if I want
a hierarchy, the heading there, an `A.' in this case,
\begin{enumerate}[A.]
\item Subsection Title
is nicely lined up with the indented text above. However, I would like to change
this indenting to use normal prose paragraph indenting, such as
\end{enumerate}
\end{enumerate}
Normal paragraph prose indenting, where the first line is indented, and the rest of the paragraph is not.
However, the non-indented text needs to be at the indentation of the ``This'' above, and the first lines need
to be indented one more slot, of the same width.
\end{document}
这是我在 MS Word 中输入的一个最小工作示例(当然,我必须手动处理缩进才能达到我想要的效果):
答案1
我不太确定你到底想要这些缩进是什么样的,所以我创建了一个缩进,其中章节标题位于相同的缩进点。代码基于文档部分中给出的章节示例9.1 完整示例:
\titleformat{\section}
{\normalfont\Large\bfseries}{\thesection}{1em}{}
为了获得相同的缩进点,我们需要计算节号的宽度,因为这些宽度会有所不同,具体取决于要打印的数字。(在大多数字体中,8 比 1 宽,而 100 当然更宽)。这可以使用-package\widthof{content}
中的命令来完成calc
。然后我们将缩进的长度设置为 2 \parindent
,即正常缩进的长度减去节号的宽度。
但由于\parindent
并非处处相同,且在 -macro 内为零\titleformat
,因此我们需要在 之外计算它。因此,创建了一个新的长度 ,\anIndent
它捕获该长度。
为了得到你想要的缩进,我抓住了答案沃纳发表于缩进整个段落/部分?。这适用于所有页面,并且比 更易于使用minipage
。当然,如果有某种解决方案,无需为每个部分手动设置这些宏,那就太好了。
另外,你真的想缩进第一行吗?我认为这不是一种很常见的做法。通常,第一段不缩进,只有后续段落才缩进。
编辑:我现在创建了一个新环境,以使语法更好一些。它基于-packageadjustwidth
中的 -environment changepage
。新环境被调用indentedSection
并接受一个参数,即缩进数。1 表示section
2 表示subsection
3 表示subsubsection
。我还添加了对subsubsection
输出
代码
\documentclass[11pt]{article}
\usepackage{titlesec}
\usepackage{lipsum}
\usepackage{indentfirst}
\usepackage{calc}
\usepackage{changepage}
\newlength{\anIndent}
\setlength{\anIndent}{\parindent}
\titleformat{\section}
{\normalfont\Large\bfseries}{\thesection}{2\anIndent-\widthof{\thesection}}{}
\titleformat{\subsection}
{\normalfont\large\bfseries}{\thesubsection}{3\anIndent-\widthof{\thesubsection}}{}
\titleformat{\subsubsection}
{\normalfont\normalsize\bfseries}{\thesubsubsection}{4\anIndent-\widthof{\thesubsubsection}}{}
\newenvironment{indentedSection}[1]{%
%Input #1: Level of indentation
\begin{adjustwidth}{#1\anIndent+\anIndent}{}
\hspace{\anIndent}% Indent first line
\ignorespaces% Ignor any space at start of environment
}{\end{adjustwidth}}
\begin{document}
\section{Baz}
\begin{indentedSection}{1}
\lipsum[2]
\end{indentedSection}
\subsection{Foo}
\begin{indentedSection}{2}
\lipsum[2]
\end{indentedSection}
\subsubsection{hello}
\begin{indentedSection}{3}
\lipsum[2]
\end{indentedSection}
\end{document}
答案2
好的,这里是一份 27 页的文档,解释 titlesec。(如果该链接不起作用,请尝试这个。)我现在自己也在读,因为我找到了。它有你的可憎之处,但它解释了这些可憎之处。这样就好了,对吧?还有本网站它还有在线 LaTeX 编辑器;其中包含您可以打开的工作示例。我正在修复第一个链接。
示例(直接引用):是需要重新定义的<command>
分段命令,即 ,\part
,\chapter
,\section
, 或\subsection
。\subsubsection
\paragraph
\subparagraph
希望这有帮助!我会继续寻找其他资源。
其他资源
哦,鉴于 Johannes_B 的评论,这里是 TikZ 手册。非常长,非常有帮助(我刚开始学习 TikZ/LaTeX,那本手册很棒。以及LaTeX 维基百科。这里和这里还有两个非常方便的 LaTeX 资源。这里是 Tabu 的文档。最后,这里是一个关于 ConTeXt 文档/资源的 TeX stack exchange 问题。
笔记:这篇文章是在 OP 更新他的问题之前发布的,以明确表示他想要解决问题,而不是记录。