如何设置 Typora 以编辑 Markdown 并导出 PDF

:warning: 自2022年7月起,完整版Beta版本已停止运行。

Windows:请安装试用版,启动后无需打开任何文档,即可预先创建多个空白窗口。一旦打开第一个文件,将无法再创建新文档,因此建议在启动后立即使用 Ctrl+Shift+N 创建多个空白窗口,然后关闭“许可证信息”窗口。每个窗口只能使用一次,故建议一次性创建多个空白窗口。

Linux:使用 Ctrl+O 创建新窗口并打开文档功能正常 :sunglasses: ,无需预先准备多个空白窗口。

引言

:light_bulb: Typora — 最佳编辑器:

  • 用于编写 Markdown 源码
  • 支持导出为 PDF(详见下方设置)

您可以使用以下优势:

  • 可作为草稿使用,插入图片(离线保存!)、语法高亮代码和表格
  • 格式化需求极低
  • 插入文档内内容和交叉引用非常方便
  • 支持“文档即网页”模式 — 编辑嵌入图片,文档中图片同步更新
  • 不同文档可引用同一张图片
  • 格式通用且在 Typora、GitLab、GitHub、YouTrack、Proxmox Notes 描述中完全兼容
  • 几乎完全支持 GitLab、GitHub 的 Markdown 格式(以 readme.md 名称自动打开)
  • 在在线文档平台(如 Docsify)中高度兼容

安装

从官网 https://typora.io 下载,或通过 Choco 安装:

choco install typora --ignore-checksums --execution-timeout=300 --limit-output --no-progress --yes

Vue.js 主题

此主题与 Docsify 配合极佳,文档在 Docsify 中的外观及导出 PDF 的样式完全一致!

将文件放入:

~/.config/Typora/themes/

并放入以下文件:

vue (文件夹)
vue.css
vue_dark.css

完整主题包下载:
typora_themes.zip|附件 (3.1 MB)

设置页边距

页边距影响内容排版,一旦设置好,建议不要更改,以免破坏分页效果。

对于文档,推荐设置为:上边距10mm,下边距5mm,左边距10mm,右边距5mm。此设置下,部分打印机可能无法打印页码。

插入分页符(PDF)

若要强制插入分页符,请在标题前插入以下代码:

这样可生成便于打印的 PDF,内容按逻辑分页(表格自动分页)。

<div style="page-break-after: always;"></div>

:bust_in_silhouette:_手:请定期导出带有先前设置和重写后的文档,以获得分页正确的 PDF 文件:

图片显示程序中两个导出选项及其对应的快捷键。(AI生成的图注)

如需调整分页,可使用上述指定的分页符进行修正。

图片插入设置

请确保启用以下选项:

将图片复制到用户文件夹 = ./images/${filename}

这将允许您将图片复制到本地关联文件夹。若需将图片从临时文件夹移动到永久文件夹,请使用图片的上下文菜单“复制到 <文件夹>…”,其中“文件夹”名称应与文档名称一致(首次保存文档时自动创建)。

请注意空格和特殊字符!

Typora 可正确显示此类路径,但例如 Gitlab 则无法识别。此时需通过 Urlencoder 将特殊字符替换为编码形式:

     -    %20
!    -    %21
@    -    %40
#    -    %23
$    -    %24
%    -    %25
^    -    %5E
&    -    %26
*    -    %2A
(    -    %28
)    -    %29
<    -    %3C
>    -    %3E

支持扩展格式

请启用扩展格式支持:

代码块行号

在最新版本中,设置中新增了“为所有代码块添加行号”的选项。

如仅需在特定情况下显示行号,请在代码高亮语法中使用如下语法:

{.language-name .numberLines}

# 从指定行号开始编号
{.language-name .numberLines startFrom="start-value"}

移除标题间分页

在 Typora 0.11.7 及以上版本中,新增了“ 标题间分页”设置。请永久关闭此选项

建议添加页码(页脚):

${pageNo} / ${totalPages}

适用于 0.11.7 以下旧版本

在旧版本中:
Typora 默认在导出 PDF 时会在标题间添加分页符(page-break),这会破坏 PDF 页面布局。如需移除,请按以下路径操作:

菜单文件设置外观打开主题目录

路径:

C:\Users\xx\AppData\Roaming\Typora\themes

打开 github.css 文件,注释掉 @media_print 块,添加 CSS 注释符号 /**/

/*@media print {
    html {
        font-size: 13px;
    }
    table,
    pre {
        page-break-inside: avoid;
    }
    pre {
        word-wrap: break-word;
    }
}*/ 

重启 Typora。

表格跨页

在导出的 PDF 中,表格总是从新一页开始。请修改此行为:打开主题文件 C:\Users\...\AppData\Roaming\Typora\themes\github.css,将 pre 中的 page-break-inside: avoid 修改为 auto

菜单文件设置外观打开主题目录

pre {
    page-break-inside
```e: auto;
}

### 文档

部分翻译的文档:https://way23.ru/typora-%D1%80%D0%B0%D0%B7%D1%80%D1%8B%D0%B2%D1%8B-%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86/

### 表情符号插入

https://github.com/ikatyang/emoji-cheat-sheet

### 格式指南

[Markdown-Reference.pdf|附件](upload://bJJtcLkXrjMiDU9xA38FqzPSZJd.pdf) (334.3 KB)

### 图表

https://support.typora.io/Draw-Diagrams-With-Markdown

https://mermaid.js.org/syntax/gantt.html

[typora_diagrams.md|附件](upload://t9Q87PYdpkvGHOIrRP5wvRWvtWe.md) (12.8 KB)

```mermaid
stateDiagram-v2
    State1: 带注释的状态
    note right of State1
        重要信息!您可以写注释。
    end note
    State1 --> State2
    note left of State2 : 这是左侧的注释。
%%{init: { 
  "theme": "base", 
  "themeVariables": { 
    "pie1": "#8BC34A", "pie2": "#f3d69c", "pie3": "#FF5722",
    "pie4": "#009688", "pie5": "#5C6BC0", "pie6": "#03A9F4",
    "pie7": "#EF4444", "pie8": "#ec070c", "pie9": "#FFC107",
    "pie10": "#ca936d","pie11": "#c9edfa","pie12": "#E91E63"
  } 
} }%%
pie 标题
    "CI/CD, SETUP, RND (HA/LB)" : 37.3
    "Other (DB, BACKUP, etc.)" : 15.94
    "CONSULT + 支持" : 13.3
    "PM, process" : 10.45
    "PERIODIC / SETUP (VM)" : 7.4
    "DOCS" : 5.31
    "PRESALE" : 4.6
    "MONITORING" : 3.85
    "ONBOARD / PREPARE" : 1.82
    "РУЧНЫЕ / FIX" : 0.18
    "RND (架构)" : 0.05

按钮

获取按钮:

图片中是一个红色按钮,上面有白色俄文文字:“需要确认”。(AI生成的图片说明)

在文档开头的 README.md 中添加如下代码:

<style>
.markdown-section .mybutton, .markdown-section .mybutton:hover {
  cursor: pointer;
  color: #CC0000;
  height: auto;
  display: inline-block;
  border: 2px solid #CC0000;
  border-radius: 4rem;
  margin: 2px 0px 2px 0px;
  padding: 8px 18px 8px 18px;
  line-height: 1.2rem;
  background-color: white;
  font-family: -apple-system, "Segoe UI", "Helvetica Neue", sans-serif;
  font-weight: bold;
  text-decoration: none;
}
</style>

插入按钮时,请使用带有类名的代码:

[需要确认](URL ':class=mybutton')

在 PDF 中,按钮将显示为普通链接