Files
dsProject/dsAiTeachingModel/upload_file/2.md
2025-08-15 08:54:53 +08:00

134 lines
8.8 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

> 大多数 Markdown 笔记应用程序使用 Pandoc 将笔记转换为 Word 文档例如我主要使用的思源笔记。然而Pandoc 默认导出的 Word 文档样式往往不美观,不符合中文排版习惯。
>
> 幸运的是pandoc 可以自定义 Word 模板用于导出时的自动格式化以美化文档但是很奇怪的是全网很少有人分享自己是如何具体制作模板的就算提到也只是泛泛而谈。我自己在制作模板中遇到很多问题比如怎么设置表格样式、怎么设置列表样式。2023 年 12 月 15 日,我终于突然解决了设置模板的有序列表和无序列表样式问题,使得自己的模板很大程度可用了,所以分享下目前在用的 word 模板,也当做一个抛砖引用,希望有更多人能分享自己的模板!😁
## 前排
- 本模板仅在Windows端的Office Word进行测试可能不适合**WPS**和**苹果端的Office**。
- 自己使用时可以把模板文件内容清空以减小导出word的文件大小。
## 样式预览
pandoc 不设置模板导出 docx 的样式
![](https://raw.githubusercontent.com/Achuan-2/PicBed/pic/assets/20231215114447-2023-12-15.png)
设置本模板导出 docx 的样式
![](https://raw.githubusercontent.com/Achuan-2/PicBed/pic/assets/20231215114500-2023-12-15.png)
## 模板介绍
- 标题编号 or 不编号
- 列表第二行缩进 or 列表第二行顶格
- 列表第二行缩进
![1705299592624Snipaste_2024-01-15_14-19-46.png](https://fastly.jsdelivr.net/gh/Achuan-2/PicBed@pic/assets/1705299592624Snipaste_2024-01-15_14-19-46.png)
- 列表第二行顶格效果
![1705299404618Snipaste_2024-01-15_14-16-34.png](https://fastly.jsdelivr.net/gh/Achuan-2/PicBed@pic/assets/1705299404618Snipaste_2024-01-15_14-16-34.png)
- 可设置代码块高亮样式 or 不可设置代码块高亮样式
- 不可设置代码块高亮样式默认高亮样式为pygments由于带有Tok为结尾的样式无法使用--highlight-style参数设置代码块高亮样式
- 可设置代码块高亮样式的模板没有带有Tok样式可以使用--highlight-style参数设置代码块高亮样式
- pandoc 相关链接:[When pandoc sets a Word template, it cannot set highlight-style · Issue #10896 · jgm/pandoc](https://github.com/jgm/pandoc/issues/10896)
## 如何使用此模板
以思源笔记为例,在【设置】-【导出】-【导出 Word .docx模板路径】设置模板文件地址即可。
![](https://raw.githubusercontent.com/Achuan-2/PicBed/pic/assets/20231215114355-2023-12-15.png)
其他笔记软件请自行探索pandoc是通过 `--reference-doc `参数设置模板路径的,可以用命令行调用下面命令:
```bash
pandoc --reference-doc template.docx -s input.md -o output.docx
```
pandoc默认的图片标题是alt文本如果要修改图片标题为title文本而不是alt文本请用
```bash
pandoc --reference-doc template.docx -s input.md -o output.docx --lua-filter image-title-to-caption.lua
```
相关博客https://www.achuan-2.top/post/pandoc-exports-markdown-as-docx-how-to-modify-image-title-to-title-text-instead-of-alt-text-19kkpr.html
## 如何修改此模板
注意要修改模板需要更改每个类型对应的Word的样式而不是只是自己改改当前内容的样式就能work的。
### 一般样式
一般样式只需要打开word的样式面板鼠标点击改行自动显示对应的样式然后点击【修改】根据自己的需求修改样式就可以了
一般样式如下:
| 样式名 | 描述 | 默认样式 |
| :------------------: | :------------------: | :-----------------------------------------------------------------------------------: |
| 正文文本 | 在正文段落中应用 | 首行缩进,<br />字号小四中文字体为宋体英文Times New Roman<br /> |
| First Paragraph | 段落首段 | 首行缩进,<br />字号小四中文字体为宋体英文Times New Roman<br /> |
| Compact | 表格单元格、列表样式 | 字号10中文字体为宋体英文Times New Roman |
| Heading 1标题1 | 一级标题 | 字号小二加粗中文字体为黑体英文Times New Roman<br />段前24 磅段后24 磅<br /> |
| Heading 2标题2 | 二级标题 | 字号三号加粗中文字体为黑体英文Times New Roman |
| Heading 3标题3 | 三级标题 | 字号13加粗中文字体为黑体英文Times New Roman |
| Heading 4标题4 | 四级标题 | 字号小四中文字体为黑体英文Times New Roman |
| Heading 5标题5 | 五级标题 | 字号小四中文字体为黑体英文Times New Roman |
| Heading 6标题6 | 六级标题 | 字号小四中文字体为黑体英文Times New Roman |
| Block Text文本块 | 引述块样式 | 四周添加1磅边框左侧设置为6磅粗边框 |
| Source Code | 行内代码和代码块样式 | 四周添加1磅边框 |
修改表格样式和列表样式比较特殊
### 表格样式
修改表格需要点击表格后,在【表设计】下拉,点击【修改表格样式】,进行修改
![image](https://raw.githubusercontent.com/Achuan-2/PicBed/pic/assets/202312150014846.png)
### 列表样式
#### 修改列表层级样式
> 所谓的层级样式是无序列表不同层级是圆点还是方块,有序列表则是不同层级的编号格式。
在下图①的位置点击,可以看到列表样式有两个样式,分别对应无序列表和有序列表样式,右键修改。
![image](https://raw.githubusercontent.com/Achuan-2/PicBed/pic/assets/202312150014078.png)
![image](https://raw.githubusercontent.com/Achuan-2/PicBed/pic/assets/202312150014745.png)
#### 修改列表缩进
鼠标点击列表所在行,右键点击【调整列表缩进】,选择【设置所有级别】
![image](https://raw.githubusercontent.com/Achuan-2/PicBed/pic/assets/202312150014510.png)
### 代码块高亮样式
当使用--highlight-style xxx参数导出时代码块的高亮样式会根据 xxx 的值来决定。pandoc 支持多种高亮样式,如 pygments、breezeDark、tango、zenburn 等。
具体见[pandoc_highlight](https://github.com/kaityo256/pandoc_highlight).
如果发现代码块高亮样式无法修改可能是因为word模板的样式包含代码高亮样式导致无法修改。可以尝试删除模板中的代码高亮样式Source Code以及所有Tok结尾的样式然后重新导出。
![1749176940350PixPin_2025-06-06_10-28-00.png](https://fastly.jsdelivr.net/gh/Achuan-2/PicBed@pic/assets/1749176940350PixPin_2025-06-06_10-28-00.png)
## 模板已知问题
1. 如果使用WPS打开基于模板导出的文档可能存在兼容性问题建议还是用Office Word打开
2. 图片无法自动居中,另外注意图片添加题注要居中的话,必须先让图片居中,再添加题注。
3. 模板可以做到表格整体居中但是表格单元格自动居中需要思源笔记文档中的表格本身先设置居中否则不居中。这是因为markdown表格默认是居左的markdown的居中语法如下
```markdown
| header 1 | header 2 |
| :------: | :------: |
| cell 1 | cell 2 |
| cell 3 | cell 4 |
| cell 5 | cell 6 |
```
## 我的探索过程记录
1. 有序列表和无序列表可以基于模板改动项目符号,老实说这是我误打误撞搞出来的😂……目前自己都没能复现,所以大家不想折腾,还是基于本模板改动,且用且珍惜(如果有知道怎么复现的,欢迎指教🙏)。
2. 有序列表和无序列表的行间距调整每个列表项的间距与【正文】样式的行间距有关此外列表项的子文本段落也是正文样式而不是【正文文本样式】一般段落其实是【First Paragraph】、【正文文本】样式所以需要调整列表行间距而改动【正文】样式是不太影响正文的不过需要注意【First Paragraph】、【正文文本】样式都是基于【正文】样式改动的。为了让列表更美观我把【正文】样式设置为1.5倍行距不设置段前和段后距离【First Paragraph】、【正文文本】会设置段前和段后距离