ソースコードを簡単挿入 – LaTeXでつくる爆速プログラミングレポート

1+

latex_src

情報メディア創成学類には,ソースコードをレポートに記述する授業がいくつか存在します(プログラミング実習・CG基礎 など)。枠でソースコードを囲うと見やすくなりますが,ソースコードが長くなると,複数ページにまたがってしまい,扱いづらくなります。そこで,今回はLaTeXを使って簡単・素早く・見やすいレポートを作成する方法を紹介します。

そもそも,なぜLaTeXを使うの?
 https://magazine.mast.tsukuba.ac.jp/archives/2330

本記事のポイント

  • ソースコードを含むレポートを簡単に見やすくする
  • ソースコードは自分で作ったものをコピペでOK
  • ページまたぎする場合も気にしなくてOK

listings.sty・jlisting.styを使おう

LaTeXといえば豊富なパッケージによる機能拡張です。ソースコードを文書に含めるのに便利なパッケージがlistingsです。コメントアウトに日本語が含まれている場合はjlistingも併用します。

全学計算機の場合

listingsはインストールされています。jlistingはインストールされていませんが,管理者権限でないとインストール出来ません。.texファイルと同じフォルダにjlisting.styを置くことで使用することができます。

自分の端末の場合

インストールの方法については環境に依存するので,それぞれの環境に合わせて調べてください。インストールされていないパッケージは,.texファイルと同じフォルダにjlisting.sty/listings.styを置くことで使用することができます。

listings.sty: LaTeX パッケージ
 http://www.biwako.shiga-u.ac.jp/sensei/kumazawa/tex/listings.html
 Listings – MyTeXpert (jlisting.styのダウンロードはこちらから)
 http://mytexpert.osdn.jp/index.php?Listings

使い方はとても簡単です。本文では,\begin{lstlisting}と\end{lstlisting}でソースコードを囲うだけです。囲われた部分がソースコードとして組版されます。

\begin{lstlisting}
ここにコードを書く
\end{lstlisting}

※ヘッダーで\usepackage{listings,jlisting}と記述する必要があります。

実際のサンプルを見てみましょう。冒頭の\lstset{}部分で,ソースコード出力部分のスタイルを設定しています。

\documentclass{jarticle}
\usepackage{listings,jlisting}

\usepackage{url} %URLをリンクとして表示するためのパッケージ

\lstset{
basicstyle={\ttfamily\small}, %書体の指定
frame=tRBl, %フレームの指定
framesep=10pt, %フレームと中身(コード)の間隔
breaklines=true, %行が長くなった場合の改行
linewidth=12cm, %フレームの横幅
lineskip=-0.5ex, %行間の調整
tabsize=2 %Tabを何文字幅にするかの指定
}

\title{サンプルレポート}
\author{MAST編集部}

\begin{document}
\maketitle

\section{プログラミング}
プログラミングをしてみましょう。
\subsection{大量のhoge}
“hoge”とは,プログラミングなどで,「意味のないこと」を表現するために利用されることが多い文字列である。
情報処理の世界ではメタ構文変数(Metasyntactic variable)
とも呼ばれる\footnote{hogeとは – はてなキーワード: \url{http://d.hatena.ne.jp/keyword/hoge}}。\\

for文を使わずに“hoge”を大量に表示するプログラムを作ろう。

\begin{itemize}
\item ソースコード
\begin{lstlisting}
#include

int main(void){
printf(“hoge\n”); //hogeのはじまり
printf(“hoge\n”);
printf(“hoge\n”);
printf(“(省略)\n”);
printf(“hoge\n”);
printf(“hoge\n”);

return 0;
}
\end{lstlisting}

\item 実行結果
\begin{lstlisting}
$ cc hoge.c
$ ./a.out
hoge
hoge
hoge
(省略)
hoge
hoge
$
\end{lstlisting}
\end{itemize}

\end{document}

コンパイルした結果はこちらのファイルになります。 →mast_tex_listings.pdf

実際のレポートでは,本文以外のところは一度決めてしまえば流用できます。

\lstset{}内のカスタマイズについては,先程のページに詳しく掲載されていますので,カスタマイズしたい場合は参照してください。色付け等もすることが出来ます。

listings.sty: LaTeX パッケージ
 http://www.biwako.shiga-u.ac.jp/sensei/kumazawa/tex/listings.html

このような,課題となっている実装以外の作業が効率的に進められるようになります!ぜひ試してみてください。

1+