OverleafのTeX文書にプログラムのソースコードをいい感じに貼り付ける。

大学一年生のころはLaTeXを自分のパソコンにインストールして、自分で環境を構築していましたが今や、Overleafが一番使いがってが良いのでレポートや文書等をOverleaf*1で作っています。

プログラムのソースコードをいい感じにLaTeXに貼り付けたいな~と思ったわけです。

Overleaf

オンライン上で動作するLaTeXエディタです。

Overleaf
エディタはこんな感じ。

本編

実は標準でjvlistingが装備されており、プリアンブルに\usepackageすれば使えるが、色は反映されない。jlistingを使ってやる。

以下のurlから、jlisting.sty.bz2という圧縮ファイルをダウンロード。*2 osdn.net bz2の圧縮なので解凍ソフトを使いましょう。自分はわざわざLhaplusを入れて解凍した。

解凍するとjlisting.styファイルが出てくるので、これを使う。

styファイルはtexファイルがあるディレクトリに直接置いてもコンパイラは認識してくれる。なので以下のようにOverleafに直接アップロードする。 最終的に、main.tex,latexmkrc*3,jlisting.sty,挿入したいソースコードが入ることとなる。

もちろん、コピペして貼り付ける方法もある。しかし、上記のようにソースコードのファイルをアップロードすることでソースコードを貼り付けたいtexファイルの中身がすっきりするのでこの方法で挿入することを勧める。(挿入方法は後述)

\usepackage{listings,jlisting}

\lstset{
language={C},
backgroundcolor={\color{white}},
basicstyle={\small},
identifierstyle={\small},
commentstyle={\small\ttfamily \color[rgb]{0,0.5,0}},
keywordstyle={\small\bfseries \color[rgb]{1,0,0}},
ndkeywordstyle={\small},
stringstyle={\small\ttfamily \color[rgb]{0,0,1}},
frame={tb},
breaklines=true,
columns=[l]{fullflexible},
numbers=left,
xrightmargin=0zw,
xleftmargin=3zw,
numberstyle={\scriptsize},
stepnumber=1,
numbersep=1zw,
morecomment=[l]{//}
}

をプリアンブルに入れて準備は終わり。この時はc言語を貼り付けるのでlanguage={C},である。

ソースコードをアップロードして貼り付ける場合\begin{document}内にこのようにする。

\lstinputlisting[caption={sketch},label={pro:sketch}]{sketch.pde}

こんな感じで貼り付けることができる。

感想

Vscode拡張機能のように細かく色づけはしてはくれないが、少しは見やすくなるだろうといった感想。texファイルのディレクトリにおいておけば読み込んで挿入してくれることと、キャプションをつけてくれるのがポイントが高い。

参考文献

以下を参照して記事を作成した。

jlisting.styの詳しい使い方などはこちらから。

www.yamamo10.jp yu00.hatenablog.com qiita.com

*1:サイト--> https://ja.overleaf.com/

*2:そんなにデカくないstyファイルなのにどうして圧縮するんだろうか

*3:日本語で使う場合に入れるファイル