我正在使用listings
包将 Python 代码放入文章中。我希望它以 的形式写入\ttfamily
。问题是我无法更改keywordstyle
为粗体文本。
\documentclass{article}
\usepackage{listings}
\lstset{basicstyle=\ttfamily, keywordstyle=\bfseries}
\begin{document}
\begin{lstlisting}[language=Python]
if x==0:
print(x)
\end{lstlisting}
\end{document}
有什么帮助吗?谢谢!
答案1
您需要一种具有粗体版本的打字机系列字体。如果您查看该.log
文件,您会发现:
LaTeX Font Info: Font shape `OT1/cmtt/bx/n' in size <10> not available (Font) Font shape `OT1/cmtt/m/n' tried instead on input line 9.
该软件包提供了最近新选择的粗体打字机字体newtxttt
:
\documentclass{article}
\usepackage{listings,newtxtt}
\lstset{basicstyle=\ttfamily, keywordstyle=\bfseries}
\begin{document}
\begin{lstlisting}[language=Python]
if x==0:
print(x)
\end{lstlisting}
\end{document}
另一种选择是使用以下zlmtt
包:
这与 LaTeX 的标准计算机现代字体更加契合。
如果你不想通过这种方式改变字体而只想使用普通的粗体字体,那么你应该\rmfamily
在选择之前切换到\bfseries
:
\documentclass{article}
\usepackage{listings}
\lstset{basicstyle=\ttfamily, keywordstyle=\rmfamily\bfseries}
\begin{document}
\begin{lstlisting}[language=Python]
if x==0:
print(x)
\end{lstlisting}
\end{document}
答案2
您可以使用lmodern
该lighttt
选项。
\documentclass{article}
\usepackage[lighttt]{lmodern}
\usepackage{listings}
\lstset{basicstyle=\ttfamily, keywordstyle=\bfseries}
\begin{document}
\begin{lstlisting}[language=Python]
if x==0:
print(x)
\end{lstlisting}
\end{document}
无lighttt
选项:
Latin Modern 字体与 Computer Modern 基本相同。但是,Latin Modern Mono 的粗体版本与 Medium 字体区别不大,因此该lighttt
选项使用 Light 系列而不是 Medium 系列。
您还可以使用任何其他单色字体,也许缩放它以适合文本字体,例如 FiraMono:
\documentclass{article}
\usepackage[scaled=0.85]{FiraMono}
\usepackage{listings}
\lstset{basicstyle=\ttfamily, keywordstyle=\bfseries}
\begin{document}
Abc\texttt{Abc}
\begin{lstlisting}[language=Python]
if x==0:
print(x)
\end{lstlisting}
\end{document}