Pythonプログラムのレポート提出方法
この機会にLaTeX文書も書けるようにようになろう。 以下の要領で、LaTeXで書いて(拡張子 .tex をお忘れなく)タイプセットして生成したPDFファイルを提出(アップロード)してください。 数式を記述して、美しい文書を期待してます。
最後に紹介した「かなり気の利いたソースコードの埋め込み」を推奨します。
ソースコードを埋め込む簡単な方法
次のように環境 verbatim を使って
\begin{verbatim} なにかを 何行か書く \end{verbatim}と書くと、LaTeXの特殊文字であろうと、そのままタイプライター体でタイプセットされる。 一行が長い場合には、改行も必要になるはずだ。
\documentclass{jsarticle} \usepackage{amsmath,amssymb}% 数式入力に数学必携のパッケージ読み込み \title{課題名} \author{学生番号 氏名} \date{日付} \begin{document} \maketitle \section{課題} 課題の説明やスクリプトの説明を書く。 \begin{verbatim} ここにプログラムソースをコピー \end{verbatim} \subsection{実行結果} 実行時の説明 \begin{verbatim} ここに実行結果(出力)をコピー \end{verbatim} % % 以上を課題ごとに繰り返す % \end{document}
文中でそのまま特殊記号を交えて「そのまま表示」したいときには\verbを使う。 「そのまま表示」した文字列を、そこに含まれていない記号(下の例では + で挟むのが肝要)。
なにかかいていて \verb+そのまま表示したい文字列+
わずかに気の利いたソースコードの埋め込み
文中で、OSのコマンドやスクリプト名を書く場合には、その文字列を \texttt でタイプライター体指定する。
コマンド\texttt{python}を起動して、スクリプト\texttt{hogehoge.py}を渡した結果が次のようになる。
ソースコードや実行結果などは本文と同じ左揃えで並んでいるのは、いかにも読みつらい。 次のように、環境 quote(またはquotation)を使うと少し読みやすくなる。
\documentclass{jsarticle} \usepackage{amsmath,amssymb}% 数式入力に数学必携のパッケージ読み込み \title{課題名} \author{学生番号 氏名} \date{日付} \begin{document} \maketitle \section{課題} 課題の説明やスクリプトの説明を書く。 \begin{quote} \begin{verbatim} ここでプログラムソースをコピー \end{verbatim} \end{quote} \subsection{実行結果} 実行時の説明 \begin{quote} \begin{verbatim} ここに実行結果(出力)をコピー \end{verbatim} \end{quote} % % 以上を課題ごとに繰り返す % \end{document}
それでも、フォントの大きさなど見栄えはよろしくない。 プログラムファイルの名称についてもソースコードだけからは分からない。
かなり気の利いたソースコードの埋め込み
ソースコードの埋め込みにパッケージ listings(さらに、日本語を含む場合にはjlistingも併用する)を使うとよい。
パッケージjlistingsのインストール
簡単である。 まず、Z:/.windows2000/(マイドキュメント)内にフォルダ texmf を作成する。さらに、その内部にフォルダ tex を作成しておく。 パッケージ jlistingjlisting 本体 をダウンロードして、取り出したファイル jlisting.styを、 Z:/.windows2000/texmf/tex(マイドキュメント\texmf\tex)内にコピーする(別のパッケージの場合はフォルダに一式は言っている場合もあるが、その場合でもフォルダごとコピーする。) TEXMFHOMEの利用参照。
こうして、次のようにパッケージ listings と jlistingを読み込んで、次のようにすると気が利いている。 ソースがPythonであることなど \lstset に若干オプションを指定している。 通常の報告ではソース行番号は不要なので、numbersは%をつけてコメントアウトしている(必要に応じて使い分けて欲しい)。 ソースコードを枠で囲んでしまうか frame={tblr} あるいは、上下だけ線を引くか frame={tb} 、あるいはfame 指定をコメントアウトするかも、思案のしどころだ。 ネット情報でパラメータ設定を参考にして欲しい。
listingsを使う場合、環境 quoate は不要だと思う(ご自由に)。
\documentclass{jsarticle} \usepackage{amsmath,amssymb}% 数式入力に数学必携のパッケージ読み込み \usepackage{listings,jlisting} \lstset{ language=Python, <--あるいは MathaticaやMatlab などリスト対象の言語を指定 basicstyle={\small},% identifierstyle={\small},% commentstyle={\small\itshape},% keywordstyle={\small\bfseries},% ndkeywordstyle={\small},% stringstyle={\small\ttfamily}, frame={tblr}, breaklines=true, columns=[l]{fullflexible},% % numbers=left,% xrightmargin=0zw,% xleftmargin=3zw,% numberstyle={\scriptsize},% stepnumber=1, numbersep=1zw,% lineskip=-0.5ex% } \title{課題名} \author{学生番号 氏名} \date{日付} \begin{document} \maketitle \section{課題} 課題の説明やスクリプトの説明を書く。 \begin{quote} \begin{lstlisting}[caption=スクリプトファイル名,label=参照ラベル] ここでプログラムソースをコピー \end{lstlisting} \subsection{実行結果} 実行時の説明 \begin{quote} \begin{verbatim} ここに実行結果(出力)をコピー \end{verbatim} \end{quote} % % 以上を課題ごとに繰り返す % \end{document}
ここで、環境 lstlisting にオプション captionとlabelに名前を渡している。
\begin{lstlisting}[caption=sample.py,label=sample] .... \end{lstlisting}とすると、"ソースコード 1 sample.py" ソースコードの上部に表記するためだ(番号1は自動的にカウントされるプログラム番号)。 さらに、文中で
ソースコード\ref{sample} は.... を実行するものであったが、これを改良して....とすることでプログラム番号が参照できる。
パッケージ listings がサポートしている言語(キーワード表記が利用できる)のリストはThe Listings Packageの[2.4 Programming languages]に一覧がある。