列表 Python

列表 Python

我正在使用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包:

zlmtt 样本

这与 LaTeX 的标准计算机现代字体更加契合。

如果你不想通过这种方式改变字体而只想使用普通的粗体字体,那么你应该\rmfamily在选择之前切换到\bfseries

计算机现代bf样本

\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

您可以使用lmodernlighttt选项。

\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}

在此处输入图片描述

相关内容