Pandoc 入门
本文档适用于不熟悉命令行工具的人。命令行专家可以直接查看用户指南或 pandoc 手册页。
第一步:安装 pandoc
首先,按照适用于您平台的说明安装 pandoc。
第二步:打开终端
Pandoc 是一个命令行工具。它没有图形用户界面。因此,要使用它,您需要打开一个终端窗口。
在 OS X 上,Terminal 应用程序可以在
/Applications/Utilities
中找到。打开 Finder 窗口并转到Applications
,然后是Utilities
。然后双击Terminal
。(或者,单击屏幕右上角的聚焦搜索图标并输入Terminal
——您应该会在Applications
下看到Terminal
。)在 Windows 上,您可以使用经典的命令提示符或更现代的 PowerShell 终端。如果您在桌面模式下使用 Windows,请从“开始”菜单运行
cmd
或powershell
命令。如果您使用 Windows 8 开始屏幕,只需键入cmd
或powershell
,然后运行“命令提示符”或“Windows Powershell”应用程序。如果您使用cmd
,请在使用 pandoc 之前键入chcp 65001
,以将编码设置为 UTF-8。在 Linux 上,根据您使用的桌面环境,有许多可能的配置。
- 在 Unity 中,使用
Dash
上的搜索功能,搜索Terminal
。或者,使用键盘快捷键Ctrl-Alt-T
。 - 在 Gnome 中,转到
Applications
,然后Accessories
,并选择Terminal
,或使用Ctrl-Alt-T
。 - 在 XFCE 中,转到
Applications
,然后System
,然后Terminal
,或使用Super-T
。 - 在 KDE 中,转到
KMenu
,然后System
,然后Terminal Program (Konsole)
。
- 在 Unity 中,使用
您现在应该会看到一个带有“提示符”(可能只是一个像%
这样的符号,但可能包含更多信息,例如您的用户名和目录)的矩形,以及一个闪烁的光标。
让我们验证一下 pandoc 是否已安装。键入
pandoc --version
然后按回车。您应该会看到一条消息,告诉您安装的 pandoc 版本,并提供一些额外信息。
第三步:更改目录
首先,让我们看看我们在哪里。在 Linux 或 OS X 上键入
pwd
或在 Windows 上键入
echo %cd%
然后按回车。您的终端应该会打印出您当前的工作目录。(猜猜pwd
代表什么?)这应该是您的主目录。
现在让我们导航到我们的Documents
目录:键入
cd Documents
然后按回车。现在再次键入
pwd
(或在 Windows 上键入echo %cd%
)。您应该位于主目录的Documents
子目录中。要返回主目录,您可以键入
cd ..
..
表示“上一级”。
如果您还没有在Documents
目录中,请返回该目录。让我们尝试创建一个名为pandoc-test
的子目录
mkdir pandoc-test
现在进入pandoc-test
目录
cd pandoc-test
如果提示符没有告诉您当前所在目录,您可以通过再次执行
pwd
(或echo %cd%
)来确认。
好的,目前关于使用终端您需要了解的就这些。但这里有一个可以为您节省大量输入时间的秘密。您始终可以按向上箭头键来回顾您的命令历史。因此,如果您想使用之前输入的命令,您无需再次输入:只需使用向上箭头直到它出现。试试这个。(您也可以使用向下箭头,向相反方向移动。)一旦您有了命令,您还可以使用左右箭头和退格/删除键来编辑它。
大多数终端还支持目录和文件名的 Tab 补全。要尝试这个,我们首先回到我们的Documents
目录
cd ..
现在,键入
cd pandoc-
然后按 Tab 键而不是回车。您的终端应该会补全剩余的部分 (test
),然后您就可以按回车了。
回顾一下
pwd
(或 Windows 上的echo %cd%
)查看当前工作目录是什么。cd foo
更改到工作目录的foo
子目录。cd ..
向上移动到工作目录的父目录。mkdir foo
在工作目录中创建一个名为foo
的子目录。- 向上箭头回顾您的命令历史。
- Tab 键补全目录和文件名。
第四步:将 pandoc 作为过滤器使用
键入
pandoc
然后按回车。您应该会看到光标停在那里,等待您输入内容。输入以下内容
Hello *pandoc*!
- one
- two
完成后(光标应该在行首),在 OS X 或 Linux 上按Ctrl-D
,或在 Windows 上按Ctrl-Z
然后按Enter
。您现在应该会看到您的文本已转换为 HTML!
<p>Hello <em>pandoc</em>!</p>
<ul>
<li>one</li>
<li>two</li>
</ul>
刚才发生了什么?当 pandoc 在未指定任何输入文件的情况下被调用时,它会作为“过滤器”操作,从终端获取输入并将其输出发送回终端。您可以使用此功能来试用 pandoc。
默认情况下,输入被解释为 pandoc markdown,输出为 HTML。但我们可以更改它。让我们尝试将 HTML 转换**为** markdown
pandoc -f html -t markdown
现在键入
<p>Hello <em>pandoc</em>!</p>
然后按Ctrl-D
(或在 Windows 上按Ctrl-Z
然后按Enter
)。您应该会看到
Hello *pandoc*!
现在尝试将 markdown 转换为 LaTeX。您认为应该使用什么命令?
第五步:文本编辑器基础
您可能希望使用 pandoc 转换文件,而不是从终端读取文本。这很简单,但首先我们需要在pandoc-test
子目录中创建一个文本文件。
重要:要创建文本文件,您需要使用文本编辑器,而不是像 Microsoft Word 这样的字处理器。在 Windows 上,您可以使用 Notepad(在Accessories
中)。在 OS X 上,您可以使用TextEdit
(在Applications
中)。在 Linux 上,不同的平台带有不同的文本编辑器:Gnome 有GEdit
,KDE 有Kate
。
启动您的文本编辑器。键入以下内容
---
title: Test
...
# Test!
This is a test of *pandoc*.
- list one
- list two
现在将文件保存为test1.md
在Documents/pandoc-test
目录中。
注意:如果您经常使用纯文本,您会希望使用比Notepad
或TextEdit
更好的编辑器。您可能需要查看Visual Studio Code或Sublime Text,或者(如果您愿意花时间学习不熟悉的界面)Vim或Emacs。
第六步:转换文件
回到您的终端。我们应该仍然在Documents/pandoc-test
目录中。用pwd
验证。
现在键入
ls
(如果您在 Windows 上,则为dir
)。这将列出当前目录中的文件。您应该会看到您创建的文件,test1.md
。
要将其转换为 HTML,请使用此命令
pandoc test1.md -f markdown -t html -s -o test1.html
文件名test1.md
告诉 pandoc 要转换哪个文件。-s
选项表示创建“独立”文件,带有页眉和页脚,而不仅仅是一个片段。而-o test1.html
表示将输出放到文件test1.html
中。请注意,我们可以省略-f markdown
和-t html
,因为默认是从 markdown 转换为 HTML,但包含它们也无妨。
再次键入ls
检查文件是否已创建。您应该会看到test1.html
。现在在浏览器中打开它。在 OS X 上,您可以键入
open test1.html
在 Windows 上,键入
.\test1.html
您应该会看到一个带有您的文档的浏览器窗口。
要创建 LaTeX 文档,您只需稍微更改命令
pandoc test1.md -f markdown -t latex -s -o test1.tex
尝试在文本编辑器中打开test1.tex
。
Pandoc 通常可以根据文件名扩展名判断输入和输出格式。因此,您只需使用
pandoc test1.md -s -o test1.tex
Pandoc 知道您正在尝试创建一个 LaTeX 文档,因为有.tex
扩展名。
现在尝试创建一个 Word 文档(扩展名为docx
)。
如果您想创建 PDF,您需要安装 LaTeX。(请参阅 OS X 上的MacTeX,Windows 上的MiKTeX,或在 Linux 上安装 texlive 软件包。)然后执行
pandoc test1.md -s -o test1.pdf
第七步:命令行选项
您现在已经掌握了基础知识。Pandoc 有很多选项。此时,您可以通过阅读用户指南来了解更多信息。
这是一个例子。--mathml
选项使 pandoc 将 TeX 数学转换为 MathML。键入
pandoc --mathml
然后输入以下文本,接着按Ctrl-D
(在 Windows 上按Ctrl-Z
然后按Enter
)
$x = y^2$
现在尝试不带--mathml
做同样的事情。看到输出的区别了吗?
如果您忘记了某个选项,或者忘记了支持的格式,您始终可以执行
pandoc --help
来获取所有支持选项的列表。
在 OS X 或 Linux 系统上,您还可以执行
man pandoc
来获取 pandoc 手册页。所有这些信息都在用户指南中。