我在OS X上尝试Pandoc,到目前为止的结果令人印象深刻.然而,一个阻塞问题是让CSS样式处理内联代码示例.我正在从Markdown转换为PDF.
我在源代码中有这个字符串:
* Create a simple HTML document (<span class="filename">simple.html</span>) and load it into the browser via the file system
Run Code Online (Sandbox Code Playgroud)
我也试过这个:
* Create a simple HTML document (`simple.html`{.filename}) and load it into the browser via the file system
Run Code Online (Sandbox Code Playgroud)
我想在每种情况下将类"filename"应用于所附文本,但它似乎对输出没有任何作用.然而,手册说:
某些输出格式可以使用此信息进行语法突出显示.目前,使用此信息的唯一输出格式是HTML和LaTeX.
这是我的命令:
pandoc \
--output ./output.pdf \
--css source/styles.css \
source/en/docs/input.md
Run Code Online (Sandbox Code Playgroud)
我正在转换为PDF,这是由Pandoc内部由LaTeX编写的.我可以让这个工作吗?或者,我可以使用使用LaTeX命令定义的样式吗? - 它不一定是CSS.但是,它必须是一个样式系统 - 在每种情况下改变斜体/字体/颜色属性是不可行的.
我已经尝试将输出临时发送到HTML,在这种情况下,样式直接从特定样式资产导入.因此,我的样式表规范和范围标记是正确的,至少对于一种输出格式.
几个事后:
我根本不了解 LaTeX,但已经使用这个有用的手册破解了这个解决方案。首先,创建一个样式:
\definecolor{silver}{RGB}{230,230,230}
\newcommand{\inlinecodeblock}[1]{
\colorbox{silver}{
\texttt{#1}
}
}
Run Code Online (Sandbox Code Playgroud)
使用方法如下:
Some \inlinecodeblock{inline code}, and some widgets, go here
Run Code Online (Sandbox Code Playgroud)
这将创建一个具有背景颜色和等宽字体的样式。对于我的喜好来说,边距和填充有点大,但这是一个非常有用的开始。它看起来是这样的:

缺点是,如果我希望输出为支持适当样式的格式(例如 HTML),那么这些样式就会丢失。另外,我的解决方案仅适用于 LaTeX/PDF。因此,如果您可以解决这些问题,请添加更好的答案!
附录:我有一个更好的方法,因此:
\newcommand{\inlinecodeblock}[1]{
\fboxsep 1pt
\fboxrule 0pt
\colorbox{silver}{\strut{\texttt{#1}}}
}
Run Code Online (Sandbox Code Playgroud)
这避免了水平填充过多的问题 - 我认为这是参数中的换行符colorbox造成的。我添加了strut,无论文本是否有下降部分,它都会保持突出显示相同的高度。
但它并不完美 - 框外仍然有太多的水平边距,并且框后面的逗号仍然会孤立到下一行。我可能会放弃使用 LaTeX,并从 Pandoc 渲染为 HTML,然后用于wkhtmltopdf渲染最终文档。