我已经安装了pandoc
和,因此我可以从命令行将 markdown 转换为 pdf,但如果可能的话,MacTex
我希望能够从 TexShop 界面编辑和编译文件为 pdf。我查看了内部,我有和。我尝试将这两个文件移动到,以便当我在 TeXShop 中打开文件时它们显示为选项。但是,这两个引擎都不允许我排版文件:引擎在同一个文件夹中创建一个文件,其中源文件错误地排版为 iBook,并且引擎给出错误。有没有办法创建一个文件来执行相当于(这就是我在命令行中输入的内容)的操作,以便我可以从 TeXShop 而不是终端排版?如果没有,还有其他工具/应用程序可以用来实现此目的吗?.md
~/Library/TeXShop/Engines/Inactive/pandoc
pandoc.engine
markdown2pdf.engine
~/Library/TeXShop/Engines
.md
pandoc
$1.epub
markdown2pdf
markdown2pdf: Command not found.
.engine
~/Library/TeXShop/Engines
pandoc filename.md -s -o filename.pdf
编辑:Alan Munn 的解决方案有效,经过一些修改,所以现在代码pandoc-pdf.engine
读取
#!/bin/bash
# pandoc takes an input file (usually markdown) and writes an output file
(latex, epub, ...)
# There is a shortcut to create pdf from markdown via latex called
markdown2pdf.
# See http://johnmacfarlane.net/pandoc/
PATH=$PATH:/Library/TeX/texbin:/usr/texbin:/usr/local/bin
fname_with_ext=$(basename "$1")
fname="${fname_with_ext%.*}.pdf"
pandoc "$1" -s -o $fname
事实证明,您不必在 TeXShop 中打开,因为它会自动刷新。在当前状态下,除非出现错误,否则不会将任何内容打印到控制台。请注意,在上面的代码中,我修复了一个文件扩展名问题,以避免出现名为 的 pdf filename.md.pdf
。
答案1
现有pandoc
引擎无法满足您的要求,因为它将不同的参数传递给pandoc
。据我所知,TeXLive 中pandoc2pdf
没有脚本,因此引擎无法正常工作。pandoc2pdf
但是您可以非常轻松地制作自己的pandoc
引擎。复制现有的引擎pandoc.engine
并将其放在您的引擎文件夹中。我将其命名为pandoc-pdf.engine
。它具有以下代码:(如果您制作了一个全新的文件(而不是副本),则需要确保在文件上设置了可执行位。为此,请chmod +x
在终端上使用该文件。)
#!/bin/bash
# pandoc takes an input file (usually markdown) and writes an output file (latex, epub, ...)
# There is a shortcut to create pdf from markdown via latex called markdown2pdf.
# See http://johnmacfarlane.net/pandoc/
PATH=$PATH:/Library/TeX/texbin:/usr/texbin:/usr/local/bin
fname_with_ext=$(basename "$1")
fname="${fname_with_ext%.*}.pdf"
pandoc "$1" -s -o $fname
在文件上运行此命令.md
将正确生成 PDF。
.md
文件
如果您想% !TEX TS-program = pandoc-pdf
在文件中使用 TeXShop 指令行,则需要将其嵌入 markdown 注释中才能进行编译,否则pandoc
将处理该行(它不会将其识别%
为注释.md
)。这可以通过以下方式完成:
[//]: % !TEX TS-program = pandoc-pdf
这是一个示例 markdown 文件及其输出。
A First Level Header
====================
A Second Level Header
---------------------
Now is the time for all good men to come to
the aid of their country. This is just a
regular paragraph.
The quick brown fox jumped over the lazy
dog's back.
### Header 3
> This is a blockquote.
>
> This is the second paragraph in the blockquote.
>
> ## This is an H2 in a blockquote