导出 #

Typora 支持你将当前文档导出为 PDF、HTML、HTML(无样式)和图像格式。

更多的格式(如 Word、RTF 等)通过 pandoc (opens new window) ,在你 install pandoc (opens new window) ,这些格式都支持开箱即用。

你可以从 文件导出 命令的菜单栏中访问导出命令。

使用上一次设置导出 #

你可以通过点击 文件导出使用上一次设置导出 菜单项,用以前成功的导出命令再次导出当前文件。

如果你想用以前的命令和较新的文件内容来导出并覆盖以前导出的文件,你可以点击 文件导出导出并覆盖上一次的导出文件。一个用例是,你可能把当前的 markdown 文件导出为 PDF 文件,但后来你发现有些内容丢失了或有些词拼错了,在你纠正 markdown 文件后,与其点击 PDF,重新选择导出的路径,你可以直接点击 导出并覆盖上一次的导出文件,这样较新的内容将被写入你以前导出的 PDF 文件。

导出设置 #

你可以在偏好设置中配置导出选项。

导出位置 #

你可以在偏好设置中的 导出通用默认的导出文件夹 中改变 Typora 的默认导出位置。

使用 Pandoc 导出 #

对于 HTML、PDF 和图片以外的格式,Typora 使用 pandoc (opens new window) 进行导出。Pandoc 也用于导入非 markdown 文件,如 word、rtf 等。

使用前请先 安装 pandoc (opens new window)

安装完毕后,请重新启动 Typora,在偏好设置中打开 导出通用,并手动配置 Pandoc 路径。

配置 "导出后" 选项 #

默认情况下,当导出成功时,Typora 将在 Typora 窗口内显示一个通知。当失败时,会弹出一个带有错误信息的错误对话框。

如果你想在导出后打开导出文件的文件夹位置,你可以在偏好设置中勾选 打开导出文件所在目录 。特定导出命令中的设置将覆盖 "常规" 部分的导出设置。

如果你想自动打开导出的文件,你可以在偏好设置中为特定的导出命令选中 打开导出文件

每个文件的配置 #

对于支持的配置,你可以在 YAML 前事项中定义它们,详情请见 YAML front matters (opens new window)

由于 markdown 文件可能是由其他人创建的,出于安全考虑,原生支持的格式(PDF/HTML)需要在导出偏好设置中启用 "读取和覆盖 YAML 前置事项的导出设置",然后 YAML 前置事项中的设置可以被使用并覆盖全局导出设置。

配置输出项目 #

在偏好设置的 导出 标签下,Typora 允许你定制你的导出项目,包括重新排序,重新命名导出项目,根据你的需要添加和删除导出项目。这些变化将被应用于 文件导出 菜单下的菜单项目。

内置选项(PDF、HTML、HTML(无样式)、图像)不允许重新排序、重命名或删除,对于其他选项,你可以做到。

重新选择导出项目 #

你可以在首选项板的列表面板中选择一个项目→ 导出,然后点击⬆︎或 ⬇︎按钮来改变订单。

重命名导出项目 #

你可以在首选项板的列表面板中选择一个项目→ 导出,然后点击 "编辑 "按钮来重新命名一个导出项目。

移除导出项目 #

你可以在首选项板→ 导出 的列表面板中选择一个项目,然后点击 "删除(-)"。按钮将其从 文件导出 菜单中删除。

添加新的导出项目 #

你可以根据 Typora 自己的导出器、pandoc 或自定义命令添加导出项目,以扩展 Typora 的导出功能,或者只是将预设的导出命令添加到 导出。你可以通过以下方式做到这一点。

  1. 点击列表面板中的 "添加(+)"按钮

  2. 从对话框中选择一个模板。

  3. 设置一个名称并配置。

然后你可以从 文件导出 菜单中使用。

你也可以给它指定一个快捷键,如下所示 https://support.typora.io/Shortcut-钥匙s/#change-shortcut-keys.

文件格式 #

HTML #

你可以从偏好设置中选择 导出HTML,配置 HTML 文件的导出选项。

如果你想导出一个没有样式的 HTML,你应该选择 导出HTML(不含样式)。,你将得到一个干净的 HTML 文件,这样你就可以添加你自己的样式。

概要 #

你可以通过在 导出HTML 的偏好设置中启用这个选项,在导出的 HTML 中包含大纲。它是可折叠的轮廓还是平面的轮廓取决于你当前的设置。你可以在 View 菜单下或在偏好设置的 appearance 部分中切换它们。你使用的 css 主题可能会影响导出文件中的轮廓行为,所以如果导出文件中的轮廓在某些第三方主题中不能正常工作,请禁用此选项。

添加自定义内容 #

你可以在 Append in <head/>Append in <body/> 中添加自定义内容,这些内容将被插入导出的 html 中的 <head/> 部分和 <body/> 部分。对于不能添加到 <head/> 中的内容,即使它被添加到 Append in <head/> 中,它也会被预置到 <body/> 中。对于 Append in <body/> 也是如此。

输出 YAML 元数据 #

<title><meta> 标签中的 ${title}${author} 等变量将被 YAML Front Matter (opens new window) 中定义的相应 variables (opens new window) 替换。

例如,你可以使用这些选项在导出的 html 中插入额外的 <meta> 数据或自定义 <style>,例如:

<meta charset="UTF-8">
<meta name="author" content="${author}">
<meta name="description" content="${description}">

要在其他地方使用这些变量,你可以在 Append in <body/>,以读取目标元标签,并按你的要求修改导出内容。

为每个文件添加内容。 #

你可以使用 append-headappend-bodyYAML Front Matter (opens new window) 覆盖全局设置,和/或添加 append-head-extraappend-body-extra 来追加 extra 的内容,除了在偏好设置中配置的内容。这些设置要求 "从 YAML 前台事务中读取和覆盖导出设置 "选项在当前的 HTML 导出项目中被启用。

修改主题 #

你可以在偏好设置的 HTML 导出中应用另一个主题。默认情况下,将使用当前的主题。

例子:导出时使用 VLOOK (opens new window) #

VLOOK ™ (opens new window) 是一个,并为 Typora 的 HTML 输出提供了很多改进。主题 Pack

通过使用它,你可以导出更多花哨的 HTML 文件。以下是基于当前导出功能的设置过程。

  1. 增加了一个新的 HTML 格式的导出命令,命名为 "vlook"。
  2. https://github.com/MadMaxChow/VLOOK/tree/master/released/theme (opens new window) 下安装 VLook 主题。
  3. 在导出→ vlook →主题中选择一个 VLook 主题。
  4. https://github.com/MadMaxChow/VLOOK/blob/master/released/plugin/plugin.txt (opens new window) 复制内容到 Append in <body/> 部分。
  5. 根据模板制作文件 (https://github.com/MadMaxChow/VLOOK/blob/master/released/VLOOK-Document-模板.md (opens new window))
  6. 从菜单栏中点击导出→ vlook,导出内容。

同样地,你可以通过改变所有这些配置来配置你自己的导出风格。

更多的 HTML 选项 #

你可以使用更多的选项,如设置 html 模板,导出为幻灯片等,通过添加 new export command based on Pandoc (opens new window)

HTML (without styles) #

你可以使用菜单栏中的导出命令 导出HTML (without styles),导出纯 HTML(没有样式)。

你可以通过在偏好设置中配置 Append in <head/>Append in <body/>,添加你自己的 css 样式、内容或 javascript。这些设置与 add custom contents in HTML (opens new window) 相同。

图片 #

宽度和字体大小 #

Typora 为社交媒体中的 Feeds 提供了图片导出选项,因此默认情况下是 640px 宽度,24px 字体大小。但你可以在偏好设置中改变这一点。

另外,根据这项功能的目的、整体性能和输出图像的最终大小,如果输出的文章太长,图像导出就会失败。

主题 #

你可以在偏好设置→导出→图像中选择另一个适用于导出图像的主题。默认情况下,将使用当前主题。

PDF #

你可以从偏好设置中选择 导出PDF,以配置 PDF 文件的导出选项,它提供的选项包括。

纸张尺寸 #

设置 paper size (A4、A5 等)或 custom size ,以及 page margins

注意:在 Windows/Linux 上

@media print {
  @page {
  	margin: 27mm 16mm 27mm 16mm;
	}
}

当"Margin"被设置为默认值时,将被尊重(但请取消对 #writebody,这也可能影响最终输出),在 macOS 上,它们被忽略。

Theme #

你可以在偏好设置→导出→ PDF 中选择另一个适用于导出 PDF 的主题。默认情况下,将使用当前主题。

请注意,在 Windows/Linux 版本上,only light themes are supported ,用于 PDF 导出,以及用于打印。

如果你只想做一些小的改动,there’s no need to specify new themes for PDF export,你可以简单地在 自定义 CSS (opens new window),添加 @media print {/* your css code */}

分页 #

当启用 "Page Break Between Top Headings"时,分页符将被插入由顶级标题划分的章节之间( h1),同时,分页符将被插入脚注定义之前。

注意

你可以在你的文件中输入,在该位置。<div style="page-break-after:always"/> manually add a page break

页眉/页脚 #

你可以添加自定义的标题和页脚导出的 PDF。例如,你可以设置 ${title} - ${author} 作为页眉,No. ${pageNo}/ ${pageCount} 作为页脚,导出的 PDF 是这样的。

你可以 download the sample PDF here (opens new window)

注意

当你想添加页眉或页脚时,请留下足够的空白。

注意

你也可以使用,在偏好设置中启用 "从 YAML 前事项中读取和覆盖导出设置 "选项后,设置每个文件的页眉/页脚。YAML 前面的事项样本是这样的。YAML Front Matter (opens new window)

---
header:
footer: Written in Typora
---

对于包含上述 YAML Font Matter 的 md 文件,在导出的 PDF 文件中,页眉将是空的,页脚将是 "用 Typora 书写"。

PDF 元数据 #

你可以通过 YAML Front Matter (opens new window) ,向导出的 PDF 文件添加元数据,以下是支持的 PDF 元数据。

---
title: Export in Typora
author: John Snow
creator: Typora inc.
subject: Tutorial
keywords: [Pandoc, Tutorial, Export]
---

注意

当 "keywords "不存在时,Typora 也会使用 "tags",你可以在 YAML 中使用具有相同空间缩进的列表来表示一个数组,例如。

---
tags:
    - Pandoc
    - Tutorial
    - Export
---

输出是

添加自定义内容 (PDF) #

PDF 版本是由 HTML 输出渲染的,你可以在偏好设置→ PDF →附加额外内容中添加 HTML 内容(包括脚本),当渲染生成的 HTML 到 PDF 时,这些内容将被附加在 <body>

例子:添加封面页 #

它可以通过在 Append Extra Content 字段中添加自定义的 html 内容来完成,一个简单的案例可能是使用以下内容。

<meta name="title" content="${title}">
<div id='_export_cover' style="height:100vh;">
  <div id='_export_title' style="margin-top: 25%;text-align: center;font-size: 3rem;">
  </div>
</div>
<script>
var $cover = document.querySelector("#_export_cover");
var title = document.querySelector("meta[name='title']").getAttribute("content");
if(!title || title == "${title}") {
  // no title
  $cover.remove();
} else {
  document.body.insertBefore($cover, document.body.childNodes[0])
  $cover.querySelector("#_export_title").textContent = title;
}
</script>

另一个选择是使用 LaTex/Pandoc 来生成 PDF,你可以看到下面的细节。

PDF (LaTeX / Pandoc) #

Typora 还支持你使用 Pandoc 和 LaTeX(或其他引擎)生成 PDF 文件。默认情况下,导出菜单中没有这样的选项,但你可以通过以下方式添加这个选项

  1. 打开偏好设置中的 导出 部分。
  2. 点击导出项目列表中的 "添加 "按钮,从模板选择器中选择 "PDF(LaTeX/Pandoc)",并点击 "确定"。

PDF 引擎 #

Pandoc 提供了许多制作 PDF 文件的引擎,包括 pdflatex、lualatex、xelatex、latexmk、tectonic、wkhtmltopdf、weasyprint、prince、context 和 pdfroff。你需要安装这些引擎之一,并将其添加到你的 PATH 中,或指定引擎的完整路径。你可以在偏好设置中配置这个。

详情请参考 https://pandoc.org/MANUAL.html#option–pdf-engine 。

注意

在 macOS 上,你可以安装,打开,查看二进制文件安装到哪里。在 Intel macOS 上,安装 MacTeX-2020 后,的路径可能是。MacTeX (opens new window) /Applications/TeX/Docs and Spell Utilities/Documents/What Is Installed.pdf pdflatex /usr/local/texlive/2020/bin/x86_64-darwin/pdftex

Template #

你也可以在偏好设置中指定模板选项,详细解释请参考 pandoc manual (opens new window)

元数据(其他选项) #

你可以在 YAML Front Matter (opens new window) 中添加元数据或额外的选项,详情请查看 https://pandoc.org/MANUAL.html#variables-for-latex (opens new window) ,它支持额外的选项,包括页边距、纸张大小、字体家族,等等。

例如,如果你选择 LaTeX 作为 PDF 引擎,你可以通过以下方式添加页脚和页眉

---
header-includes: |
    \usepackage{fancyhdr}
    \pagestyle{fancy}
    \fancyhead[CO,CE]{This is fancy}
    \fancyfoot[CO,CE]{So is this}
    \fancyfoot[LE,RO]{\thepage}
---

Word (.docx) #

你可以通过菜单栏中的 导出Word (.docx) 输出为 word 文件。你可以从 导出Word (.docx),在偏好设置上配置它。

风格模板 #

要创建你的 docx 输出风格模板,你可以从命令行生成一个。(https://pandoc.org/MANUAL.html#option--reference-doc (opens new window))

pandoc -o custom-reference.docx --print-default-data-file reference.docx.

然后在 Word 中打开 custom-reference.docx,按你的意愿修改样式,并保存文件。为了获得最佳效果,除了修改 pandoc 使用的样式外,不要对该文件进行修改。

你可以阅读更多细节 here (opens new window)

OpenOffice (.odt) #

你可以通过菜单栏的 导出OpenOffice 输出到 OpenOffice 文件。你可以从 导出OpenOffice,在偏好设置上配置它。

Template #

你可以在 pandoc manual (opens new window) ,你可以下载样本模板 default.opendocument (opens new window) 。https://github.com/jgm/pandoc-templates.

RTF #

RTF(富文本格式)是由 TextEdit.app 或 WordPad.exe 保存的格式。你可以通过菜单栏的 导出RTF 输出为 RTF 文件。你可以从 导出RTF 在偏好设置上配置它。

Epub #

你可以通过菜单栏的 导出Epub,导出为 RTF 文件。你可以从 导出Epub,在偏好设置上配置它。

Custom CSS #

你可以从偏好设置设置自定义 css,如果你不知道如何开始,你可以查看 https://github.com/mattharrison/epub-css-starter-kit ,制作你自己的 css 样式。

章节 #

指定将 EPUB 分成独立 "章节" 文件的标题级别。默认情况是在第 1 级标题下分割成各章。这个选项只影响 EPUB 的内部组成,而不是向用户显示章节的方式。如果章节文件太大,一些读者可能会很慢,所以对于很少有一级标题的大文件,可能要使用 2 或 3 级的章节级别。

封面图片 #

YAML Front Matter (opens new window) 如果你想在 pub 输出前定义一个封面图片,请在 cover-image: ${path}。如果它以 ./,Typora 将转换为相对于当前 md 文件的绝对路径,否则,它应该是绝对路径,否则 pandoc 将尝试在其 data-dir (opens new window)

元数据 #

你可以使用 YAML Front Matter (opens new window) ,在输出的 epub 文件上设置肉类数据,比如说。

---
title: My Book
subtitle: An investigation of metadata
creator: Sarah Jones
identifier: doi:10.234234.234/33
publisher:  My Press
rights: © 2007 John Smith, CC BY-NC
ibooks:
  version: 1.3.4
---

你可以找到 more detail here (opens new window)

LaTeX #

元数据(其他选项) #

Meta Data for PDF (LaTeX / Pandoc) (opens new window) 相同,你可以在 YAML Front Matter (opens new window) 中添加元数据或额外的选项。请检查 https://pandoc.org/MANUAL.html#variables-for-latex.

在 LaTeX 标题中添加额外内容 #

你可以在 header-includeslatex_headerlatex_header_extra 中使用 YAML Front Matter (opens new window)

比如说。

---
latex_header: |
    \usepackage[utf8]{inputenc}
    \usepackage[italian]{babel}
    \author{The Author}
    \date{2016}
    \title{The Title}
    \editor{The Editor}
classoption:
- twocolumn
- landscape
---

Wiki #

Media Wiki #

你可以通过菜单栏的 导出Media Wiki 输出到 OpenOffice 文件。你可以从 导出Media Wiki,在偏好设置上配置它。

其他 Wiki 格式 #

请参考 使用 Pandoc 的其他格式 (opens new window) ,你可以用 pandoc 将 markdown 文件转换成其他 wiki 格式。

reStructuredText (RST, ReST, or reST) #

你可以通过菜单栏的 导出reStructuredText 输出到 OpenOffice 文件。你可以从 导出reStructuredText,在偏好设置上配置它。

Textile #

你可以通过菜单栏的 导出Textile 输出到 OpenOffice 文件。你可以从 导出Textile,在偏好设置上配置它。

OPML #

你可以通过菜单栏的 导出OPML 输出到 OpenOffice 文件。你可以从 导出OPML,在偏好设置上配置它。

其他标记规格 #

你可以按照 Other Formats Using Pandoc (opens new window) ,使用模板 "Markdown (Other Spec) "添加新的导出目标。详情请见 check here (opens new window)

你还可以改变导出的 markdown 文件的选项,包括换行、行宽、缩进、unicode 等。

请注意"导出 "不是 "重新格式化",它将 "代表 "同样的东西,但其字面内容可能会改变。比如说。

[linke][typora]

[typora]: http://www.typora.io

导出后可能成为以下内容。

[linke](http://www.typora.io)

你可以将 line width (opens new window),end of line (opens new window),indent (opens new window),only allow unicode characters (opens new window), 和 other options (opens new window) 作为导出配置。

Other Formats Using Pandoc #

如果你想把当前文档导出为 pandoc 支持的格式,但不包括在 Typora 的导出菜单中,你可以在偏好设置中配置这样一个选项。

下面是一个提供基于自定义 pandoc 导出选项的揭示导出选项的例子。

首先,请选择 "Pandoc "模板添加一条导出命令,然后根据你的需求添加配置。

目标格式 #

你可以不填这个字段,那么 pandoc 会根据导出的文件名来转换你的文档。例如,如果你导出到 MyName.docx,这时 pandoc 将自动把文档导出到 Word 格式。

你也可以指定一种格式,关于可能的选项,请参考 https://pandoc.org/MANUAL.html#option--to (opens new window)

目标文件扩展名 #

当导出时,Typora 会弹出一个保存面板,询问在哪里保存导出的文件。所以请使用这个设置来设置首选的文件扩展名,当不需要首选的文件扩展名时,请把它留空。你可以设置空白作为分隔符,例如。

.latex .tex

原始类型 #

对于 pandoc 不支持的语法,typora 可以使用原始类型作为变通方法。

例如,pandoc 中的原生数据模型不能表示 [toc],因为 pandoc 中没有块类型 TOC。在这种情况下,如果你把原始类型设置为 media wiki,Typora 在导出时将使用 __TOC__ 语法,如果把原始类型设置为 latex,Typora 将使用 \\tableofcontents,等等。

通常情况下,原始类型和目标格式应该是相同的,对于基于 html 的格式,如 markdown、revealjs 等。

并请注意,即使设置了原始类型,"导出 "功能也不能导出所有样式。

为 Pandoc 获取导出的 AST #

为了确保 Typora 的 markdown 和 pandoc 的输出的解析规则是一样的。Typora 将首先转换为 pandoc AST(抽象语法树),保存为 native 格式(见 https://pandoc.org/MANUAL.html#option--from (opens new window) 下的 native),然后导出为目标格式。你可以通过在一个自定义的 pandoc 导出选项中选择 "native "作为目标格式来获得本地文件。

使用自定义命令的其他格式 #

你也可以根据命令行命令添加导出选项。你将需要配置。

显示保存文件对话框 #

你可以改变这个设置,告诉 Typora 是否需要弹出一个保存文件的对话框,或者弹出一个文件夹选择对话框,或者不需要输出路径。

目标文件扩展名 #

当在 "显示保存文件对话框 "中选择 Select file path to save,你可以使用这个文件来确定哪些文件扩展名是允许导出的文件目标。

输出后显示命令输出 #

除了 Open exported file locationOpen exported file location,对于基于自定义命令的输出选项,typora 还提供一个 Show command output 选项。当启用时,typora 将显示包含命令输出的对话框(来自 stdout)。即使它没有被启用,当导出失败时,来自命令行的错误信息将始终被显示。

故障处理 #

要求 Pandoc 继续... #

这通常发生在 Pandoc 没有安装或 Typora 无法检测到 Pandoc 路径的情况下,请尝试如下。

  1. 安装 pandoc (opens new window)
  2. 在新安装 pandoc 后,重新启动 Typora。
  3. 如果还是不行,在 导出General,从偏好设置中手动设置 pandoc 路径。

Export PDF not working on Windows #

  1. 打开。
  2. 搜索服务,并点击最上面的结果,打开控制台。
  3. 搜索 "Print Spooler "并启动它,然后点击 "应用 "和 "确定"。

https://github.com/typora/typora-issues/issues/3766 (opens new window)

使用 pandoc 导出时,"无法读取本地"。 #

这通常是 Typora 方面的 bug,请向我们报告:[email protected],并附上样本 .md,以及你使用的 pandoc 版本、目标导出格式和其他必要的导出配置等信息。

其他 pandoc 的错误 #

当导出失败时,错误对话框会显示 pandoc 命令行参数和错误信息。你可以复制这些参数,用 markdown 文件路径替换"-f native",然后在 CMD(命令行)或终端输入这些参数,在没有 Typora 的情况下测试。

在导出的 PDF 中,连续的空白或断行都消失了 #

这与 Markdown 的空白和换行规范有关。你可以在 MarkdownWhitespace/ Line BreakExport/ Print 的首选项中进行修改,以便在导出时启用 "保留空白和单行断裂"。有关细节,请查看 typora 中的 Whitespace and Line Breaks (opens new window)

Env: node: No such file or directory #

如果你使用自定义命令,如 node xxx,请确保 node 在你的系统中 PATH。或者你可以指定节点命令的完整路径。你可以通过在你的 shell 中输入 which nodewhere node 来找到你的节点路径,以定位节点 bin 的位置。