.md
为了打印.pdf
,我使用 pandoc。(这要归功于这个论坛的许多贡献者。感谢他们)
问题= 我希望(在 pdf 中)代码具有相同的背景颜色,无论我使用三重反引号还是简单反引号,
例如:
`代码被一个反引号包围 = 没有背景颜色`
但
``` code with tree backticks = background color OK
```
我是 Latex 的新手,如果我可以得到一些帮助......
我的设置
- 我的命令:
#!/bin/bash
pandoc "$1" \
--include-in-header inline_code.tex \
--include-in-header listings-setup.tex \
-V linkcolor:blue \
-V geometry:a4paper \
-V geometry:margin=2cm \
-V mainfont="DejaVu Serif" \
-V monofont="Space Mono" \
--listings \
--pdf-engine=xelatex \
-o "$2"
listings-setup.tex
使用的文件--listings
\usepackage{xcolor}
\lstset{
basicstyle=\ttfamily,
extendedchars=true
numbers=left,
numberstyle=\tiny\ttfamily,
backgroundcolor=\color[RGB]{248,197,196},
showstringspaces=false,
tabsize=2,
columns=fixed,
frame=trbl,
frameround=tttt,
framesep=7pt,
breaklines=true,
postbreak=\raisebox{0ex}[0ex][0ex]{\ensuremath{\color{red}\hookrightarrow\space}},
- 文件
inline_code.tex
\definecolor{Light}{HTML}{F4F4F4}
\let\oldtexttt\texttt
\renewcommand{\texttt}[1]{
\colorbox{Light}{\oldtexttt{#1}}
}
答案1
--listings
由于pandoc选项\lstinline
用于内联代码(不是\texttt
),所以你必须修补\lstlinsting
。你可以用 egreg 的代码来做到这一点这里.下面的代码取代您中的代码listings-setup.tex
(您不再需要inline_code.tex
,因为它已全部通过列表完成):
\usepackage{xpatch,realboxes}
\usepackage{xcolor}
\definecolor{Light}{HTML}{F4F4F4}
\lstset{
basicstyle=\ttfamily,
extendedchars=true
numbers=left,
numberstyle=\tiny\ttfamily,
backgroundcolor=\color[RGB]{248,197,196},
showstringspaces=false,
tabsize=2,
columns=fixed,
frame=trbl,
frameround=tttt,
framesep=7pt,
breaklines=true, postbreak=\raisebox{0ex}[0ex][0ex]{\ensuremath{\color{red}\hookrightarrow\space}}
}
\makeatletter
\xpretocmd\lstinline{\Colorbox{Light}\bgroup\appto\lst@DeInit{\egroup}}{}{}
\makeatother
立即致电
pandoc infile.md \
--include-in-header listings-setup.tex \
-V linkcolor:blue \
-V geometry:a4paper \
-V geometry:margin=2cm \
-V mainfont="DejaVu Serif" \
-V monofont="Space Mono" \
--listings \
--pdf-engine=xelatex \
-o outfile.pdf
结果如下: