如何向 TeXShop 添加 markdown 引擎?

如何向 TeXShop 添加 markdown 引擎?

我已经安装了pandoc和,因此我可以从命令行将 markdown 转换为 pdf,但如果可能的话,MacTex我希望能够从 TexShop 界面编辑和编译文件为 pdf。我查看了内部,我有和。我尝试将这两个文件移动到,以便当我在 TeXShop 中打开文件时它们显示为选项。但是,这两个引擎都不允许我排版文件:引擎在同一个文件夹中创建一个文件,其中源文件错误地排版为 iBook,并且引擎给出错误。有没有办法创建一个文件来执行相当于(这就是我在命令行中输入的内容)的操作,以便我可以从 TeXShop 而不是终端排版?如果没有,还有其他工具/应用程序可以用来实现此目的吗?.md~/Library/TeXShop/Engines/Inactive/pandocpandoc.enginemarkdown2pdf.engine~/Library/TeXShop/Engines.mdpandoc$1.epubmarkdown2pdfmarkdown2pdf: Command not found..engine~/Library/TeXShop/Enginespandoc 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

输出 PDF

代码输出

相关内容