LaTeXでソースコードを書く
基本
listings
を用いる.
\documentclass{jsarticle} \usepackage{listings} \begin{document} \begin{lstlisting} #include <iostream> int main(){ std::cout << "Hello, world!" << std::endl; return 0; } \end{lstlisting} \end{document}
そうすると下の感じになる.
基本2
\begin{lstlisting}
の後ろに[]を書いてその中に色々オプションを指定できる.
例えばlanguage=c++
のようにすればc++仕様になる.
\begin{lstlisting}[language=c++] #include <iostream> int main(){ std::cout << "Hello, world!" << std::endl; return 0; } \end{lstlisting}
予約語が太字になってスペースが表示されるようになっていることが分かる.
他にもnumbers=left
で左に行番号を表示したり,tabsize=2
でタブサイズを指定できたりする.
オプションの指定には,\lstset
を用いる方法もある.
様々なところで利用する際に同じオプションを付けたいならこっち.
\lstset{ frame=single, numbers=left, tabsize=2 } \begin{lstlisting}[language=c++] #include <iostream> int main(){ std::cout << "Hello, world!" << std::endl; return 0; } \end{lstlisting}
結果は下.
枠追加,左側に行番号追加,タブサイズが2になっていることが分かる.
また以前と同様に\begin{lstlisting}
の方でオプションも追加できる.
応用
\lstnewenvironment
を用いることで自分で新しく定義できる.
\lstnewenvironment{mylisting}[1][] {\lstset{ frame=single, basicstyle=\ttfamily, numbers=left, numbersep=10pt, tabsize=2, extendedchars=true, xleftmargin=17pt, framexleftmargin=17pt, #1 } }{} \begin{mylisting}[language=c++,caption=C++サンプルコード] #include <iostream> using namespace std; int main(){ std::cout << "Hello, world!" << std::endl; return 0; } \end{mylisting}
結果は下のほうに.
こんな感じに定義すると便利かもね.
参考URL
基本的なところ
- Latexにプログラムっぽいフォントでソースコードを載せる簡単な方法 | しゃこメモ
- listings.sty: LaTeX パッケージ
- ftp://ftp.kddilabs.jp/CTAN/macros/latex/contrib/listings/listings.pdf
languageに利用できるもの
応用編