TL;DR
\begin{document}の前にこれを追加します
\AtBeginDocument{%
\lstset{captionpos=b}
\renewcommand{\lstlistingname}{図}
\renewcommand{\thelstlisting}{\thefigure}
% lstlisting が出るたびに figure カウンタを進める
\pretocmd{\lstlisting}{\stepcounter{figure}}{}{}
\pretocmd{\lstinputlisting}{\stepcounter{figure}}{}{}
}
動機
実験レポートで「レポート中のソースコードは図として貼り付けること.スクリーンショットではなく,テキスト形式で示すこと」(意訳) 的な指示を受けたので作成しました.デフォルトだと
- 独立したカウンタ
- caption は上
に出るので,設定が必要でした.
環境
TeXLive の LuaHBTeX Version 1.22.0 を使っています.OSはArchLinuxです.
設定内容
-
キャプション位置の変更
\lstset{captionpos=b}で位置をキャプションの位置を調整しています. -
名前の変更
\lstlistingnameの値を"図"に設定することでデフォルトの "Listing" から変更しています. -
カウンタの共通化
\thelstlistingを\thefigureに置き換えることでlstlistingがfigureのカウンタを参照するようにします.このままだとlstlistingの番号が全て0になってしまうため,
lstlistingが出るたびに figure のカウンタを進めることで対応しました. -
複数ファイルへの対応
subfilesパッケージで分割コンパイルをしていたため,全てのファイルで適切に動作させるために\AtBeginDocumentでwrapしました.参考文献の項の名前を "Reference" から「参考文献」に変えたいときなども\AtBeginDocument{\renewcommand{\refname}{参考文献}}で対応できるため,便利です.