【问题标题】:How to enable syntax highlighting for Markdown inline code with Pandoc?如何使用 Pandoc 启用 Markdown 内联代码的语法突出显示?
【发布时间】:2019-05-21 01:41:27
【问题描述】:

Pandoc manual 说:

--no-highlight

禁用代码块和内联的语法突出显示,即使给出了语言属性。

听起来内联代码应该有语法高亮。但是每当我使用 Markdown 内联代码时,就像

This is `print("Hello world")` inline code.

没有语法高亮显示。

【问题讨论】:

    标签: markdown syntax-highlighting pandoc


    【解决方案1】:

    好的,应该进一步阅读...找到解决方案。它叫Extension: inline_code_attributes

    属性可以附加到逐字文本,就像使用围栏代码块一样:

    `<$>`{.haskell}
    

    所以上面的例子变成了:

    This is `print("Hello world")`{.python} inline code.
    

    如果您考虑一下就说得通了...我仍然会保留它以防其他人遇到此问题。

    【讨论】:

      【解决方案2】:

      在后台,将 Markdown 转换为 PDF 时,Pandoc 使用 \texttt 命令进行内联代码。我们可以破解\texttt 命令来为文本添加背景颜色。将以下命令添加到head.tex

      \definecolor{bgcolor}{HTML}{E0E0E0}
      \let\oldtexttt\texttt
      
      \renewcommand{\texttt}[1]{
        \colorbox{bgcolor}{\oldtexttt{#1}}
      }
      

      要使用 head.tex,请使用 pandoc 的 -H 选项:

      pandoc --pdf-engine=xelatex -H head.tex test.md -o test.pdf
      

      【讨论】:

      • 这已经过时了,panda 现在使用\lstinline 命令进行内联代码——至少这是我的经验。
      • 你确定吗?我已经在最新版本的 Pandoc(2.7.3 版)上进行了测试。 \texttt 仍然用于渲染 Markdown 的内联代码。要进行验证,请创建一个仅包含内联代码的 Markdown。然后使用pandoc -s -t latex test.md -o test.tex 生成中间LaTeX 文件。检查 LaTeX 文件。你在看什么,\lstinline\texttt
      • 我的错,没有使用 xelatex 作为我的引擎。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-04-14
      • 2015-09-14
      • 2018-10-19
      • 2011-01-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多