请帮助乌克兰!
赞助商
Pandoc   一个通用文档转换器

Pandoc 入门

本文档适用于不熟悉命令行工具的人。命令行专家可以直接查看用户指南或 pandoc 手册页。

第一步:安装 pandoc

首先,按照适用于您平台的说明安装 pandoc。

第二步:打开终端

Pandoc 是一个命令行工具。它没有图形用户界面。因此,要使用它,您需要打开一个终端窗口。

  • 在 OS X 上,Terminal 应用程序可以在/Applications/Utilities中找到。打开 Finder 窗口并转到Applications,然后是Utilities。然后双击Terminal。(或者,单击屏幕右上角的聚焦搜索图标并输入Terminal——您应该会在Applications下看到Terminal。)

  • 在 Windows 上,您可以使用经典的命令提示符或更现代的 PowerShell 终端。如果您在桌面模式下使用 Windows,请从“开始”菜单运行cmdpowershell命令。如果您使用 Windows 8 开始屏幕,只需键入cmdpowershell,然后运行“命令提示符”或“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)

您现在应该会看到一个带有“提示符”(可能只是一个像%这样的符号,但可能包含更多信息,例如您的用户名和目录)的矩形,以及一个闪烁的光标。

让我们验证一下 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.mdDocuments/pandoc-test目录中。

注意:如果您经常使用纯文本,您会希望使用比NotepadTextEdit更好的编辑器。您可能需要查看Visual Studio CodeSublime Text,或者(如果您愿意花时间学习不熟悉的界面)VimEmacs

第六步:转换文件

回到您的终端。我们应该仍然在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 手册页。所有这些信息都在用户指南中。

如果您遇到问题,可以随时在讨论论坛上提问。但请务必先查看常见问题,并在论坛中搜索,看看您的问题是否之前已被回答过。