LaTeXにソースコードを【美しく】貼る方法
まえがき
この記事は、私が過去にQiitaへ投稿した以下の記事のリメイクです。
今後、こちらのサイトにて最新情報を随時更新します。
概要
を目指す. また,おまけとして,
- キャプション名を変える方法
- キャプション番号を変える方法
も紹介する.
方法
jlisting.styのインストール
注:jvlistingで対応可とのコメントをいただきました。私は試していないのですが、参考までに。 jlisting.styは以下からダウンロードできます。 https://ie.u-ryukyu.ac.jp/e075729/2009/08/02/jlistingsty%e3%81%ae%e3%82%a4%e3%83%b3%e3%82%b9%e3%83%88%e3%83%bc%e3%83%ab/
サンプル
\documentclass[a4j]{jarticle} %ここは関係ない \usepackage{listings,jlisting} %日本語のコメントアウトをする場合jlisting(もしくはjvlisting)が必要 %ここからソースコードの表示に関する設定 \lstset{ basicstyle={\ttfamily}, identifierstyle={\small}, commentstyle={\smallitshape}, keywordstyle={\small\bfseries}, ndkeywordstyle={\small}, stringstyle={\small\ttfamily}, frame={tb}, breaklines=true, columns=[l]{fullflexible}, numbers=left, xrightmargin=0zw, xleftmargin=3zw, numberstyle={\scriptsize}, stepnumber=1, numbersep=1zw, lineskip=-0.5ex } %ここまでソースコードの表示に関する設定 \begin{document} HelloWorldのソースコードを,ソースコード\ref{fuga}に示す. … \begin{lstlisting}[caption=hoge,label=fuga] #include<stdio.h> int main(){ printf("Hello world!"); } \end{lstlisting} \end{document}
結果
おまけ
キャプション名を変える方法
キャプション名「ソースコードn」を「プログラムn」に変えるには,\begin{document}
の前に\renewcommand{\lstlistingname}{プログラム}
と書く.
キャプション番号を変える方法
ここでは,jreport形式において,キャプション番号を「[chapter番号].[section番号].[subsection番号]-[そのsubsection内においてn番目]」に変更することを目標とする.
\documentclass[a4j]{jreport} … \makeatletter \AtBeginDocument{ \renewcommand*{\thelstlisting}{\arabic{chapter}.\arabic{section}.\arabic{subsection}-\arabic{lstlisting}} \@addtoreset{lstlisting}{section}} \makeatother … \begin{document} …
この時,キャプション番号の一番後ろ(ハイフンの右側)の部分を1から数え直したいは,自分で都度リセットする必要がある.
そこで,数え直したい場所の直前に\setcounter{lstlisting}{0}
を書くことで1にリセットすることができる.