pandoc-mode:如何用pandoc-mode表达pandoc命令选项?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了pandoc-mode:如何用pandoc-mode表达pandoc命令选项?相关的知识,希望对你有一定的参考价值。
在命令行中,我需要执行以下操作:
pandoc --variable=subparagraph try.md -o try.pdf
如何使用pandoc模式实现相同的目标?
我研究了pandoc-mode,它似乎与指定选项有关。但我尝试过,无法让它发挥作用。
谢谢,
General way
如果你想做一个精确的控制,@ jpkotta所指出的一般方式也许是前进的方法。也就是说,键入M-x compile
和pandoc
的整个命令,包括缓冲区的文件名(try.md
)。我不知道如何为markdown文件设置每个缓冲区的编译命令。
pandoc-mode way
但是,在这个特定的例子中(以及在pandoc的大多数情况下),使用本机pandoc-mode方式会更好(更容易);也就是说,首先设置所需的选项,并在每次需要时运行转换命令。以下是基于GNU Emacs Ver.25.3.1和pandoc-mode Ver.20180122.108的过程。
在pandoc-mode
中,您可以通过pandoc-mode选项面板设置环境,该面板通过从您正在编辑的缓冲区中键入C-c /
或M-x pandoc-main-hydra/body
来调用(在本例中为try.md
)。然后,执行以下操作。
请注意,以下过程基于命令界面。或者,如果工具栏在您的Emacs环境中可用,则可以通过GUI单击工具栏中的Pandoc
选项卡来实现相同的操作(我不详细介绍)。此外,为了清楚起见,我假设您在每个步骤后按b
(可能多次)返回主菜单,尽管您可能不必实际,取决于您的操作方式和内容。
- 输入格式:通过
I
(输入格式)和m
(Markdown)选择它。 似乎这个命令退出了选项面板;所以你需要在此之后再次调用C-c /
。 - 输出格式:通过
O
(输出格式)和l
(LaTeX)选择它。这里没有PDF选项。请参阅author's description以了解它为什么是LaTeX。我相信原生pandoc也在内部(你可以通过pandoc --verbose
选项查看)。 - (可选)输出文件名:通过
o f o YOUR_OUTPUT.pdf[RET]
设置(选项→文件→输出文件)。在这种特定情况下,您可以跳过此,因为try.pdf
是从try.md
转换的默认PDF文件名。 nb。,如果要取消它,即将其设置回默认值,请输入o f C-u o
(从主菜单中)。 - 命令行选项:要设置
--variable=subparagraph
,请键入o w v subparagraph[RET] t[RET]
(选项→常规编写器选项→变量) 我认为“t”在这种情况下有效,但它保存为字符串而不是真值。如果您在此处未指定任何内容,则会在执行以下步骤时引发错误。 nb。,要取消它(所有变量),键入o w C-u C-u v
(从主菜单中)。 手册(* info *)警告: 它们仅适用于当前文件和当前输出格式。 - 运行:要生成PDF,请键入
p
(或者,如果它来自缓冲区,则序列为C-c / p
。另外,通过工具栏,导航“Pandoc”>“Creat PDF”) 再次,PDF创作是特殊的;对于pandoc
的任何其他运行,它是c
(运行Pandoc)
最后,必须正确设置命令搜索路径,以便pandoc-mode可以找到命令pandoc
和pdflatex
(或类似命令)。我的.emacs
包含以下几行:
(setq exec-path (append exec-path '("/usr/local/bin")))
(setenv "PATH" (concat (getenv "PATH") ":/Library/TeX/texbin"))
而已。希望对你有效。
我不太了解pandoc,更不用说pandoc-mode了。所以这是一个通用的答案:
使用M-x compile
运行命令(异步)并在*compilation*
缓冲区中获取输出。如果正确设置了某些正则表达式,则会在编译缓冲区中获得指向警告和错误的超链接。
您可以将compile-command
设置为文件局部变量(Emacs: set compilation command per-buffer)。
我使用包multi-compile
来拥有许多编译命令模板。
以上是关于pandoc-mode:如何用pandoc-mode表达pandoc命令选项?的主要内容,如果未能解决你的问题,请参考以下文章
脑筋急转弯:如何用两个栈实现一个队列 && 如何用两个队列实现一个栈