siar

Snowy Institute

LaTeX に MATLAB コードを挿入する

LaTeX で書く文書に MATLAB のコードを貼るための環境構築方法の紹介です.

環境

現在,Linux (Ubuntu 16.04/18.04) で動作確認を行っています.

texlive を aptコマンドにてインストールしています.

sudo apt install texlive

準備

sty ファイルの配置

下記リンクより,M-code LaTeX Package をダウンロードします.mathworks のアカウントのログインが必須ですのでご注意ください.

M-code LaTeX Package - File Exchange - MATLAB Central

ダウンロードしたファイルを解凍し,中のファイルmcode.styを texlive のパッケージ置き場に配置します.例えば筆者の環境では,/usr/share/texlive/texmf-dist/tex/latex/以下に配置します.

後々のことを考えると,次のようにディレクトリごとコピーしてしまってもいいかもしれません.

cd ~/Downloads
unzip m.zip  # mcode という新たなディレクトリができ,そこに展開されます.
sudo cp -r mcode /usr/share/texlive/texmf-dist/tex/latex/

パッケージリストの更新

パッケージリストを更新します.

sudo mktexlsr 

使用方法

実際に利用していきます.

プリアンブルへの記述 (必須)

最もシンプルな設定は

\usepackage{mcode}

となります.

オプションは現在実装されている範囲で

オプション 設定
framed 外枠あり
numbered 行番号あり
autolinebreaks 行が長い時の自動改行
useliterate 不等号などの記号置換(例: >=)
bw 白黒表示

です.次のようにプリアンブルを記述すれば設定が反映されます.

\usepackage[framed,numbered,autolinebreaks,useliterate]{mcode}

なお,通常使う

\usepackage{listings}

は不要です.

文章中に挿入

文書中にコードをシンタックスハイライト付きで表示したい場合は,

\mcode{A = eye(2);}

のように記述します.

useliterate と bw のオプションのみ反映されます.

ブロックで挿入

通常のコードと同様,

\begin{lstlisting}
% mcode 
\end{lstlisting}

で挿入できます.

ファイルからブロックで挿入

こちらも通常のコードと同じく

\lstinputlisting{FILE_PATH}

で挿入できます.

FILE_PATH の部分は絶対と相対,どちらでの指定でも問題ありません.

備考

日本語でのコメント等やplatexに対応しているのかをまだ把握していません.

分かり次第追記します.