4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

LaTeXでMATLABのコードを入れるときはplistingsも併用しよう

Posted at
「はじめに」の前に

以前から、日常でちょっと嬉しかったプログラム系の小テクとかは、大したことでもないので"X"(旧Twitter)でつぶやいていたんですね。
ですが自分がわからないことを調べるとき、ググってもあんまりXがひっかかることはなかったというか、それこそQiitaとか他のサイトは出てきますが、あんまりXは見かけなかったんです。
ということは、前述のような「ちょっと嬉しかった小テク」みたいなものは、Xというよりもここで書いたほうが有益なのでは、と考えてこれを書いてみました。

前フリ

この間からLaTeXでちょっとした文書を作ろうとしているんですが、そこで日頃使っているMATLABのコードを書く機会がありました。
そこでいろいろ文献をあたったもののあまりうまくいかず、苦節数日いろいろ試行錯誤したところ、良い感じにうまくいったのでその記録を改めて残しておきます。
なお、自分の環境は以下の通りです。

  • Windows 11
  • TeX Studio 4.6.2
  • pLaTeXでビルド (※良くないらしいですが今から変える余裕もなかったため)

大変恐縮ですが、自分は「なんかよくわからないけどLaTeX動いてる!ヤッター!」という人間のため、TeXの環境設定等には言及しません。よくわかっていないからです。
その辺りは他の方の文書等をご参照ください。よろしくお願いします。

本題

ズバリ、"plistings"を導入しよう!という感じです。
他の方の記事などでは不要となっていたんですが、自分の環境では必要でした。パッケージの兼ね合いとかもあるのかもしれません(詳しい方いらっしゃたらご教示いただければ幸いです)。
具体的には、コメントの文章の日本語が変な感じになるんですよね。全部英語で書けばいいのかもしれませんが、めちゃくちゃコメントも読みながらプログラムを書く私としては厳しかったです。

最後に各リンクを貼らせていただきますので、ご参照いただきながらやってみてください。

使用するTeXコード

最初に、本記事で使うLaTeXのコードを下記に書いておきます。最後の1.のURLに記載されている"matlab-prettifier"というpackageを使っていますので、もし導入されていない方はいい具合に入れてください。自分はいつの間にか使えるようになっていました。何かのタイミングでインストール?していたらしいです。
また、ここでは文書に挿入するmファイルが同じフォルダ階層にあるものとしています。もし、このtexファイルと異なるフォルダにある場合は下の./hogehoge.mの部分をいい感じに変更してください。

MATLABtest.tex
\documentclass[dvipdfmx,12pt,a4paper]{jsarticle}
%\usepackage{plistings} % plistingを含める際はコメントアウトを解除する
\usepackage[framed,numbered]{matlab-prettifier} 

\begin{document}
\title{TITLE}
\author{author}
\date{today}   
\maketitle

\section{はじめに}
適当に文章が入る。

\section{ソースコード}
\lstinputlisting[style=Matlab-editor,basicstyle=\footnotesize\mlttfamily]{./hogehoge.m}
       
\end{document}

また、使用するMATLABのmファイルは次の通りです。マジで適当に作りました。

hogehoge.m
function out = hogehoge (input1,input2)
%% セクションタイトル
% コメント
%% english section title
% english comment
out = input1 * input2;
end

このままだとどうなるか

まず、シンプルにこのままビルドするとどうなるかやってみましょう。実際のpdfファイルは皆様の方でビルドしてご覧いただくことにして、ここでは出てきたpdfをスクショして載せます。

コード内の英字部分は問題なさそうですが、日本語の部分が変ですね。具体的には"%"の記号だけコメントの緑色が反映されていて、その後の日本語だけ黒くなっています。
なおここでは省略しますが、日本語・英語が入り混じっているとまた変な感じになります。確か%の後に先に英語だけ来て、最後に日本語だけ黒字で出たような。

plistingを入れると

参考に示したGitHubのページからplistings.styをzipでダウンロードし、展開したらファイルをこのtexファイルと同じフォルダ内にコピーします。ただ、この場合はこの文書でしか使えないため、他の文書でも同様にコードを入れる場合は他のフォルダへ入れる必要があるかもしれません。本記事では省略。
plistings.styをコピー出来たら、TeXコード内でコメントアウトしている%\usepackage{plistings} % plistingを含める際はコメントアウトを解除するの部分のコメントを解除します(文頭の"%"を削除)。その上でビルドすると次のようになります。

日本語のところも緑色になりましたね。要はこれがしたかったので、これで目標達成です。

最後に

実は先々月くらいにやったので、ほとんど内容を覚えていませんでした……記憶の範疇で書いたので、誤りがあったら申し訳ありません。
何かの参考になれば幸いです。よろしくお願いします。

参考URL

  1. How can I include MATLAB code in my LaTeX document?
  2. GitHubのplistingsのページ
  3. MacでLaTeXにプログラムのソースを入れている方のページ
  4. 上の3.のサイトで参照されていたQiitaページ
4
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?