跳转至

项目实现

实现思路说明

原计划是依靠一份 Markdown 依靠 Pandoc 完成论文输出,结果发现 Pandoc 对 docx 的输出有些一言难尽。标题、作者等元数据是硬编码在文档内的,这对我的处理工作产生了极大的困扰。

所以,我们会:

  1. 预处理:下载所需的依赖
  2. Pandoc 处理:通过 Pandoc 生成一份 docx 文档,依赖自定义的 filter.py 过滤器
  3. 后处理
    1. 使用 python-docx 在封面插入校徽
    2. 解包 docx 文档,解析 XML,删除第一个 \newSectionInNewPage 及其之前的全部内容;修改 Word 文档版式设定中的 字符间距控制 - 只压缩标点符号,这更符合中文的默认配置。

欲了解更多细节, 请移步 processer.py

模板文件样式说明

模板文件保存在 /assets/template 文件夹中,我们的程序会 Zip 打包该文件夹,并生成 template.docx 以供 Pandoc 使用。该节解释了 template.docx 模板文件内的各类样式,且给出了在 Markdown 中对应的写法。

本模板的样式中,中文采取黑体的地方,西文字体统一采用 Arial;中文采取宋体的地方,西文字体统一采用 Times New Roman。

以下所述“样式”,均满足了撰写规范[@ShaMenDa];当撰写规范未做出明确规定时,则采取我个人的撰写习惯与本人指导老师的习惯。

Title ZH

样式:小三号 Arial 字体加粗,居中

备注:仅需在元数据中修改对应字段,自动生成

Markdown 对应:无,适当位置插入 \abstract,修改元数据即可自动生成中文摘要

排版规范:

  • 中文论文题目

Abstract Title ZH

样式:四号黑体并加方括号

备注:仅需在元数据中修改对应字段,自动生成

Markdown 对应:无,适当位置插入 \abstract,修改元数据即可自动生成中文摘要

排版规范:

  • 中文摘要标题
  • 中文关键词标题

Abstract Content ZH

样式:小四号宋体

备注:仅需在元数据中修改对应字段,自动生成

Markdown 对应:无,适当位置插入 \abstract,修改元数据即可自动生成中文摘要

排版规范:

  • 中文摘要内容

Title EN

样式:小三号 Arial 字体加粗,居中

备注:仅需在元数据中修改对应字段,自动生成

Markdown 对应:无,适当位置插入 \abstractEn,修改元数据即可自动生成英文摘要

排版规范:

  • 英文论文题目

Abstract Title EN

样式:小四号 Arial 字体,加粗并加方括号

备注:仅需在元数据中修改对应字段,自动生成

Markdown 对应:无,适当位置插入 \abstractEn,修改元数据即可自动生成英文摘要

排版规范:

  • 英文摘要标题
  • 英文关键词标题

Abstract Content EN

样式:五号 Arial 字体

备注:仅需在元数据中修改对应字段,自动生成

Markdown 对应:无,适当位置插入 \abstractEn,修改元数据即可自动生成中文摘要

排版规范:

  • 英文摘要内容

标题 1

样式:小三号黑体

备注:排版规范中未要求居中,但实践中都居中处理。故模板亦设置为居中对齐

Markdown 对应:一级标题(H1)

排版规范:

  • 第一级标题

标题 2

样式:四号黑体

备注:左对齐

Markdown 对应:二级标题(H2)

排版规范:

  • 第二级标题

标题 3-9

样式:小四号宋体

备注:左对齐

Markdown 对应:3-6 级标题(H3-6)

排版规范:

  • 第三级起标题

正文文本、First Paragraph

样式:小四号宋体,每段首行缩进 2 字符,行高固定值 20 磅

备注:无

Markdown 对应:段落

排版规范:

  • 引言内容
  • 正文
  • 结论内容
  • 致谢语内容
  • 附录内容

Introduction Title Like

样式:四号黑体,居中

备注:由过滤器自动实现引言、致谢、参考文献的“另起一页,标题和内容之间空两行”之效果;附录则仅应用样式

Markdown 对应:一级标题(H1)。标题内容仅可取值为:引言、致谢、致谢语、参考文献、附录

排版规范:

  • 引言
  • 致谢语标题
  • 参考文献标题
  • 附录标题

Conclusion Title

样式:四号宋体,居中

备注:

Markdown 对应:一级标题(H1)。标题内容仅可取值为:结论、总结

排版规范:

  • 结论标题

Reference Content / 书目

样式:五号宋体,左顶格,两端对齐

备注:由过滤器自动实现“五号宋体,左顶格”之效果

Markdown 对应:一级标题(H1)。

排版规范:

  • 参考文献内容

Table caption、Image Caption

样式:五号宋体、Times New Roman,居中,段落间距:段前: 3 磅、段后: 3 磅

备注:该样式并未在撰写规范中详细注明。

Markdown 对应:参阅图片及自动标号表格及自动标号

Table

样式:五号宋体、Times New Roman,居中;段落间距:段后: 10 磅;单倍行距,单元格内左对齐;不允许跨页断行、标题行在各页顶端重复出现;具体表现为“三线表”样式

备注:该样式并未在撰写规范中详细注明。

Markdown 对应:Markdown 表格

Captioned Figure

样式:五号宋体、Times New Roman,居中;段落间距:段前: 3 磅、段后: 3 磅;行距最小值 20 磅

备注:该样式并未在撰写规范中详细注明。该样式为插入图片所用。

Markdown 对应:Markdown 图片

超链接

样式:颜色设置为“自动”

备注:该样式并未在撰写规范中详细注明。

Markdown 对应:Markdown 超链接

Verbatim Char

样式:Consolas,小四

备注:该样式并未在撰写规范中详细注明。为 Markdown 行内代码块所用。

Markdown 对应:Markdown 行内代码块