大情的博客
navigation
🔧

Word实现原理:3. 域代码

“Word实现原理”主要对“学位论文模板”系列背后的方法论做介绍,共有三篇,建议依次阅读: “1. 段落&表格样式”:样式是使用模板的核心功能,本文对段落和表格样式做介绍,为引入下文的“多级列表”做铺垫 “2. 多级列表”:使用多级列表链接样式的方式实现分章节编号,完美取缔“插入题注”功能。本文对列表样式做介绍,以制作的论文模板作为实例说明 “3. 域代码”:图片、表格、公式和目录等等,均利用了“域代码”功能进行文本的更新。本文先介绍了域代码,并将在论文模板制作中涉及的域代码一网打尽,包括公式,图录表录等
notion image
😃
域代码可以理解为可更新的文本,在提高Word使用效率上举足轻重,比如自动编号和引用、自动生成目录,页脚的页码等都用到了域代码。为了减轻论文排版中不必要的工作量,有必要掌握好域代码的使用,本文主要对论文模板里用到的域代码做介绍,希望对大家学习域代码有所帮助

1 域代码

1.1 介绍

域代码作为文档中可能更改的数据的占位符非常有用,可以使用域代码自动执行文档的某些方面。——在 Word 中插入、编辑和查看域 (microsoft.com)
简单而言,Word中的域代码是可更新文本,在文档中以深灰色背景加深显示,可以切换成两种形态,为做区分,就分别喊为“显示”和“编辑”模式吧
  • “显示模式”是域代码的表面,是打印时(Ctrl+P)所看到的内容
  • “编辑模式”是域代码的内在,打印不出来,只在编辑Word的时候能看到(选中域代码并右键“切换域代码”或者Shift+F9),“内在”的设置控制着“表面”的呈现
notion image
Word的域代码的类别很多,这里是官方的列表:Word 中的域代码列表
所幸的是,这列表里面的大部分的域代码都是平时用不上的,对于平时编辑文档的需求来看,官方的列表显得有点“虚胖”了,我们可能平时接触较多的是Seq (序列) 域、Ref 域等。

1.2 入口

  • “插入”选项卡 > “文本”栏目 > “文档部件” > “域”
notion image
  • 弹出“域”窗口
      1. 选择类别
          • 编号:ListNum、Page…
          • 链接和引用:StyleRef、Ref…
      1. 选择域名
      1. 进行“域属性”、“域选项”设置(不同域设置不尽相同,下图没呈现出这一步,后文会介绍)
      1. 点击“确定”
🌟
下文会对推荐的一些域代码做详细介绍
notion image

1.2 快捷键

  • ctrl + F9 新建域代码
  • F9 更新所选内容或光标所在位置的域代码
    • ctrl + A 全选 + F9 更新全文域代码
  • 切换域代码
    • shift + F9 切换所选内容或光标所在位置的域代码
    • alt + F9 切换全文的域代码
  • ctrl + shift + F9 清除选中文本的域代码格式,同样适用于删除超链接
  • ctrl+F11 锁定选中文本包含的域,即不再更新;ctrl+shift+F11 取消锁定域

2 域代码的应用

  • 对于图表的编号,网上常用的是“插入题注”的功能,它背后所使用的域代码类别是Seq域,但其用在学位论文里的缺点明显:
    • 引用内容带有空格,需要手动删除!
    • 若大论文的标题为大写编号,分章节编号将导致大小写组合,比如:一.1
    • 他人无法直接使用自己所创建的题注,需要重新建立题注,影响多人协同工作
  • 本节“编号和引用”部分主要分成三部分:图表、公式和文献,所采用的编号方式摒弃了“插入题注”功能,而是利用了列表样式
💡
编号和引用:✅“定义新的列表样式” ❎“插入题注”

2.1 图表编号和引用

2.1.1 编号

如前一篇文章所述,我在论文模板中新建了“论文编号”的列表样式,用来对图片和表格进行编号
将列表编号链接到样式后,对指定段落文本应用样式(在“样式”栏目或“样式”窗口做选择)即可实现编号
notion image

2.1.2 引用

引用的方法是“交叉引用”,“引用”选项卡>“题注”栏的“交叉引用”
  1. 找到需要引用的编号项目
  1. 点击“插入”
  • 引用类型:默认为“编号项”,保持默认即可
  • 引用内容:默认为“段落编号”,保持默认即可
  • 🚩不同级别的编号项会有不同缩进,不用有所担心是不是哪出bug了
  • 🚩编号项的缩进值随着级别依次递增,比方说图中“表2-1”和“Tab 2-1”隶属于级别6和级别7,级别7会比级别6缩进多一些。
notion image
😲
插入引用后,如果光标放置在引用位置,引用高亮后,右键 > “切换域代码” 或是“Shift+F9”,可以看到引用的“内在”是Ref域,知道这个就够了,里面的格式不需要了解 若引用对象的编号有变化,需要更新引用,方式为选中引用 > F9

2.2 公式编号和引用

因为应用样式的默认编号位置必须限制在段落首行前,而公式编号在行右侧,这个限制和公式的编号要求矛盾。我们利用ListNum域便可以突破这个限制

2.2.1 编号

  1. 插入域代码时,类别选择“编号”
  1. “域名”选择“ListNum域”
  1. 列表名称:
    1. 选择定义的列表样式里新建的域列表名
      1. 我们定义列表样式时,如果新建了ListNum域,它会出现在“列表名称”中,比如图中的(eq)是我在“论文模板”列表样式里新建的ListNum域
      2. “LegalDefault”等三个列表名称是Word自带的
  1. 选择插入的编号级别
    1. 在“论文模板”列表样式中,因为我把公式的编号放在了级别8,因此这里☑️选择了“8”
  1. 起始值
    1. 默认都是从“1”开始编号,因此留空🟦
插入ListNum域
插入ListNum域
“论文模板”列表样式中定义ListNum的位置
“论文模板”列表样式中定义ListNum的位置
  • 如果查看ListNum域的“内在”,会发现是这个格式{LISTNUM (eq) \l 8 \s 1}
    • 各参数和值之间以空格相隔
    • {}指示了这段文本是域代码,它通过Ctrl + F9创建的,要和键盘输入的{}做区分
    • LISTNUM是ListNum域的域名
    • (eq)是列表名称
    • \l 编号级别(level),空格后输入级别,这里的例子是8
    • \s 起始编号(start),若没设置起始值,则这个参数会被忽略,e.g. {LISTNUM (eq) \l 8}
💡
修改列表样式前,建议先把ListNum域列表名中的编辑框清空 > 点击”确定“,再重新打开修改窗口做改动,不然Word可能会生成多余的ListNum域,如(eq)2,(eq)3… 万一生成了,好像是撤销不了的,因为Word没有提供删除选项,这个可以说是Word的弊端吧,但好在它不影响我们的使用,因此万一我们失误生成了多余的域列表,眼不见心不烦就好了哈哈
notion image

2.2.2 引用

公式引用方式和图表的一样,公式编号能在“交叉引用”的“编号项”中找到,这里就不赘述了

2.2.3 为公式建立块

⭐公式排版方式1️⃣:
  • 一行公式,由Tab+公式+Tab+编号构成:
notion image
  • 用两个Tab实现公式居中,公式编号右对齐
  • 设页面字符宽度为w(“布局”选项卡 > “页面设置”栏目 > “栏” > “更多栏”查看),制表位位置:
制表位
制表位位置
对齐方式
引导符
1️⃣
w/2
居中对齐
默认
2️⃣
w
右对齐
默认
⭐⭐⭐公式排版方式2️⃣:
Aug 10, 2022
  • 更新:不建议用Tab实现公式排版!建议改用公式+#(编号)+Enter的方式实现
  • Word自带公式有两种模式:“显示”和“内嵌”,可以通过公式边上的“下三角”按钮进行切换
    • “显示”
      • 用于行间公式,也就是独立成行的公式,字体字号不会变
      • 在新行插入的公式(Alt+=)默认为“显示”
    • “内嵌”
      • 用于行内公式,也就是段落中的公式,此时为了和段落文字对齐,公式的字体字号可能会变小(比如分式的分子和分母)
      • 在段落插入的公式(Alt+=)默认为“内嵌”
  • 采用制表位排版公式,有制表位存在时公式自动更改为“内嵌”,而其理应为“显示”才对,采用公式+#(编号)+Enter的方式可以解决这个问题

 
  • 推荐为整行公式建立块,通过输入块的名称 > F3快捷插入公式及编号
    • 选中整行公式 > “插入”选项卡 > “文档部件” > “自动图文集” > “将所选内容保存到自动图文集库”
    • 在“新建构建基块”窗口,为块儿输入名称
    • 保存位置:默认保存在Normal.dotm模板,也可以保存在其他自定义的模板
    • 构建基块管理器:新建的块在这里查看,一般位于最底下
notion image

2.3 文献编号与引用

1️⃣文献的编号和引用建议用专业文献管理软件,e.g. Zotero,Endnote
2️⃣如果文献很少,图方便的话,也可以利用多级列表链接样式的方式,编号方式和图表的一样,但”交叉引用“的设置会有一点不同:
  • 引用内容
    • 选择“段落编号(无上下文)“
notion image
  • 引用文献后,可能需要对引用应用”上标“的格式,此时可以通过”替换“功能实现:
    • 在全文定稿后 > Ctrl + A > F9,再执行以下步骤,否则后续的引用更新F9会重置引用的格式
    • Ctrl + H弹出”查找和替换“窗口
      1. 查找内容:[^#]
          • []为文献编号的框框,^#指代任意数字;如果有两位数,则查找内容应该为[^#^#]
          • ”样式“ > 通过指定查找内容所应用的样式,以限定查找范围
      1. 替换为:^&
          • ^&指代查找的内容
          • ”格式“ > ”字体“:✅上标
      1. 点击“替换”或“全部替换”
      1. 检查全文的替换内容是否正确
notion image

2.4 目录、图录和表录

2.4.1 目录

  • 目录的生成通过Word的“自动目录”实现
  • “引用”选项卡 > “目录” > “自动目录”
  • 默认的格式可能不符号要求,打开“样式窗口”后,修改内置样式“TOC”的“字体”等设置
    • “TOC 1”:大纲级别为1级的条目所用样式(e.g. 标题 1),“TOC 2”:大纲级别为2级的条目所用样式(e.g. 标题 2),以此类推…
    • 注意对齐方式必须保持默认选择:“两端对齐”,否则可能会丢失引导符”…”
  • 每个文档的“自动目录”只能有一个,如果有多个目录(e.g. 图录、表录), 应该用“自定义目录”的功能创建👇

2.4.2 图录和表录

  • “引用”选项卡 > “目录” > “自定义目录”
notion image
  1. 点击”选项“
  1. 修改目录级别
      • “段落”设置里“大纲级别”的样式都会默认勾选☑️,比如说模板里的“标题 1”,“标题 2”,“标题 3”,但这里相应的“目录级别”要清空,因为它们不是图录的样式,我们的目标是应用了图片编号的样式(图中是“1_图1-1”)
      • “TOC 1” ,“TOC 2”,“TOC 3”应用于“自动目录”了,这里为避免冲突,此处不要设置为1-3级,图中给“1_图1-1”设置了级别4
  1. 点击”确定“
  1. 点击”确定“
    1. 弹框提示:“要替换此目录吗?“ > “否”
  1. 插入图录后,再对相应目录级别的样式做修改即可,这里目录级别设置了4级,因此对应的样式是”TOC 4“
 

2.5 页眉和页脚

  • 位置:”插入“选项卡 > ”页眉和页脚“
  • 双击页眉或页脚,出现”页眉和页脚“选项卡
  • ”页眉和页脚“选项卡的”导航“栏目中,”链接到前一节“的选项设置相互独立,也就是说同一页,页眉可以链接到前一节,而页脚可以不链接,反之也成立。
  • 若本节的页眉或页脚的设置和前节不同,应按照下面步骤做设置:
      1. 选中页眉或页脚
      1. 取消”链接到前一节“(这部很重要,否则后面的更改设置也会应用到前一节里)
      1. 再对页眉或页脚做相应更改
notion image

2.5.1 页眉

  • 页眉通过StyleRef域实现章节的引用
      1. 插入域的类别:”链接与引用“
      1. 域名:StyleRef
      1. 样式名:选择需要引用样式,这里为”标题 1“
      1. 插入段落编号
        1. ☑️:插入标题编号 🟦:插入标题文本
          ”第一章 绪论“包括两个StyleRef域,中间空格相隔,分别☑️和🟦”插入段落编号“
      1. 点击”确定“
  • 插入新章节后,页眉章节的显示没能更新,可以双击页眉更新显示,或者打印预览Ctrl + P > Esc
notion image
  • 页眉的章节右对齐通过插入制表位实现
    • 方法1:段落设置 > 制表位
      • 位置:页面的字符宽度,“布局”选项卡 > “页面设置”栏目 > “栏” > “更多栏”查看
      • 对齐方式:右对齐
    • 方法2:插入对齐制表位
      • 如下图所示:
      • notion image
  • 页眉下框线的设置:
      1. 点击“页眉”左侧空白处选中整行
      1. ”开始“选项卡 > “边框”选项
      1. ”边框和底纹“
      1. 边框样式
      1. 边框宽度
      1. 应用边框:下框线
      1. 点击”确定”
notion image

2.5.2 页脚

  • 页脚一般只设置页码,应用的域代码是Page域,有个印象即可
  1. ”插入“选项卡 > ”页码“
  1. ”页面底端“
  1. 选择样式,一般是简单、居中对齐
  • ”设置页码格式“
    • 编号格式:默认是1, 2, 3, …
    • 页码编号:默认是”续前节“,若该节页码和前节不同(e.g. 格式不同),取消”链接到前一节“后,勾选✅起始页码并设置起始值
notion image

3 试错中发现的BUG

🧐
在制作模板过程中,会发现Word有些bug,主要集中在列表编号的问题,好消息是这些bug平时不太可能遇到,坏消息是当时遇到的时候真被搞得头大。。

3.1 标题

对”标题 1“(即一级标题”第X章“)设置”间距:段前“24磅后,实际效果还是0磅,调试后发现:
1️⃣如果前一页使用了“分页符”,或是标题样式设置了“段前分页”,“间距:段前”的设置实际无效,将是0磅
2️⃣前一页使用”分节符“(下一页),“间距:段前”的设置实际有效

3.2 编号

3.2.1 文献

  • 完整选中文献条目,默认Ctrl + V粘贴就好,千万不要右键选择“继续列表”,否则全文的公式编号会出错(变成a. b.)
  • 文献编号,只包含一个级别,在其他章引用时会带二级标题编号。。因此“引用内容”需要选择“段落编号(无上下文)”

3.2.2 公式

  • 推荐对整行公式“构建基块”,通过插入块的方式插入公式。
  • 如果对整行公式复制粘贴的话,可能会莫名应用其他样式,比如说,在Fig的末尾,回车,粘贴,会应用标题一样式。。
    • 原因是如果粘贴ListNum域名在列表编号后(包括:图,Fig,表,Tab;不包括:1-3级标题),Word默认粘贴选项是“合并列表”,解决办法是粘贴时右键:“不要合并列表”,或者另起两行粘贴。
💡
修改列表样式前,建议先把ListNum域列表名中的编辑框清空 > 点击”确定“,再重新打开修改窗口做改动,不然Word可能会生成多余的ListNum域,如(eq)2,(eq)3… 万一生成了,好像是撤销不了的,因为Word没有提供删除选项,这个可以说是Word的弊端吧,但好在它不影响我们的使用,因此万一我们失误生成了多余的域列表,眼不见心不烦就好了哈哈
notion image
  • 如果没有设二级标题,则公式的ListNum域不能放在最前面(前面至少有图1或表1),否则会导致图表编号从2开始。 如果存在二级标题或三级标题,则不存在这个问题

3.2.3 模板

  • 如果设置段前分页等格式,要直接对模板文件修改,对已保存的外部文件修改,好像会行不通(重新打开恢复原样)
    • 比如,标题一设置的“段前分页”,在通过模板新建的文档样式中修改不了设置,重新打开文件会恢复“段前分页”,需要打开模板文件dotm修改
  • 表格样式的修改原则类似,需要打开模板文件dotm做修改并保存为“基于该模板的新文档”,在新建文档docx中修改行不通
 
默认打开dotm文件会新建文档docx,那该如何才能修改模板文件dotm?
  1. 文件选项卡 > 打开” > “浏览
  1. 路径转到 C:\Users\用户名\AppData\Roaming\Microsoft\Templates
  1. 选择要修改的模板文件
  1. 对字体、边距、间距以及其他设置进行任意所需更改。 可以使用更改文件所用的命令和功能,但请记住,所作的任何更改都将应用于以后创建的文档
 
badge