这个小例子:
An example code snippet:
~~~{.cpp}
class A
{
public:
static void f1 () {};
virtual void f2 () = override;
};
~~~
Run Code Online (Sandbox Code Playgroud)
可用于生成PDF输出:
pandoc -o block-code.pdf block-code.txt
Run Code Online (Sandbox Code Playgroud)
导致

代码和文本的字体大小相等.如何更改pdf(LaTex)pandoc输出的代码片段的字体大小?
Kur*_*fle 11
我通过将几个LaTeX片段写入我保留的额外文件中来解决这个问题:
cat make-code-footnotesize.tex
\renewenvironment{Shaded} {\begin{snugshade}\footnotesize} {\end{snugshade}}
Run Code Online (Sandbox Code Playgroud)
我有这样的片段的所有不同的大小:huge,LARGE, Large,large,normalsize,small,footnotesize,scriptsize,tiny.
要在运行时应用它们pandoc,只需在-H参数中包含相应的LaTeX代码段:
pandoc -o block-code.pdf block-code.txt \
-H make-code-scriptsize.tex --highlight-style=espresso
Run Code Online (Sandbox Code Playgroud)
结果:

请注意,这可以控制PDF中所有代码块的字体大小.它不允许您在块与块之间改变大小.当然,它也不适用于HTML,ODT,EPUB或其他输出 - 仅适用于LaTeX和PDF输出.
Vla*_*lad 11
您可以简单地\small在代码片段的开头之前和\normalsize之后添加(以恢复正常)。
您还可以添加其他类似的命令。例如,如果您的文档是双倍行距,您可以\singlespace在代码片段之前和\doublespacing之后添加。
为此,您需要在文档开头的 yaml 中添加以下内容:
---
header-includes:
- \usepackage{setspace}
---
Run Code Online (Sandbox Code Playgroud)
为此,我为 pandoc https://github.com/chdemko/pandoc-latex-fontsize开发了一个过滤器:
安装此过滤器pip:
$ pip install pandoc-latex-fontsize
Run Code Online (Sandbox Code Playgroud)
添加例如
---
pandoc-latex-fontsize:
- classes: [c, listing]
size: footnotesize
---
Run Code Online (Sandbox Code Playgroud)
到您的元数据块并指定您想要大小的列表footnotesize:
~~~{.c .listing}
int main(void) {
return 0;
}
~~~
Run Code Online (Sandbox Code Playgroud)
然后运行 pandoc
$ pandoc --filter pandoc-latex-fontsize ...
Run Code Online (Sandbox Code Playgroud)