CSharp 的漂亮列表

CSharp 的漂亮列表

有人有使用 C# 语言的漂亮排版样式吗listings?我是这样配置的:

\lstset{language=[Sharp]C,,basicstyle=\footnotesize,
  showspaces=false,showtabs=false,,breaklines=true,
  showstringspaces=false,breakatwhitespace=true,
  escapeinside={(*@}{@*)}}

但看起来还是不太好,T_T。在我的配置中,我的字符太圆了,代码看起来就像是用打字机写的。我不想要那样。我想要一种现代、清晰的字体,看起来更像我在 Visual Studio 中看到的字体。

最终选举。

感谢大家,给了我改进代码外观的方法。我最终选择了 @PauloCereda 的答案,对其中一条评论和关键字进行了轻微调整。以下是代码及其外观:

\documentclass{article}

\usepackage[T1]{fontenc}
\usepackage[scaled]{beramono}

\usepackage{color}
\definecolor{bluekeywords}{rgb}{0.13,0.13,1}
\definecolor{greencomments}{rgb}{0,0.5,0}
\definecolor{redstrings}{rgb}{0.9,0,0}

\usepackage{listings}
\lstset{language=[Sharp]C,
showspaces=false,
showtabs=false,
breaklines=true,
showstringspaces=false,
breakatwhitespace=true,
escapeinside={(*@}{@*)},
commentstyle=\color{greencomments},
keywordstyle=\color{bluekeywords}\bfseries,
stringstyle=\color{redstrings},
basicstyle=\ttfamily
}

\begin{document}

\begin{lstlisting}
/**
* Prints Hello World.
**/
class Program
{
  public static void Main()
  {
    System.Console.WriteLine("Hello World!");
  }
}
\end{lstlisting}

\end{document}

在此处输入图片描述

答案1

根据 Thorsten 的代码,我为关键字、字符串和注释添加了颜色,并用 替换了当前的打字机字体Inconsolata

\documentclass{article}

\usepackage[T1]{fontenc}
\usepackage{inconsolata}

\usepackage{color}
\definecolor{bluekeywords}{rgb}{0.13,0.13,1}
\definecolor{greencomments}{rgb}{0,0.5,0}
\definecolor{redstrings}{rgb}{0.9,0,0}

\usepackage{listings}
\lstset{language=[Sharp]C,
  showspaces=false,
  showtabs=false,
  breaklines=true,
  showstringspaces=false,
  breakatwhitespace=true,
  escapeinside={(*@}{@*)},
  commentstyle=\color{greencomments},
  keywordstyle=\color{bluekeywords},
  stringstyle=\color{redstrings},
  basicstyle=\ttfamily
}

\begin{document}

\begin{lstlisting}
/**
* Prints Hello World.
**/
class Program
{
  public static void Main()
  {
    System.Console.WriteLine("Hello World!");
  }
}
\end{lstlisting}

\end{document}

导致:

你好世界。

根据Inconsolata文档,加载它会重新定义\tt字体。

答案2

您可以使用basicstyle自定义字体:

\documentclass{minimal}
\usepackage{bold-extra}
\usepackage{listings}
\lstset{language=[Sharp]C,
  showspaces=false,
  showtabs=false,
  breaklines=true,
  showstringspaces=false,
  breakatwhitespace=true,
  escapeinside={(*@}{@*)},
  basicstyle=\ttfamily,
  columns=fullflexible
}
\begin{document}
\begin{lstlisting}
class Program
{
  public static void Main()
  {
    System.Console.WriteLine("Hello World!");
  }
}
\end{lstlisting}
\end{document}

在此处输入图片描述

或者,您可以按照 Andrey Vihrov 的建议使用lmodern而不是。bold-extra

答案3

有一份清单Visual Studio 样式您可以选择作为参考。下图显示了其中一些。

在此处输入图片描述

之后,您需要查找其中使用的颜色、字体等的名称,以创建您自己的列表样式。创建列表样式可以在您建议对 listings.sty 进行什么配置以使输出看起来舒适?

答案4

xelatex如果您使用或编译文档lualatex,则可以使用任何您想要的 TrueType 或 OpenType 字体。因此,您可以使用例如 Visual Studio 使用的字体。只需加载包fontspec并使用 之类的东西\setmonofont{Inconsolata}basicstyle=\texttt或者为代码明确定义字体系列,如下例所示。

\documentclass{minimal}
\usepackage{fontspec,xcolor}

% Define \codefont to switch to the font 'Ubuntu'.
% (I find the font size more pleasing when the lower case
% characters are scaled to the size of the lower case of the
% surrounding text.)
\newfontfamily\codefont[Scale=MatchLowercase]{Ubuntu}

\usepackage{listings}
\lstset{language=[Sharp]C,
  showspaces=false,
  showtabs=false,
  breaklines=true,
  showstringspaces=false,
  breakatwhitespace=true,
  escapeinside={(*@}{@*)},
  basicstyle=\codefont,             % use the font defined as \codefont
  stringstyle=\color{blue!70!black},
  commentstyle=\color{green!70!black},
  columns=fullflexible
}
\begin{document}

\begin{lstlisting}
// A program that prints a greeting message.
class Program
{
  public static void Main()
  {
    System.Console.WriteLine("Hello World!");
  }
}
\end{lstlisting}
\end{document}

结果

另请参阅清单手册有很多方法可以自定义列表的格式。

相关内容