我想改用 minted 而不是 listings,以获得更出色的语法高亮,尤其是对于 C++。但我无法让字体看起来像 listings 一样好看。不知何故,使用 minted 生成的字体更重、更紧凑。
这是一个例子(上面列出,下面铸造):
这是我对它们两个的配置:
\newfontfamily\UbuntuMono{Ubuntu Mono}
\setmonofont{Ubuntu Mono}
\lstset{
backgroundcolor=\color{dsolar_back},
basicstyle=\UbuntuMono\footnotesize\color{dsolar_text},
breakatwhitespace=false,
breaklines=true,
captionpos=b,
commentstyle=\color{dsolar_comm},
extendedchars=true,
frame=single,
keepspaces=true,
keywordstyle=\color{dsolar_keyw},
language=[11]C++,
numbers=left,
numbersep=5pt,
rulecolor=\color{lightgrey},
showspaces=false,
showstringspaces=false,
showtabs=false,
stepnumber=2,
stringstyle=\color{dsolar_ltrl},
tabsize=4,
title=\lstname
}
\usepackage[cache=false]{minted}
\setminted[c++]{
linenos=true,
bgcolor=dsolar_back,
fontsize=\footnotesize,
style=solarizedlight,
frame=single,
framesep=0pt,
rulecolor=\color{lightgrey},
stepnumber=2,
numbersep=5pt,
resetmargins=true
}
有人有过这样的经历吗?我遗漏了一些设置吗?谢谢你的帮助!
答案1
这些是默认行为。如果您使用的是等宽字体,则应遵循minted
的间距,因为 中的宽间距listings
只是为了确保即使是普通字体也能变成等宽字体。
如果要使用宽字体,可以借用microtype
。
在下面的代码中,上面是正常间距,下面是修改后的间距。我没有您的字体系列,因此我使用类似的字体(DejaVu Sans Mono):
\documentclass{article}
\usepackage[scaled=0.85]{DejaVuSansMono}
\usepackage{minted}
\usepackage[letterspace=100]{microtype}
\usepackage{lipsum}
\newenvironment{myminted}
{\VerbatimEnvironment
\begingroup\lsstyle
\begin{minted}{C++}}
{\end{minted}
\endgroup}
\begin{document}
\lipsum[1]
\begin{minted}{C++}
#include <cstdio>
int main() {
printf("Hello, world!");
}
\end{minted}
\begin{myminted}
#include <cstdio>
int main() {
printf("Hello, world!");
}
\end{myminted}
\lipsum[2]
\end{document}