TeXでのC言語ソースコードの書き方

C言語のソースコードには特殊文字が多く、それらはTeXの文法だと別の意味に なってしまうので、C言語のソースコードをそのままTeXの本文に貼り付けても うまくいかない。 いくつかやり方を挙げておく。

verbatim環境を使う

\begin{verbatim}
#include <stdio.h>
int main() {
    printf("Hello World\n");
}
\end{verbatim}
のように、「\begin{verbatim}」と「\end{verbatim}」で囲む。追加パッケージ無しで 標準のTeXのみで可能。タブが無視されてしまうので、タブをスペースに変換するなど する必要がある。

listingsパッケージを使う

\usepackage{listings}
...(中略)...
\begin{lstlisting}
#include <stdio.h>
int main() {
	printf("Hello World\n");
}
\end{lstlisting}
TeX文書の最初の方で、「\usepackage{listings}」のようにして listingsパッケージを読み込む。すると、 「\begin{lstlisting} ... \end{lstlisting}」環境、および 「\lstinputlisting{...}」コマンド(ファイル名を指定して読み込み)が 使えるようになる。verbatim環境に比べるときれいで、 設定次第で行番号を出したりフォントを変えたり適切に折り返したり出来る。

最近のTeXだとlistingsパッケージは予めインストールされていることが多い。

listingsパッケージでソースコードに日本語を使う

listingsパッケージで表示するソースコードの中に日本語が含まれている場合、 lualatex環境なら問題なく表示できるが、 platex環境ではうまく表示することができない。

検索すればネット上にjlistingsというパッケージが見つかるかもしれない。 これを使えば、platex環境でも 「\usepackage{listings,jlisting}」のようにすると、前項のlstlisting環境 及びlstinputlisting環境で日本語が使えるようになる。 TeXの標準状態ではインストールされておらず、自分でどこかから ダウンロードする必要があり、あまりお薦めはできない。