\paragraph{}
和之间有区别吗\paragraph*{}
?
当使用时(如果之前没有修改过任何内容,例如在本篇文章中):段落标题),创建的PDF文件没有任何区别。
通常,*
使用 来阻止 LaTeX 对相关对象进行计数/编号(此处的段落)。但在这里,它们两个都没有计数/编号,因此... 如果有变化,那变化是什么?
答案1
与标准文档类别中所有来自及以下的分段命令一样\section
,它们根据 进行定义\@startsection
,允许使用带星号的变体。取自latex.ltx
(重点/评论已添加):
\def\@startsection#1#2#3#4#5#6{%
\if@noskipsec \leavevmode \fi
\par
\@tempskipa #4\relax
\@afterindenttrue
\ifdim \@tempskipa <\z@
\@tempskipa -\@tempskipa \@afterindentfalse
\fi
\if@nobreak
\everypar{}%
\else
\addpenalty\@secpenalty\addvspace\@tempskipa
\fi
\@ifstar% <------------------------------------------ Condition on *
{\@ssect{#3}{#4}{#5}{#6}}% <----------------------- starred-version
{\@dblarg{\@sect{#1}{#2}{#3}{#4}{#5}{#6}}}}% <----- regular/non-starred version
只有在查看星号版本的内部运作\@ssect
和\@sect
条件化之后的选择时,差异才会变得明显。主要差异包括:*
根据计数器的值进行编号
secnumdepth
。对于\paragraph
,这是 4。设置secnumdepth
为任何大于或等于 4 的值都会显示差异;包含在目录中。无论 的值如何
tocdepth
(计数器决定将哪些部分单元包含在目录中),条目都会写入文件.toc
。只有在读取.toc
文件时,才会根据 的值决定是否包含该条目tocdepth
。运行头由 触发
\paragraphmark
(调用 时\paragraph{..}
),最初设置为。因此,如果不进行任何修改,这只会吞噬其参数 - “段落标题”,而不会更改标题中的任何内容。但是,当使用 时,与调用no 时相比,\@gobble
合适的 定义\paragraphmark
会显示不同的效果。\paragraph
\paragraph*
\paragraphmark