你把某一章的标题改了几个字,然后往下翻,发现目录里那一行也变了。
再比如,你把"标题一"这个样式的字体换了一下,结果全篇所有的一级标题都跟着变了,目录里的那些行也跟着重排了。
第一次遇到这种事,会觉得这个软件很智能——"我没动目录,它自己就知道了"。
但它的原理其实很朴素,而且这个原理还能顺带解掉好几个常见的困惑。
答案:目录不是"抄"上去的,是"照着生成的"
很多人对目录的理解是这样的:我插入目录的时候,它把我当时的那些标题"抄"了一份,排成了一个列表。
如果是这样的话,那我改了标题,目录当然不会变——它抄的那份是旧的。
但实际不是这样。
目录不是一份抄下来的文字,而是一段"按照样式实时生成"的内容。
也就是说,你看到的那一行"第一章 …… 3",不是一段死文字,而是它依据"标题样式"和"页码"算出来的结果。所以只要这几个依据变了,重新算一遍,目录就变。
这里的关键在于那个依据是样式,不是"看起来像标题的文字"。
所以:你改标题的那些字,改的其实是目录的"素材"。 素材变了,它重算一下,自然就跟着变。
这一点我在讲目录的另一篇里说过,那里还讲到一句很实用的话:改目录里的字是没用的——因为它下次刷新就回来了,你要改的是样式那边。这里就不重复了。
而下面这一层,是那篇没讲的:样式其实有两种,而它们管的东西完全不同。
样式有两种:管一整段的,和只管几个字的
这是本篇的重点。
第一种叫段落样式。
它作用在整个段落上。也就是说,你把它套到某一段上,那一段里的每一行、以及这一段的整体属性,都由它决定。
第二种叫字符样式。
它只作用在你选中的那几个字上。一段里有二十个字,你可以只挑其中三个字套上它。
听起来它们的区别只是"范围大小",但其实不止。
关键在于它们能改的属性不一样。
段落样式能改的东西更多。 它既能改字符级的属性(字体、字号、加粗、颜色),也能改段落级的属性(对齐方式、缩进、行距、段前段后间距、以及大纲级别)。
而字符样式只能改字符级的属性。 它改不了行距、改不了缩进、也改不了对齐——因为那些都是段落级的东西。
这就解释了一个很容易困惑的现象:你给几个字套了一个字符样式,发现行距没变。那不是样式没生效,而是行距压根不归它管。
所以有一个很实用的判断法:问一句"这个设置是给一整段的,还是给几个字的?"
给整段的,只能写在段落样式里。给几个字的,两种都能写。
哪些设置属于哪一级
顺着上面那句,可以列一下常用的属性各自属于哪一级。这个分法一记住,很多问题就不用猜了。
属于段落级的:对齐方式(居中、左右对齐)、缩进(首行缩进、左右缩进)、行距、段前段后的间距、段落之间的分页控制、以及那个管结构的"大纲级别"。
属于字符级的:字体、字号、加粗、斜体、下划线、颜色、着重号、以及字间距这类。
看出那个规律了吗?
凡是在管"这一段整体怎么摆放"的,都是段落级。凡是在管"这几个字长什么样"的,都是字符级。
而"大纲级别"放在段落级,是这件事里最值得注意的一点——因为它是目录和结构图的依据。这一点下面马上要说。
"改了标题"其实有三种意思
回到标题那句话。而"改了标题"这四个字,其实盖住了三种不同的操作,它们的后果也不一样。
第一种:改了标题的文字。
比如把"第一章 概述"改成"第一章 引言"。这种情况下,目录里那一行的文字也会跟着变。因为它读的就是标题的文字。
第二种:改了标题样式的定义。
比如你打开"标题一"这个样式的设置,把它的字号从十六号改成十八号。
这种情况下,全篇所有套了"标题一"的标题都会跟着变。目录里的那些行也会跟着重排——因为字号变了,页码可能就往后挪了。
这是样式的核心价值所在:改一处,全篇一起变。 这也是我讲排版原理时反复提的那件事:想让同类东西保持一致,靠的不是"调得更仔细",而是"别手动调,用样式"。
第三种:手动改了某一个标题的格式。
比如你只给第三章的标题单独换了个字体,没有动样式。
这种情况下,那一处的观感是变了,但它和样式之间就出现了一个"例外"。而麻烦在于:以后你要是改了样式的定义,这个例外有可能不跟着走,也可能被覆盖掉。
这也解释了我之前提过的那个顺序问题:先套样式,再微调外观。 反过来做的话,你先手动调好的东西,会在套上样式的那一刻被打回原形。
所以三种改法里,最稳的是第二种——改定义,让所有地方一起变。
那段落样式具体怎么设
顺着"改定义"这条路,说说操作上的两种做法。
第一种是改现成的样式。
这是最省事的做法:在样式那一栏里,对着某个样式(比如"标题一")点修改,然后改它的字体、字号、对齐、缩进、行距这些,确定。
因为它是"改定义",所以全篇凡是套了这个样式的地方,立刻就都变了。这也是为什么它比"一个个去调"要快得多。
至于"修改"这个入口在样式那一栏的哪个位置、是右键还是下拉菜单,各个版本不太一样,所以我不给准确路径。你对着那个样式名点一下或者右键一下,一般就能看到。
第二种是新建一个样式。
当你需要一类新的东西时用它。比如你这份文档里"图注"和"表格标题"要长得不一样,而现成的样式里没有合适的,那就各建一个。
新建的时候一般会让你选"基于哪个样式"。这个选择很重要,但很多人是随手点的。
它决定了关系的远近:如果你让新的样式基于某个现成的样式,那以后你改了那个底层样式,这个新的也会跟着变一部分。 如果你不想让它跟着变,就别建立这层关系。
所以新建之前值得问一句:它应该跟着谁变?
如果这两种东西本来就该联动(比如"章标题"和"标题一"其实是一回事),那就让它基于后者;如果它们该各管各的(比如"图注"和"正文"),那就别挂上关系,否则以后你调正文的时候,图注会跟着乱。
这一点看着细节,但它决定了你以后的维护成本。
样式和"格式刷"有什么区别
还有一个东西经常和样式混着用,值得单独分清:格式刷。
格式刷做的是"复制外观"。
你把 A 的格式抄给 B,B 就变得和 A 一样了。这个动作很快,也很直观。
但它抄的是"手动格式",不是"套用样式"。
这个区别的后果是:你用格式刷刷出来的东西,以后改样式的时候不跟着变。
因为样式改动只影响"套了那个样式的地方",而格式刷留下的是一份死的外观副本,它和任何样式都没有关系。
所以这两个东西可以这样理解:格式刷是"抄一遍",样式是"签一份合同"。 前者是死的副本,后者是活的引用——引用会跟着源头变,副本不会。
那什么时候用格式刷合适?
一次性的、以后不会再改的地方。 比如你要快速把某个段落弄得和上面那个一样,而这个文档也就这样了,不会再大改。这种时候格式刷很方便。
但如果这份文档以后还要动,尤其是那种"同类东西要统一"的场合,那就该用样式——否则你改了样式,那些用格式刷刷过的地方还留着旧样子,于是同一类东西出现了两种格式。
这也绕回了我一直在说的那条线:结构上的东西用结构解决,别用"看起来一样"去凑。
那字符样式用在哪儿
既然段落样式的权限更大,那字符样式还有什么用?
它有两个场合特别合适。
第一个是"只强调几个字,但不想让它变成一整段"。
你要强调一句话里的某个词。如果你给它加粗、改字号,那是在手动改格式,以后不好维护;如果你套一个字符样式,那以后你想统一调整这几个词的样式,改一次定义就够了。
第二个,也是我觉得更实用的一个:给某类词一个统一的样式。
比如你这份文档里反复出现某几个专有名词,你希望它们都长一个样。那就可以建一个字符样式,把它们统管起来。
这样做的价值是:以后你想给这类词换个颜色,只要改一次那个字符样式,全篇所有套了它的地方就一起变了。
这和段落样式的道理完全一样——都是一次定义、处处相同。区别只在于,它管的是"字"而不是"段"。
所以字符样式不是"功能更弱的段落样式",它是针对另一种需求的东西:段落样式管"段落长什么样",字符样式管"某个词长什么样"。
几个常见的坑
第一个坑,是给几个字套了字符样式,却发现行距、缩进没变。那些是段落级的属性,字符样式管不了。
第二个坑,是改目录里的字。它下次刷新就会回来,要改的是样式那边。
第三个坑,是手动改某一个标题的格式,而不是改样式定义。这样会产生例外,以后不好维护。
第四个坑,是以为改标题只是"改了一段文字"。它同时还会影响目录和结构图,因为那些东西读的是样式和级别。
第五个坑,是先手动调好外观再套样式。顺序反了,前面调好的会白费。
最后
如果只用三句话记住这篇,我希望是这三句。
目录不是"抄"了你的标题,而是照着样式实时生成的。所以你改了标题,它重算一遍就跟着变——它不是智能,而是它的那一行本来就不是死文字。
而样式分两种:段落样式管一整段,能改字符级和段落级两类属性;字符样式只管选中的几个字,只能改字符级的属性。所以给几个字套字符样式之后行距不变,是正常的——那本来就不归它管。
而"改了标题"有三种意思:改文字、改样式的定义、以及手动改某一处的格式。三者的后果不同,其中改定义最稳——因为它是"改一处,全篇一起变",而这正是样式存在的理由。