Skip to content

reference list

matsub.rk edited this page Feb 14, 2016 · 1 revision

ソースコードリスト

\lstinputlisting[language=C]{hello.c}

\lstinputlisting[
  language=C,
  firstline=2,
  lastline=6,
  caption={main関数},
  label={lst:hello}
]{hello.c}

\begin{lstlisting}[
  caption={新しいブランチを作る},
]
git checkout -b <<branch_name>> master
git push -u origin <<branch_name>>
\end{lstlisting}

ソースコードリストは、texコード内にそのまま書き込む以外に外部ファイルから読み込むことができます。 動くコードをそのまま埋め込むことができるわけです。

ソースコードリストの使用にはlistingsパッケージを使います。 外部ファイル埋め込みには\lstinputlisting、 texコード内に書き込むならlstlisting環境を使います。 他にもインラインコードを\lstinline{some_code}のように表示できます。

listingsには様々なオプションがあります。シンタックスハイライトを有効化したり、 シンタックスハイライトを行う際の配色などのフォント加工、行番号の表示などがあります。 CTANからlistingsのドキュメントをダウンロードするといいと思います。

https://www.ctan.org/pkg/listings?lang=en

オプションは\lstsetコマンドによって既定値を設定したり、 \lstdefinestyleコマンドで独自スタイルを定義したりできます。

ということで例。

hello.c

#include<stdio.h>
int main()
{
	printf("Hello world!");  // ハロー!
	return 0;
}
\documentclass[dvipdfmx, a4j]{jsarticle}
\usepackage{listings}

\renewcommand{\lstlistingname}{リスト}
\lstset{
  float=H,
  numbers=left,
  tabsize=4,
  showstringspaces=false,
  frame=trbl,
  caption=\lstname,
  basicstyle=\ttfamily,
  numberstyle=\ttfamily,
}
\lstdefinestyle{oneline}{
  numbers=none,
}

\begin{document}
\lstinputlisting[language=C]{hello.c}

\lstinputlisting[
  language=C,
  tabsize=8,
  firstline=3,
  lastline=7,
  caption={main関数},
  label={lst:hello}
]{hello.c}

\begin{lstlisting}[
  caption={新しいブランチを作る},
  style=oneline,
]
git checkout -b <<branch_name>> master
git push -u origin <<branch_name>>
\end{lstlisting}

リスト\ref{lst:hello}はこんにちは関数である。
\end{document}

listings

Clone this wiki locally