PDF 中的 Pandoc 语法突出显示不起作用

Zel*_*ahl 5 python pdf latex syntax-highlighting pandoc

pandoc --version 产量:

pandoc 1.12.2.1
Compiled with texmath 0.6.5.2, highlighting-kate 0.5.5.1.
Syntax highlighting is supported for the following languages:
    actionscript, ada, apache, asn1, asp, awk, bash, bibtex, boo, c, changelog, clojure, cmake, coffee, coldfusion, commonlisp, cpp, cs, css, curry, d, diff, djangotemplate, doxygen, doxygenlua, dtd, eiffel, email, erlang, fortran, fsharp, gnuassembler, go, haskell, haxe, html, ini, java, javadoc, javascript, json, jsp, julia, latex, lex, literatecurry, literatehaskell, lua, makefile, mandoc, markdown, matlab, maxima, metafont, mips, modelines, modula2, modula3, monobasic, nasm, noweb, objectivec, objectivecpp, ocaml, octave, pascal, perl, php, pike, postscript, prolog, python, r, relaxngcompact, rhtml, roff, ruby, rust, scala, scheme, sci, sed, sgml, sql, sqlmysql, sqlpostgresql, tcl, texinfo, verilog, vhdl, xml, xorg, xslt, xul, yacc, yaml
Default user data directory: /home/xiaolong/.pandoc
Copyright (C) 2006-2013 John MacFarlane
Web:  http://johnmacfarlane.net/pandoc
This is free software; see the source for copying conditions.  There is no
warranty, not even for merchantability or fitness for a particular purpose.
Run Code Online (Sandbox Code Playgroud)

我正在尝试以下操作:

```python
Python 3.4.3 |Anaconda 2.3.0 (64-bit)| (default, Oct 19 2015, 21:52:17)
[GCC 4.4.7 20120313 (Red Hat 4.4.7-1)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import random  # seed is determined here, if not set by the developer themself
>>> random.randint(0, 100)
50
>>> random.randint(0, 100)
62
>>> random.randint(0, 100)
53
>>> random.randint(0, 100)
17
>>> random.seed("I am a hashable object.")
>>> random.randint(0, 100)
41
>>> random.seed("I am a hashable object.")
>>> random.randint(0, 100)
41
>>> random.randint(0, 100)
88
>>> random.seed("I am a hashable object.")
>>> random.randint(0, 100)
41
>>> random.randint(0, 100)
88
````````````````````````````````````````````````````````````````````````````````
Run Code Online (Sandbox Code Playgroud)

我使用的编译 PDF 的命令是:

pandoc --read=markdown --table-of-contents --toc-depth=2 --preserve-tabs --standalone --template=template.latex --latex-engine=xelatex Hausarbeit.md --highlight-style=pygments -o Hausarbeit.pdf
Run Code Online (Sandbox Code Playgroud)

这是我的代码template.latex

$if(highlighting-macros)$
$highlighting-macros$
$endif$
$if(verbatim-in-note)$
\usepackage{fancyvrb}
$endif$
Run Code Online (Sandbox Code Playgroud)

根据 Pandoc 文档Pandoc 文档,这应该会导致 Python 语言的突出显示文本。但是,该代码块中的所有内容都只会变为等宽,并且不会应用任何颜色。

更重要的是,编译时出现错误:

pandoc: Error producing PDF from TeX source.
! LaTeX Error: Environment Shaded undefined.

See the LaTeX manual or LaTeX Companion for explanation.
Type  H <return>  for immediate help.
 ...                                              

\GenericError  ...                                
                                                  \endgroup 
l.200 \begin{Shaded}
Run Code Online (Sandbox Code Playgroud)

我的猜测是,模板中缺少一些东西来定义Shaded. 我什至安装了一些highlighting-katenamed包libghc-highlighting-kate-dev,因为我在某处读到,这是 pandoc 使用的,但无济于事,文本保持黑色。

如何使语法突出显示工作?

编辑#1

当我简单地缩进代码以使用代码的标准降价语法时,该错误没有出现。但在那种情况下,我本身不会有任何语法突出显示。

编辑#2

标签“PDF”、“Python”和“syntax-highlighting”确实是相关的,因为这特别是关于创建一个PDF文件,特别是关于语法高亮。也可能是在创建的 PDF 文件中突出显示 python 代码有问题,所以 python 标签也是相关的。请在过快结束之前阅读问题。

小智 5

尝试向--listings您的 pandoc 编译命令添加选项:

pandoc --read=markdown --table-of-contents --toc-depth=2 --preserve-tabs --standalone --template=template.latex --latex-engine=xelatex --listings Hausarbeit.md --highlight-style=pygments -o Hausarbeit.pdf
Run Code Online (Sandbox Code Playgroud)