全国高等専門学校プログラミングコンテスト
ソースリスト提出支援のためのLaTeXスタイルファイル
proconsrc.sty
Version 5.0

Compiled by Shoichi Ito (shoichi@nagano-nct.ac.jp)


このパッケージについて

全国高等専門学校プログラミングコンテストの本選ではソースリスト を提出する必要があります。このソースリスト作成をLaTeXにより簡単かつ美しく行うためのスタイルファイルがproconsrc.styです。長野高専で過去数年間にわたって使われてきていたものをベースにしています。第21回大会までの印刷物での提出に代わり、第22回大会からはPDFでのオンライ ン提出となりましたのでそちらへの対応を主体に進めています。


準備

proconsrc.styの動作には、listings環境と奥村晴彦先生による新ドキュメントクラスが必要です。

  1. お使いのマシン上でLaTeXを使えるようにします。Windowsの人はあべのりゆきさんのTeXインストーラ3を使って角藤版W32TeXを、Macの人は奥村晴彦先生のページを参照してMacTeXを入れるのがよいでしょう。
  2. 日本語対応のlistings環境を使えるようにします。
    1. ここの下の方に"Download the contents of this package in one zip archive (254.3k)."とありますのでそこからlistings.zipをダウンロードします。
    2. ここの"jlisting 本体 ver. 0.2 (bzip2)"からjlisting.sty.bz2をダウンロードします。
    3. listings.zipとjlisting.sty.bz2をTeXの管理下の適当なフォルダに移動します。たとえばC:\tex\share\texmf-local\tex\latex\などに置きます。
    4. コマンドラインを開き、そのディレクトリに移動したうえで次のように入力します(%はプロンプトのつもり)。WindowsではCygwinがインストールされていないと各種コマンドが使えないかもしれませんが適宜読み替えてください。
      % unzip listings.zip
      % rm listings.zip
      % bzip2 -dv jlisting.sty.bz2
      % mv jlisting.sty listings
      % cd listings
      % latex listings.ins
      % mktexlsr
    5. これでlistings環境のインストールは完了です。上記listingsフォルダにあるlistings.pdfがlistings.styの正式な説明書ですので一度は目を通しておくとよいでしょう。
    6. MacTeXの人は/usr/local/texlive/texmf-local/tex/latex/localの下にjlistingというフォルダを作ってその中にjlisting.styを入れ、sudo mktexlsrします。
  3. ここを 参考にしてjsarticleを使えるようにします。角藤版W32TeXの場合は最初からインストールされていますのでこのステップは必要ありません。

以上で準備完了です。


使い方
  1. sample.texとproconsrc.styを同じディレクトリに入れます。オプションや設定などはバージョンごとに節操なく変えていくと思いますので、proconsrc.styを全ユーザー共通のディレクトリにインストールといったことはせずに、必要になるたびに最新版をローカルディレクトリにコピーしてきて使うのがいいと思います。
  2. ソースコードのファイルをすべてsample.texと同じディレクトリにコピーします。サブディレクトリがあってもかまいません。
  3. sample.texをテキストエディタで開きます。sample.texとproconsrc.styはUTF-8+LFで記述されています。
  4. PostScript/PDFに変換するためのsample.texの11行目でdviを変換するドライバを指定しておきますが、現在のところ問題なく使えるのはdvipdfmxのみです。dvipsはPDFにしたときにブックマークが文字化けします。その他のドライバは作者の環境ではテストされていません。指定しない場合はdvipdfmxが使われます。
  5. sample.texの38行目に「%%%%% ここを書き換える %%%%%」という行があります。ここから「%%%%%%%%%%」という行までの間に、参加者の情報を書き込む部分がありますので適宜書き換えます。特に迷うことはないでしょう。
  6. sample.texの88行目に「%%%%% ここを書き換える %%%%%」という行があります。ここから「%%%%%%%%%%」という行までの間に、印刷したいソースコードのファイル名を
    \InputSource{bzip2.c}
    といった感じで\InputSource命令の引数に入れて、これを必要な個数だけ並べてください。
  7. sample.texを保存し、コマンドラインから
    % platex -kanji=utf8 sample.tex
    のように入力してコンパイルします。もし"LaTeX Warning: Label(s) may have changed. Rerun to get cross-references right."という警告が出ていたらもう一度同様のコマンドを実行してください。
  8. エラーがなければsample.dviができています。コマンドラインから
    % dvipdfmx sample.dvi
    のように入力してPDFに変換します。
  9. sample.pdfをAcrobatやプレビューで開いて期待通りにできているか確認しましょう。 LaTeXの都合でうまく組版されない場合もあるので、必ず全ページを目で確認してください。

オプション一覧

proconsrc.sty自体のオプションは以下の通りです。Version 5.0から、PDFでの閲覧のみを考慮し、両面印刷(twoside)オプションへの対応を取りやめています。


提出前のチェック


FAQ (よくある質問とその答え)

  1. 両面印刷にしたい。
    → PDFでの提出となったため、Version 5.0から両面印刷オプション(twoside)への対応を取りやめています。
  2. ページ番号などがおかしい。
    → \tableofcontentsや\Lastpageを使用するため、2回か3回platexで処理する必要があります。それでもおかしい場合は、sample.auxやsample.tocなどを削除してからもう一度ためしてみてください。
  3. ソースコード中の日本語が文字化けする。
    → 文字コードが適切ではないかもしれません。Version 5.0からはスタイルファイル自体をUTF-8+LFで組むようにしました。文字コードの変換はnkfというコマンド等で行えます。たとえばここにはWindows用の文字コード変換ユーティリティがたくさんあります。おすすめはこれ。Emacs使いならM-x set-buffer-file-coding-systemでutf-8-unixに。
  4. ソースファイルがたくさんありすぎて一覧をリストアップするだけで大変。
    → MacやUNIXなら(WindowsならCygwinを入れて)ソースのある最上位ディレクトリで、find . -name '*.c' -print > ichiran.txt のようにしてください。
  5. 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に戻す
    のようにしてください。
  6. タブをスペース4以外にしたい。
    → sample.texの18行目に\lstset{...}という命令がありますので、その中のtabsize=4という行を変更してください。
  7. ヘッダーにサブタイトルが出力されない。
    → 場所的な制限から、メインタイトルしか出ないようにしてあります。
  8. ソースコードの色を調整したい(文字をすべて黒にしたいなど)
    → sample.texの18行目\lstset{...}の中のbasicstyle, keywordstyle, commentstyle, identifierstyle, stringstyleといったキーワードの設定を見てください。色の例についてはcolor.styに付属のcolor.dviもしくは熊澤先生のページを参考にしてください。
  9. ハイパーリンクを作りたくない
    → proconsrc.styで内部的に使用している hyperref.styでハイパーリンクを作らないようにとdraftモードにしてしまうとその他の設定もすべて無効になってしまうため、ハイパーリンクを作らないようにはできません。ただしハイパーリンクを見えなくすることはできます。proconsrc.styの97行目のhidelinksを有効にしてください。
  10. PDFを開いたときの最初の表示が「幅にあわせて連続表示」になってしまうのを変えたい
    → まだproconsrc.styのオプションとしては用意していませんのでproconsrc.styを直接いじる必要があります。 proconsrc.styの82行目あたりに\hypersetup{...}という設定があり、 PDF表示の設定もここにありますので、このページを参考にしつつpdfstartviewとpdfpagelayoutをお好みに設定してください。

おことわり
更新履歴

今後の予定

その他、うまく組版できないなど不具合がありましたらお知らせください。できるだけ対処します。


Copyright 2010-2014 Shoichi Ito all rights reserved.
Last update: September 1, 2014