打印源代码的另一种方法

打印源代码的另一种方法

可能重复:
LaTeX 中的语法着色

我想在文档中添加程序的源代码,但逐字逐句地添加实在让我很烦。字体太丑了。

答案1

我建议使用listings包。

例如

\documentclass[twocolumn,a4paper]{article}
\usepackage[utf8]{inputenc}

\usepackage[turkish]{babel}


\usepackage{listings}
\lstset{language=C++}
\lstset{breaklines=true}

\begin{document}

\newpage
\onecolumn

\begin{lstlisting}

 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
 #include <limits.h>
 #include <math.h>

 typedef struct word //struct to contain words  
 {
     char *string;
 } word;

 void print(int ** matrix, char str [], int n)
//this is a comment too long to fit on a line. So listings will break this line because I used \lstset{breaklines=true} But this is not default
 {
     printf("--- %s ---\n",str);

     int i,j;
     for(i=1; i<=n; i++)
     {
         for(j=1; j<=n; j++)
             if(matrix[i][j]!=INT_MAX)
                 printf("%3d ",matrix[i][j]);
             else(printf("%3s ","INF"));
         printf("\n");
     }

 }


 \end{lstlisting}
\end{document}

使用 LaTeX 生成此输出列表示例

如您所见,\lstset{language=C++}在代码中定义语言。我更喜欢这种方法,因为我认为它更容易阅读。

相关内容