在我的理解里面,MD格式随着Git的兴起而被广泛的使用。它以简洁的语法来显示文档内容,相比较TXT文件,当然丰富得多,相比较与rtx文件,又简洁得多。

那如何在Windows平台上答应Markdown文件,当然不是原始文件,而是render之后的页面。

同时,如果在Markdown文件中,使用了Latex,那么打印更是个大问题。

以下是我尝试成功的方法:

  • 首先,安装Markdown PDF,查看页面
  • 配置该Extension。Markdown-PDF 执行文件的Executable Path。如果安装了Chrome:C:\Program Files\Google\Chrome\Application\Chrome.exe
  • 定义Template文件,该文件通常位于C:\Users\{your_windows_user}\.vscode\extensions\yzane.markdown-pdf-{version}\template\template.html
  • 在该Template文件的做如下增强(针对header),使用了Katex和Bootcdn.cn:
<link rel="stylesheet" href="https://cdn.bootcdn.net/ajax/libs/Katex/0.16.9/katex.min.css" >

<!-- The loading of KaTeX is deferred to speed up page rendering -->
<script src="https://cdn.bootcdn.net/ajax/libs/Katex/0.16.9/katex.min.js"></script>

<!-- To automatically render math in text elements, include the auto-render extension: -->
<script src="https://cdn.bootcdn.net/ajax/libs/Katex/0.16.9/contrib/auto-render.min.js"></script>
<script>
    document.addEventListener("DOMContentLoaded", function() {
        renderMathInElement(document.body, {
          // customised options
          // • auto-render specific keys, e.g.:
          delimiters: [
              {left: '$$', right: '$$', display: true},
              {left: '$', right: '$', display: false},
              {left: '\\(', right: '\\)', display: false},
              {left: '\\[', right: '\\]', display: true}
          ],
          // • rendering keys, e.g.:
          throwOnError : false
        });
    });
</script>

然后,在VS Code中,打开要打印的markdown文件,使用View > Command Palette,选择Markdown PDF: Export (PDF),该命令会在md文件所在文件夹生成一个同名的PDF文件。

该Export的过程,会首先创建一个temp文件,如a.md,会首先生成a_tmp.html,然后生成一个a.pdf

是为之记。
Alva Chien
2025.05.10