# markdown2docx **Repository Path**: wangqsooooo/markdown2docx ## Basic Information - **Project Name**: markdown2docx - **Description**: 使用Pandoc将markdown文件转换为浙江大学硕博士论文样式的docx文件 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2024-09-25 - **Last Updated**: 2025-06-18 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 使用Pandoc完成Markdown转Docx ## 目的与意义 Microsoft Word的版本管理是历来是一个令人头疼的问题。现尝试使用Markdown来编辑文字,然后使用Pandoc完成Markdown转docx的任务,其一是方便利用git进行版本管理,其二是可以实现内容与格式相分离。Word的格式可以通过"custom-reference.docx"文件进行设置,通过修改"样式"即可方便地对格式进行修改。 鉴于Markdown是一种轻量级标记语言,很多Word所拥有的格式在Markdown中无法实现,因此需要借助许多小工具。 "[pandoc-crossref.exe](https://github.com/lierdakil/pandoc-crossref)"是一个用于Pandoc的过滤器,专门用于对图表、公式和表格进行编号,并实现对这些元素的交叉引用。 "gb-t-7714-2015-numeric-bilingual-no-uppercase-no-url-doi"是参考文献样式,对于中文博士论文的文献引用,是基于GB/T 7714-2015标准的。 "rsbc.lua"是一个用于Pandoc的lua过滤器脚本,其主要功能是删除文献引用时在Markdown中插入的多余的空格,该过滤器脚本见Pandoc官方文档"[Lua filters](https://pandoc.org/lua-filters.html#)"中的"Remove spaces before citations"章节。 "metadata.yaml"是用来配置Markdown的一些元信息的YAML脚本。 ## 使用方法 将需要转换的Markdown文件复制入该文件夹中。双击"markdown2docx.bat"文件,在弹出的窗口中输入所需要转换的Markdown文件的名字,即可得到"output.docx"输出文件。 这里给出了一个示例文件:Demo_UsePandoc.md。双击"markdown2docx.bat"文件,并输入"Demo_UsePandoc.md"可以看到其转换的效果。 ## 缺陷 Pandoc是一个用于从一种标记格式转换为另一种标记格式的Haskell库,也是一个使用该库的命令行工具。其能够做到的事情有限,而且提供给用户自我编辑的空间比较小(可以通过filter或者lua-filter过滤器进行,学习成本较高)。 目前从Markdown转换为Docx时,在格式上面仍然有以下的缺陷: 1. 表格内容样式和无序列表样式均为"compact",两者不能兼得。按照以往师兄的博士论文格式,表格文字比正文字号要小,而且是居中的。如果完全按照表格的格式对"custom-reference.docx"的样式进行修改,那么无序列表的显示就非常难看。目前是将"compact"样式修改为:字号设置为10.5,比正文12号稍小,但是设置为左对齐。这样设置后,转换后Word文件的表格的样式仍然需要微调。 2. "custom-reference.docx"中设置的三线表样式无法正确应用到转换后的"output.docx"中,表格的最后一行没有正确显示下框线,其原因是:输出"output.docx"文件的"表设计"->"表格样式选项"->"汇总行"默认是没有被选中的。为了将表格设置为三线表,需要选中表格,将"表设计"->"表格样式选项"->"汇总行"打勾,然后就会显示出正确的三线表样式。