<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>排版 on 个人技术随想</title>
        <link>https://www.dhao2001.com/categories/%E6%8E%92%E7%89%88/</link>
        <description>Recent content in 排版 on 个人技术随想</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>zh</language>
        <lastBuildDate>Wed, 05 Mar 2025 12:00:00 +0800</lastBuildDate><atom:link href="https://www.dhao2001.com/categories/%E6%8E%92%E7%89%88/index.xml" rel="self" type="application/rss+xml" /><item>
            <title>使用Pandoc将Markdown转换成PDF文档</title>
            <link>https://www.dhao2001.com/2025/03/05/markdown-to-pdf-with-pandoc/</link>
            <pubDate>Wed, 05 Mar 2025 12:00:00 +0800</pubDate>
            <guid>https://www.dhao2001.com/2025/03/05/markdown-to-pdf-with-pandoc/</guid>
            <description>&lt;p&gt;对于按段落组织的文档来说，Markdown可以说是最易于排版和使用的格式了，同时兼具机器可读性与人类可读性。&lt;/p&gt;&#xA;&lt;p&gt;那么，在一些情况下，我们可能会希望将Markdown转换成PDF文档，方便打印也好方便传输也好，这个需求或许并不少见。&lt;/p&gt;&#xA;&lt;p&gt;这篇文章将介绍如何使用工具Pandoc，借助LaTeX将Markdown转换为PDF文档。&lt;/p&gt;&#xA;&lt;!-- more --&gt;&#xA;&lt;blockquote class=&#34;alert alert-note&#34;&gt;&#xA;        &lt;div class=&#34;alert-header&#34;&gt;&#xA;            &lt;span class=&#34;alert-icon&#34;&gt;📝&lt;/span&gt;&#xA;            &lt;span class=&#34;alert-title&#34;&gt;备注&lt;/span&gt;&#xA;        &lt;/div&gt;&#xA;        &lt;div class=&#34;alert-body&#34;&gt;&#xA;            &lt;p&gt;&lt;strong&gt;值得一看的新项目: Typst&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/typst/typst&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;Typst&lt;/a&gt;大体上基于Markdown语法撰写文档，同时提供了许多额外命令调整格式等，且程序性能远远快于LaTeX。就私人文档与只提交PDF的简单排版场景来说，Typst无疑是LaTeX之外的一个不错选择。&lt;/p&gt;&#xA;&lt;p&gt;Typst似乎目前的最大局限性在于，许多出版商要求最终提交Word或LaTeX工程文件。截止2025年2月，Typst暂时没有被主流出版商接受，也似乎暂时没有成熟的转换为LaTeX的方案。&lt;/p&gt;&#xA;        &lt;/div&gt;&#xA;    &lt;/blockquote&gt;&#xA;&lt;h2 id=&#34;工具选择&#34;&gt;&lt;a href=&#34;#%e5%b7%a5%e5%85%b7%e9%80%89%e6%8b%a9&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;工具选择&#xA;&lt;/h2&gt;&lt;p&gt;虽然我们介绍的方法是基于&lt;a class=&#34;link&#34; href=&#34;https://pandoc.org/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;pandoc&lt;/a&gt;和LaTeX的，但其实条条大路通罗马，想要实现Markdown至PDF的转换并非只有这一条路。只要思想不滑坡，办法总比困难多。&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;本文介绍的方法，使用pandoc与LaTeX进行转换。可能效果是最好的，但也是最费事的。&lt;/li&gt;&#xA;&lt;li&gt;由于Markdown到HTML的渲染工具极其丰富且高效，因此可以直接找个在线转换工具，将Markdown转成HTML，再用浏览器打开HTML，打印网页为PDF。&lt;/li&gt;&#xA;&lt;li&gt;把Markdown导入到WPS云文档、飞书、Google Docs等任意在线文档中，再导出成PDF（没想到吧！）。&lt;/li&gt;&#xA;&lt;li&gt;如果没有特殊文本格式要求，直接把Markdown全文复制粘贴到Word中，导出（最鸡肋的一条）。&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;h2 id=&#34;why-pandoc&#34;&gt;&lt;a href=&#34;#why-pandoc&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;Why Pandoc?&#xA;&lt;/h2&gt;&lt;p&gt;为啥我们在通往罗马的条条大路里，选了最费事的一条呢？因为：&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;这条路径涉及到的工具完全开源，完全可控地运行在本地。&lt;/li&gt;&#xA;&lt;li&gt;提供了非常多的可配置参数，（理论上）可以任意配置导出PDF的格式，字体、边距啥的都不在话下。&lt;/li&gt;&#xA;&lt;li&gt;吃饱了闲的。&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;但甜蜜常常是痛苦的来源，这一套方案麻烦就麻烦在，需要考虑的事情比较多，比较麻烦，不是开箱即用的方案。&lt;/p&gt;&#xA;&lt;p&gt;如果你还有兴致继续研究，让我们往下看吧。&lt;/p&gt;&#xA;&lt;h2 id=&#34;环境配置&#34;&gt;&lt;a href=&#34;#%e7%8e%af%e5%a2%83%e9%85%8d%e7%bd%ae&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;环境配置&#xA;&lt;/h2&gt;&lt;p&gt;环境配置之前需要先稍稍解释一下Pandoc+LaTeX方案的原理。&lt;/p&gt;&#xA;&lt;p&gt;Pandoc是如何将Markdown转换成PDF的呢？实际上可以理解成两个步骤：&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Pandoc将Markdown转换成TeX文件。&lt;/li&gt;&#xA;&lt;li&gt;Pandoc再调用LaTeX组件根据第一步生成的TeX文件进一步生成PDF文件。&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;那么，很显然，我们需要安装的软件就是：&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://pandoc.org/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;Pandoc&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;LaTeX发行版(&lt;a class=&#34;link&#34; href=&#34;https://www.tug.org/texlive/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;TeXLive&lt;/a&gt;，或者&lt;a class=&#34;link&#34; href=&#34;https://miktex.org/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;MiKTex&lt;/a&gt;，或者其他啥都好)&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;如果有将 &lt;strong&gt;含有中文字符（中日韩语言字符）&lt;/strong&gt; 的文档转换成PDF的需要，那么在安装LaTeX时，&lt;strong&gt;请记得安装&lt;code&gt;xelatex&lt;/code&gt;组件&lt;/strong&gt;（除非你打算折腾&lt;em&gt;ctex&lt;/em&gt;）。&lt;/p&gt;&#xA;&lt;h2 id=&#34;准备markdown&#34;&gt;&lt;a href=&#34;#%e5%87%86%e5%a4%87markdown&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;准备Markdown&#xA;&lt;/h2&gt;&lt;p&gt;接下来，需要先准备好要转换的Markdown文档。文档的主要内容可以都保持不变，只需要向Markdown文件开头添加一个&lt;a class=&#34;link&#34; href=&#34;https://pandoc.org/MANUAL.html#metadata-blocks&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;YAML Metadata&lt;/a&gt;块，填入文章相关的一些信息如主标题、作者、日期等，这样生成的文档中就会像学术论文一样包含这些信息。&lt;/p&gt;&#xA;&lt;p&gt;举个例子：&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;&#xA;&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;12&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;13&#xA;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#xA;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-md&#34; data-lang=&#34;md&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nn&#34;&gt;---&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nt&#34;&gt;title&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;文章的主标题&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nt&#34;&gt;author&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;作者名称&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nt&#34;&gt;date&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;March 01, 2025&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nn&#34;&gt;---&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;gh&#34;&gt;# 第一章&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;这是第一章的内容。&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;gu&#34;&gt;## 第一小节&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;这是第一小节的内容。&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&lt;p&gt;上面的例子中，两行&lt;code&gt;---&lt;/code&gt;围住的，就是这个Markdown文件的&lt;em&gt;Metadata&lt;/em&gt;块，这些信息将被传递给Pandoc的LaTeX模板，以生成LaTeX文件。&lt;/p&gt;&#xA;&lt;p&gt;有哪些信息可以通过&lt;em&gt;Metadata&lt;/em&gt;块进行传递呢？这取决于使用的模板文件。例如，转换成LaTeX的默认模板可见&lt;a class=&#34;link&#34; href=&#34;https://github.com/jgm/pandoc-templates/blob/master/default.latex&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;default.latex&lt;/a&gt;，有需要的可以进一步研究。&lt;/p&gt;&#xA;&lt;h2 id=&#34;小试牛刀&#34;&gt;&lt;a href=&#34;#%e5%b0%8f%e8%af%95%e7%89%9b%e5%88%80&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;小试牛刀&#xA;&lt;/h2&gt;&lt;p&gt;好了，软件都装好了，Markdown文件也准备好了，那应该就可以开心地转换了吧？&lt;/p&gt;&#xA;&lt;p&gt;&lt;code&gt;pandoc&lt;/code&gt;命令并不复杂，如果输入的Markdown文件是&lt;code&gt;input.md&lt;/code&gt;，期望输出的文件名是&lt;code&gt;output.pdf&lt;/code&gt;，那么命令就是：&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;&#xA;&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1&#xA;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#xA;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;pandoc input.md -o output.pdf&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&lt;p&gt;执行命令，轰，报错了，怎么回事呢？&lt;/p&gt;&#xA;&lt;h2 id=&#34;排错与常见问题&#34;&gt;&lt;a href=&#34;#%e6%8e%92%e9%94%99%e4%b8%8e%e5%b8%b8%e8%a7%81%e9%97%ae%e9%a2%98&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;排错与常见问题&#xA;&lt;/h2&gt;&lt;h3 id=&#34;latex-error-unicode-character&#34;&gt;&lt;a href=&#34;#latex-error-unicode-character&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;LaTeX Error: Unicode character&#xA;&lt;/h3&gt;&lt;p&gt;熟悉LaTeX的小伙伴都知道，常见的&lt;em&gt;pdfLaTeX&lt;/em&gt;是&lt;strong&gt;不支持中文字符&lt;/strong&gt;的。对中文字符（或者说中日韩文字）支持最好的，应当是&lt;em&gt;XeLaTeX&lt;/em&gt;，这一引擎可以直接使用系统中安装好的字体生成PDF。&lt;/p&gt;&#xA;&lt;p&gt;所以，我们要告诉Pandoc，使用&lt;code&gt;xelatex&lt;/code&gt;引擎为我们生成PDF文件。&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;&#xA;&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1&#xA;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#xA;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;pandoc input.md -o output.pdf --pdf-engine xelatex&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&lt;p&gt;但这还不够，Pandoc还是不太清楚怎么寻找中文字体，因此我们还要告诉Pandoc需要使用的中日韩文字字体。以思源宋体(&lt;em&gt;Source Han Serif SC&lt;/em&gt;)为例：&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;&#xA;&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1&#xA;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#xA;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;pandoc input.md -o output.pdf --pdf-engine xelatex -V &lt;span class=&#34;nv&#34;&gt;CJKmainfont&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;Source Han Serif SC&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&lt;p&gt;再次编译，生成的PDF文件就应该正确包含中文字符啦。&lt;/p&gt;&#xA;&lt;p&gt;除了在Pandoc命令中指定使用的字体，还可以通过Markdown文件中的&lt;em&gt;YAML Metadata&lt;/em&gt;块进行指定。以上命令等价于修改Markdown文档如下：&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;&#xA;&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;12&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;13&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;14&#xA;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#xA;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-md&#34; data-lang=&#34;md&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nn&#34;&gt;---&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nt&#34;&gt;title&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;文章的主标题&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nt&#34;&gt;author&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;作者名称&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nt&#34;&gt;date&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;March 01, 2025&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nt&#34;&gt;CJKmainfont&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;Source Han Serif SC&amp;#34;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nn&#34;&gt;---&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;gh&#34;&gt;# 第一章&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;这是第一章的内容。&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;gu&#34;&gt;## 第一小节&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;这是第一小节的内容。&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&lt;p&gt;事实上，通过&lt;em&gt;YAML Metadata&lt;/em&gt;块传递信息，与通过&lt;code&gt;pandoc&lt;/code&gt;命令的&lt;code&gt;-V&lt;/code&gt;参数传递信息，都是一样的，都是指定&lt;em&gt;template variables&lt;/em&gt;的一部分。LateX字体设置的默认模板可以见&lt;a class=&#34;link&#34; href=&#34;https://github.com/jgm/pandoc-templates/blob/master/font-settings.latex&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;font-settings.latex&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;pdf文件中文段落不换行&#34;&gt;&lt;a href=&#34;#pdf%e6%96%87%e4%bb%b6%e4%b8%ad%e6%96%87%e6%ae%b5%e8%90%bd%e4%b8%8d%e6%8d%a2%e8%a1%8c&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;PDF文件中文段落不换行&#xA;&lt;/h3&gt;&lt;p&gt;如果按照前面的步骤配置XeLaTeX和CJK字体，那么应该不会发生这一问题才是。&lt;/p&gt;&#xA;&lt;p&gt;但如果你在看到这篇文章前已经搜索了很长时间，并且你在其他人那得到的命令是通过&lt;code&gt;mainfont&lt;/code&gt;参数指定字体，那或许这就是原因。&lt;/p&gt;&#xA;&lt;p&gt;请你将&lt;code&gt;pandoc&lt;/code&gt;命令中的&lt;code&gt;-V mainfont&lt;/code&gt;替换成上一个小节中给出的&lt;code&gt;-V CJKmainfont&lt;/code&gt;，再次尝试。&lt;/p&gt;&#xA;&lt;p&gt;这似乎是最简洁的方案，不需要像很多博客那样下载额外的模板文件。&lt;/p&gt;&#xA;&lt;h3 id=&#34;pdf文件的外边距太宽&#34;&gt;&lt;a href=&#34;#pdf%e6%96%87%e4%bb%b6%e7%9a%84%e5%a4%96%e8%be%b9%e8%b7%9d%e5%a4%aa%e5%ae%bd&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;PDF文件的外边距太宽&#xA;&lt;/h3&gt;&lt;p&gt;默认LaTeX模板的外边距非常宽，一页PDF下来没有多少空间留给内容。想要修改PDF文件的边距，同样可以通过传递参数实现。&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;&#xA;&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6&#xA;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#xA;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-md&#34; data-lang=&#34;md&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nn&#34;&gt;---&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c&#34;&gt;# 其他template variables&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nt&#34;&gt;geometry&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;margin=2cm&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nn&#34;&gt;---&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;正文内容。&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;</description>
        </item></channel>
</rss>
