\paragraph 和 \paragraph* 之间有什么区别?

\paragraph 和 \paragraph* 之间有什么区别?

\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

相关内容