LaTex 与 Word
很久以前我总是推荐他人用 LaTex 进行论文写作,主要有两个原因:
- 套用模板可以极大减少在文章内容之外的精力耗费,使用各种标记大大简化了对各种序号的管理,公式输入方便等等;
- 用纯文本类型标记语言方便进行版本管理。
但是也有不便之处:
- 使用前需要调教排版系统,编译时需要处理各种错误
- 非所见所得,需要进行渲染
最近用 Office Word 写完毕业论文,在没有限制 LaTex 和 Word 一定要用哪个之前,我觉得选择 Word 一定是最“实惠”的。
基本需求
在给出我的方案和工作流之前我们先明确下我们的基本需求:
- 层级模板:包括样式,例如各级别标题、正文样式等等;
- 内容模板:图、表、公式、参考文献插入、编号、交叉引用,自动目录;
- 格式:页面布局,例如页边距、单双栏、章划分节等等,页码、奇偶页眉等。
核心方案
- 域操作
什么是“域”?可以理解成一种标记、一个字段又或者是一段代码,通过域代码能快速对文中内容的改变更新域代码处显示的内容。
![123473b9f570d4b3fec51313794db589.png](https://i-blog.csdnimg.cn/blog_migrate/14b2466b329e16fbab6a8827bfedbc7d.png)
- 基于表格的内容文档部件
顾名思义,主要是借助表格制作基本的内容模板,例如将公式和序号“打包”在一个表格中,再将表格网线隐藏,从而达到公式的规整排版;将图片和图题进行“打包”等等。
层级模板
假设文档有如下排版要求:
- 各章标题(必须):小二号黑体,居中,单倍行距,段前、段后各设为 0.5 行
- 各节一级标题(可选):小三号黑体,居左,单倍行距,段前、段后各设为 0.5 行
- 各节二级标题(可选):四号黑体,居左,单倍行距,段前、段后各设为 0.5 行
- 正文(可选):小四号宋体,1.5倍行距,段前、段后无空行
定义基本样式
第一步:新建 Word 后首先根据各部分要求建立相应“样式”
![0be0d373a0fb172f43f9276813faa9aa.png](https://i-blog.csdnimg.cn/blog_migrate/78973490ba553b8a1a91848640d22bc0.jpeg)
可以先创建“正文样式”,再依次创建“章标题样式”、“节一级样式”“节二级样式”,下面仅示范“章标题样式”:
![a806dd2a21aabfd3a5f7e4de3c2bc4a0.png](https://i-blog.csdnimg.cn/blog_migrate/43ff4c52c75f03bf4d605f13818a9ee7.jpeg)
四个样式创建完毕后,将菜单栏中其它无关样式删除。
![b0543c0eba260e08c76d4ac49e16a586.png](https://i-blog.csdnimg.cn/blog_migrate/c9b387161cd7016e5c4ef2b19535f487.jpeg)
第二步:定义多级列表。这一步的作用是使每个标题都能自动编号,例如1.1、2.1.3等
![d32fcb2e661b4ce8421f667f38adf1a6.png](https://i-blog.csdnimg.cn/blog_migrate/31143546b18e4a7782bf6ebf6026f2af.png)
然后将每个层级与相应的样式进行关联即可,下面仅演示2个例子:
![cd2f7650f252e4cfff292c30e753c6da.png](https://i-blog.csdnimg.cn/blog_migrate/0ae505725b077978f695b5143fd2dc35.jpeg)
设置完成后即可在菜单中找到。
![b84118e8f8c2cd580d5bc8383f1f07dc.png](https://i-blog.csdnimg.cn/blog_migrate/339bf2bc2ee203807c8260a858f62e85.png)
使用效果演示:
![87ed27449abc69664750775b06cef1ba.png](https://i-blog.csdnimg.cn/blog_migrate/419c32273eeaa9a056ac6a91274a5471.jpeg)
内容模板
公式的自动编号
我们要求公式可以按章节编号,例如(1-1)、(2-3)等。
这里我们选择使用表格自定义一个“公式容器”,其中指定了公式插入位置同时关联了一个能自动编号的题注。表格大小为1x3,布局为:
- 第一列为空
- 第二列放置公式
- 第三列放置题注
为了方便调用,最后将该“公式容器”另存为文档部件。
第一步:定制公式容器
![b586433ce6827bf411ada7999ad4ad17.png](https://i-blog.csdnimg.cn/blog_migrate/cacc42fba0a55310df8ea51baa3d74e2.png)
调整表格布局,进入表格属性设置:
- 表格 - 尺寸:勾选指定宽度,设置100%(度量单位:百分比)
- 表格 - 对齐方式:居中
- 表格 - 文字环绕:无
- 表格 - 选项 - 默认单元格边距:全部设置为 0厘米
![d610d046a9b4ac625ef5cfc3b97acb90.png](https://i-blog.csdnimg.cn/blog_migrate/cf264dc7b2bb8d7ddedf3e65e1effa84.jpeg)
选中左右两列,设置【表格属性 - 列- 栏数 - 指定宽度为1.5cm】,相应的中间列将自动设置固定宽度。
![a91b9f24f40571feb1125bcb2a5d35d7.png](https://i-blog.csdnimg.cn/blog_migrate/b4afca85eb16c11d37a65ad71aceb8b8.png)
再继续设置表格的布局,完成。
![79ca7ec38001a7ae033d4caaf6745d32.png](https://i-blog.csdnimg.cn/blog_migrate/240cba3063b6aa2541987d730ca92fb8.jpeg)
第二步 题注的设置
在文档任意空白处放置光标,按 Ctrl+F9 插入域代码花括号标注符
![483f9eb5c0856d6aeed2e1f1b4bd8f03.gif](https://i-blog.csdnimg.cn/blog_migrate/ba55eed19f85c93d934b531f36aea876.gif)
在花括号内输入如下代码
![66e1f2ff28a690980bcf897adef34a3b.png](https://i-blog.csdnimg.cn/blog_migrate/6a45b8d98ea6bdeffdb31c35614afb98.png)
其中小灰点表示一个空格,“章标题”是上面自己设置的章节标题样式的名称,因为我们在层级模板中为各个标题样式定义了多级列表,因此这里的“章标题”是带有序号的,即1。如果上面没有定义,建议继续往下看,最后再看第二种方法。
代码中的“公式”字样表示定义了一个“变量名”用来指代这个序号,可以任意取名字,
(注:SEQ 后的题注标签需要自行在【引用】->【插入题主】->【新建标签】中预先创建后,才能在【交叉引用】【引用类型】列表中显示)
* ARABIC 表示这个序号显示为阿拉伯数字,例如换成 * roman 则 1 就显示为 i
“r 1”表示“公式”这个字段值设置为1,当这个公式为该章节的第一个公式时,我们需要将公式标号初始化为1,后面的公式则不需要“r 1”。
用C语言中的变量定义方法理解上面的:
SEQ 公式 r 1 ====> int 公式=1
SEQ 公式 ====> 公式 = 公式 + 1
示例如下:
只要选中域代码,先按F9 更新域再按Shift + F9 即可转换为内容显示
![0079963bc169c7c38c7d8424e561b79c.gif](https://i-blog.csdnimg.cn/blog_migrate/9b28ef14f5444faa94721df27b1f0be3.gif)
![0902fc3afd0f7c5429ccdb00f091aa9e.png](https://i-blog.csdnimg.cn/blog_migrate/cb827a643f24fd97487c95a126381dc8.png)
然后将公式拖回表格中,带“r 1”在每章的第一个公式使用,其余使用第二个。
![a36470e78afbf4afc07b8d2b5f443a54.gif](https://i-blog.csdnimg.cn/blog_migrate/7ffb0073bf299a8047fc307536bc116f.gif)
对于图片的自动标注只要将“域代码”中的“公式”换成“图片”即可。
第三部 保存文档部件
![c083f1903a80ec1b280d4f60e7c220ea.png](https://i-blog.csdnimg.cn/blog_migrate/058b722d105088effd69cd69f44dee6e.jpeg)
最后为了方便使用,可以将其添加到“快速访问工具栏”
![8b89ce7bf5ca43fbc79a72169fea0bb4.png](https://i-blog.csdnimg.cn/blog_migrate/cf03263ef08bf35a719a3323b5bdf039.png)
使用示例
![7fcdd1c770592333eabaf49b50fde7a4.png](https://i-blog.csdnimg.cn/blog_migrate/787a4ef40370c8eacff144659295c119.png)
可以按 alt + F9 看看对应的域代码
![314123d3dec583488cae75d4a029b5d9.png](https://i-blog.csdnimg.cn/blog_migrate/6a152a0c3fe2e913f5c0481303e26b39.png)
交叉引用
![0796017142fcf25c7b5876df24529fab.png](https://i-blog.csdnimg.cn/blog_migrate/26ec84a05296c7770b4dc1f544293835.jpeg)
最后在保存文件退出时提示保存dotx,选择“保存”。
![6189ba3407394d7dbaccfc4f89f1d7b8.png](https://i-blog.csdnimg.cn/blog_migrate/a9d173aab15b0ccb2d26a10e02eca2dc.png)
如果你理解了上面的方法,那下面的方法
第二种方法:只使用域自动编号
这里只在代码上有些许差别,上面的域代码中“章序号”我们通过“章标题”样式进行引用,下面我们直接在每章开头定义一个字段用作“章序号”,这样就不用依赖样式和多级列表。
![dbcbb7c1dda0f80516647ae482879527.png](https://i-blog.csdnimg.cn/blog_migrate/4306d51529b47c9cb974ac74fea3c946.png)
![f779cbe27da2f8b0eb2e0e783e6f3430.gif](https://i-blog.csdnimg.cn/blog_migrate/c43300fb08e255b1ef884b3d3f08b0a5.gif)
快捷键补充
Alt + F9 全文中【内容】和【域代码】互相切换,但不更新【内容】
Ctrl + F9 插入域代码花括号标注符
Shift + F9 选中文字【内容】和【域代码】互相切换,但不更新【内容】
F9 更新所选【域代码】显示的【内容】