全国高等専門学校プログラミングコンテスト
ソースリスト提出支援のためのLaTeXスタイルファイル
proconsrc.sty
Version 3.5
Compiled by Shoichi Ito (shoichi@ei.nagano-nct.ac.jp)
このパッケージについて
全国高等専門学校プログラミングコンテストの本選では受付時にソースリストを提出する必要があります。このソースリスト作成をLaTeXにより簡単かつ美しく行うためのスタイルファイルがproconsrc.styです。長野高専で過去数年間にわたって使われてきていたものをベースにしています。
準備
proconsrc.styの動作には、listings環境と奥村晴彦先生による新ドキュメントクラスが必要です。
- お使いのマシン上でLaTeXを使えるようにします。Windowsの人は角藤版W32TeX、Macの人はMacportsから入れるのがよいでしょう。
- 日本語対応のlistings環境を使えるようにします。
- ここの上の方に"You can get this entire directory bundled as listings.zip"とありますのでそこからlistings.zipをダウンロードします。
- ここの"jlisting 本体 ver. 0.2 (bzip2) (ライセンス:パブリック・ドメイン)"からjlisting.sty.bz2をダウンロードします。
- listings.zipとjlisting.sty.bz2をTeXの管理下の適当なフォルダに移動します。たとえばC:\tex\share\texmf-local\tex\latex\などに置きます。
- コマンドラインを開き、そのディレクトリに移動したうえで次のように入力します。WindowsではCygwinがインストールされていないと各種コマンドが使えないかもしれませんが適宜読み替えてください。
% unzip listings.zip
% rm listings.zip
% bzip2 -dv jlisting.sty.bz2
% mv jlisting.sty listings
% cd listings
% latex listings.ins
% mktexlsr
- これでlistings環境のインストールは完了です。上記listingsフォルダにあるlistings.pdfがlistings.styの正式な説明書ですので一度は目を通しておくとよいでしょう。
- ここを参考にしてjsarticleを使えるようにします。角藤版W32TeXの場合は最初からインストールされていますのでこのステップは必要ありません。
以上で準備完了です。
使い方
- sample.texをテキストエディタで開きます。
- sample.texの35行目前後に「%%%%% ここを書き換える %%%%%」という行があります。ここから「%%%%%%%%%%」という行までの間に、参加者の情報を書き込む部分がありますので適宜書き換えます。特に迷うことはないでしょう。
- sample.texの75行目前後に「%%%%% ここを書き換える %%%%%」という行があります。ここから「%%%%%%%%%%」という行までの間に、印刷したいソースコードのファイル名を
\InputSource{bzip2.c}
といった感じで\InputSource命令の引数に入れて、これを必要な個数だけ並べてください。
- コマンドラインから
% platex sample.tex
のように入力してコンパイルします。もし"LaTeX Warning: Label(s) may have changed. Rerun
to get cross-references right."という警告が出ていたらもう一度同様のコマンドを実行してください。
- エラーがなければsample.dviができています。dvioutなどのプレビューアで確認するか、PostScriptやPDFに変換して中身を確認してください。問題がなければ印刷しましょう。LaTeXの都合でうまく組版されない場合もあるので、必ず全ページを目で確認してください。
提出前のチェック
- sample.texを使用すると、表紙は同じものが2ページ出力されます。1枚目をファイルの表紙に糊で貼り付け、2枚目以降をファイルに綴じてください。
- 文字化けしたり、ページをはみ出している部分はありませんか?印刷したものをもう一度、全ページめくって確かめましょう。
- 第21回大会閉会式の講評において、審査委員長神沼靖子先生から「ソースリストのはじめの方に、システム全体の概要がわかるものがあるとよい」という指摘がありました。クラス図のようなものが入っていると確かにソース全体の関係が把握しやすくなると思います。必要な方はsample.texに適当に手を加えてください。また、LaTeXの\sectionや\subsectionを適宜入れることでもわかりやすさを向上させることができると思います。
FAQ
- 片面印刷にしたい。
→ sample.texの\documentclass[a4j, twoside]{jsarticle}となっている部分を\documentclass[a4j]{jsarticle}のようにしてください。
- 真っ白なページがある。
→ 両面印刷時には、たとえば表紙と目次の間のように、真っ白なページが挿入されることがありますが間違いではありません。
- ページ番号などがおかしい。
→ \tableofcontentsや\Lastpageを使用するため、2回か3回platexで処理する必要があります。それでもおかしい場合は、sample.auxやsample.tocなどを削除してからもう一度ためしてみてください。
- ソースコード中の日本語が文字化けする。
→ 文字コードが適切ではないかもしれません。W32TeXではソースコードの文字列をSJIS+CRLFに変換してください。文字コードの変換はnkfというコマンド等で行えます。たとえばここにはWindows用の文字コード変換ユーティリティがたくさんあります。
- ソースファイルがたくさんありすぎて一覧をリストアップするだけで大変。
→ Cygwinが入っているなら、find . -name '*.c' -print > ichiran.txt のようにしてください。
- C言語以外のソースコードを入れたい。
→ このスタイルファイルではデフォルトはC言語のソースコードを想定しています。デフォルトの言語を変えたい場合は、sample.texの18行目前後に\lstset{...}という命令がありますので、その中のlanguage=Cとなっている部分をlanguage=Javaやlanguage=C++のように変更してください。対応している言語はlistings.pdfを参照してください。言語を切り替えることで、書体が変更されるキーワード(命令)が切り替わり、見栄えのよい出力が得られます。デフォルトの言語はCでいいがhoge.javaだけJavaスタイルにしたいという場合は、\InputSource{hoge.java}という部分を
\lstset{language=Java} % Javaにする
\InputSource{hoge.java} % ソース本体
\lstset{language=C} % Cに戻す
のようにしてください。
- タブをスペース4以外にしたい。
→ sample.texの18行目前後に\lstset{...}という命令がありますので、その中のtabsize=4という行を変更してください。
- ヘッダーにサブタイトルが出力されない。
→ 場所的な制限から、メインタイトルしか出ないようにしてあります。
おことわり
- このパッケージはプロコン委員会公認のものではありません。よって、このパッケージを使って得られる書式と、プロコン委員会から提出を求められる書式が異なる場合があります。この場合、提出したソースリストを受理してもらえない可能性もありますので、その年のソースリスト提出書式をきちんと確認してください。受理してもらえなくても当方では関知しません。
- LaTeXの都合でうまく組版されない場合もあるので、必ず全ページを目で確認してください。うまく組版されていない・文字化けしているなどの原因により、評価が下げられても当方では関知しません。
- sample.texの中で\InputSourceしているサンプルプログラムはbzip2 1.0.6のbzip2.cとbzlib.hです。これらのファイルを選んだことに特に意味はありません。
- コピーや改造、配布は自由に行っていただいてかまいません。よりよいものができたらぜひ公開してください。
- ザ・ドリフターズはこのパッケージとは無関係です。
更新履歴
- Version 3.3 (2010.10.27)
- Version 3.5 (2011.2.17)
- 片面印刷に対応。\documentclassのオプションにtwosideをつけると両面印刷、つけないと片面印刷になります。
- 行番号がフレームの中に入るように右にずらした。これで穴あけパンチも大丈夫。
- \MakeTOCコマンドを改変。目次ページのヘッダに"Contents"と入れるようにしました。目次の下に"Typeset
by proconsrc.sty"と表示されるようにしました。
- sample.texで目次のページを1ページ目とするようにした(従来は目次が2ページ目になっていた)。
- サンプルのチームメンバー変更。リーダーをいかりや長介さんに。荒井注さんは一般メンバーに移動。(スタイルファイルと関係ないな!)
関連リンク
テプラとラベルマイティはプロコンのお供にあると大変便利です。ぜひ揃えましょう。
Copyright 2010-2011 Shoichi Ito all rights reserved.
Last update: February 17, 2011