插入程序代码
传统一点, \usepackage{listings}
, 详情可以使用texdoc listings
查看。
\lstset{language=C}
\begin{lstlisting}
#include <iostream>
using namespace std;
int main()
{
cout<<"hello"<<endl;
return 0;
}
\end{lstlisting}
对效果进行一些定制:
\usepackage{listings}
\usepackage{xcolor}
\lstset{
numbers=left,
numberstyle= \tiny,
keywordstyle= \color{ blue!70},
commentstyle= \color{red!50!green!50!blue!50},
frame=shadowbox, % 阴影效果
rulesepcolor= \color{ red!20!green!20!blue!20} ,
escapeinside=``, % 英文分号中可写入中文
xleftmargin=2em,xrightmargin=2em, aboveskip=1em,
framexleftmargin=2em
}
效果:
mac 定制代码字体
%!TEX program = xelatex
\documentclass{article}
\usepackage{listings}
\usepackage{fontspec} % 定制字体
\newfontfamily\menlo{Menlo}
\usepackage{xcolor} % 定制颜色
\definecolor{mygreen}{rgb}{0,0.6,0}
\definecolor{mygray}{rgb}{0.5,0.5,0.5}
\definecolor{mymauve}{rgb}{0.58,0,0.82}
\lstset{ %
backgroundcolor=\color{white}, % choose the background color
basicstyle=\footnotesize\ttfamily, % size of fonts used for the code
columns=fullflexible,
tabsize=4,
breaklines=true, % automatic line breaking only at whitespace
captionpos=b, % sets the caption-position to bottom
commentstyle=\color{mygreen}, % comment style
escapeinside={\%*}{*)}, % if you want to add LaTeX within your code
keywordstyle=\color{blue}, % keyword style
stringstyle=\color{mymauve}\ttfamily, % string literal style
frame=single,
rulesepcolor=\color{red!20!green!20!blue!20},
% identifierstyle=\color{red},
language=c++,
}
\begin{document}
\begin{lstlisting}[language={[ANSI]C},
numbers=left,
numberstyle=\tiny\menlo,
basicstyle=\small\menlo]
#include <stdio.h>
#include <stdbool.h>
#include <ctype.h>
#define SIZE 26
int
main (int argc, char *argv[])
{
int array[SIZE];
int i;
char c;
for (i = 0; i < SIZE; i++)
array[i] = 0;
while ((c = getchar ()) != EOF)
{
if (isupper (c))
{
array[c - 'A']++;
}
}
for (i = 0; i < 26; i++)
printf ("%c:%5d\n", (char) ('A' + i), array[i]);
return 0;
}
\end{lstlisting}
\end{document}
% Local Variables:
% TeX-engine: xetex
% End:
效果图: