0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

figureとlstlistingのカウンタを共通化する

Posted at

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です.

設定内容

  1. キャプション位置の変更
    \lstset{captionpos=b}で位置をキャプションの位置を調整しています.

  2. 名前の変更
    \lstlistingnameの値を"図"に設定することでデフォルトの "Listing" から変更しています.

  3. カウンタの共通化
    \thelstlisting\thefigureに置き換えることでlstlistingがfigureのカウンタを参照するようにします.このままだとlstlistingの番号が全て0になってしまうため,
    lstlistingが出るたびに figure のカウンタを進めることで対応しました.

  4. 複数ファイルへの対応
    subfilesパッケージで分割コンパイルをしていたため,全てのファイルで適切に動作させるために\AtBeginDocumentでwrapしました.参考文献の項の名前を "Reference" から「参考文献」に変えたいときなども\AtBeginDocument{\renewcommand{\refname}{参考文献}}で対応できるため,便利です.

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?