有人有使用 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}
另请参阅清单手册有很多方法可以自定义列表的格式。