いものやま。

雑多な知識の寄せ集め

TeXで同人誌を作ってみた。(参考文献)

f:id:yamaimo0625:20190918075457j:plain

技術書典7にサークル参加したことの振り返りも終わったので、同人誌制作の振り返りへ。
今日は参考文献の一覧の作り方について。

なお、 \TeX \LaTeXは区別せずに扱っている。
参考にしたのは以下:

LaTeX2ε辞典 増補改訂版 (DESKTOP REFERENCE)

LaTeX2ε辞典 増補改訂版 (DESKTOP REFERENCE)

参考文献の一覧を作る2つの方法

 \TeXで参考文献の一覧を作る場合、2つの方法がある:

  • thebibliography環境を使って参考文献を手動でリストアップする
  • BibTeXを使い\bibliographyによって参考文献を半自動で出力する

参考文献のデータベースがある場合、後者を使えばいろいろ便利なのだけど、そうでない場合はあまり後者を使うメリットはないと思う。
特に今回は後者だと細かい調整が大変そうだったので、前者の方法を使った。

thebibliography環境の使い方

thebibliography環境は以下のように使う:

\begin{thebibliography}{<n>}
    \bibitem{<refname>} <refitem>
    ...
\end{thebibliography}

<n>は文献番号の数字の最大幅と同じ幅の文字列。
何言ってるんだという感じだけど、基本的には以下のようにしておけばいい:

<n> 説明
9 文献番号の数字は最大1桁(1〜9)
99 文献番号の数字は最大2桁(1〜99)
999 文献番号の数字は最大3桁(1〜999)

<refname>は参照するときに使う名前。
例えば\cite{<refname>}とすると[<文献番号>]と文献への参照が入る。

<refitem>は参考文献の情報。
著者とか、本のタイトルとか、出版社、出版年などの情報を書く。
ここは文献の種類によってスタイルがあるようなので、それを守って書くといい。
自分の場合、試しにBibTeXで出力してみて、その出力を真似してみた。

書籍の場合だと、以下のような感じ:

<著者名>. \newblock 『<本のタイトル>』. \newblock <出版社>, <出版年>.

Webページは以下のようにした:

<Webページ名>. \newblock <URL>.

参考文献での小見出し

参考文献もいろいろとジャンルに分けたいことがある。
今回の場合、ポーカー関連の参考文献と、数学関連の参考文献、それにWebページに分けたかった。

そこで本を参考に\bibsectionという命令を用意した:

\makeatletter

% 参考文献で小見出しを出せるようにする
\newcommand{\bibsection}[1]{% #1: 小見出し
    \par \if@newlist\else \medskip \fi
    \item[]% 1項目分、間を開ける
    \item[]\noindent\vspace{\baselineskip}\hskip-\@totalleftmargin {\Large\bfseries #1}\par}

\makeatother

thebibliography環境は実質リストなので、小見出し用のアイテムを追加する命令を定義している感じ。

参考文献の目次での見出しの修正

TeXで同人誌を作ってみた。(目次デザイン) - いものやま。で書いたとおり、章番号なしの章を目次に追加するときに\protect\numberline{\null}をタイトルの前に足すことでインデントの位置を揃えていた。

thebibliography環境を使うと「参考文献」という章番号なしの章が勝手に開始されるので、そのままだとインデントの位置が揃わなくなる。

そこで、以下のように修正してインデントの位置を揃えるようにした:

\makeatletter

%%% 参考文献のスタイルをカスタマイズ

% 目次でのインデントを合わせる
\renewenvironment{thebibliography}[1]{%
  \@jsc@warnoldfontcmdexceptiontrue
  \global\let\presectionname\relax
  \global\let\postsectionname\relax
  \chapter*{\bibname}\@mkboth{\bibname}{}%
  \addcontentsline{toc}{chapter}{\protect\numberline{\null}\bibname}% ここを変えた
   \list{\@biblabel{\@arabic\c@enumiv}}%
        {\settowidth\labelwidth{\@biblabel{#1}}%
         \leftmargin\labelwidth
         \advance\leftmargin\labelsep
         \@openbib@code
         \usecounter{enumiv}%
         \let\p@enumiv\@empty
         \renewcommand\theenumiv{\@arabic\c@enumiv}}%
   \sloppy
   \clubpenalty4000
   \@clubpenalty\clubpenalty
   \widowpenalty4000%
   \sfcode`\.\@m}
  {\def\@noitemerr
    {\@latex@warning{Empty `thebibliography' environment}}%
   \endlist}

\makeatother

もうちょっとスマートに修正できるといいんだけどねぇ(^^;


参考文献の一覧の作り方については以上。

ちなみに『Math Poker Girl』はBOOTHで販売しているのでよろしくお願いします!

今日はここまで!