マシュマロンのブログ

おはようございます。こんにちは。こんばんは。

【Google colab】Type3フォントをpltで作成した図から駆逐する

これはGoogle colabで論文用の図を作成する環境を構築する話です。

お急ぎの方はこちら




~某日~

(私) できた!丹精込めて書いた論文!いざ投稿!(submitボタンポチー)

(某システム) Type3フォントなんて入れちゃって!ださwwww

(私) ピエ… (Type3って何?)


結局今回の私の場合、matplotlib.pyplot及びseabornで作成した図(pdf)に埋め込まれたフォントがType3だった。

  ※Type3フォントとは⇒
PostScriptフォント - Wikipedia

  ※自分の図にType3フォントが入っているかは無料のAdobe Acrobat DCのプロパティから確認できます。

よくわからんけど、Type3を駆逐せねば!!



そこで、「Type3 matplotlib」みたいな適当なワードでググってみると私と同じ悲しみを過去に味わっている方々の記事がヒットしました。

私は図を作るのにGoogle colabを使用していたので、とにかく出てきたコードをcolab上で動かしてみましたが

[Errno 2] No such file or directory: 'latex': 'latex'

やら

Failed to process string with tex because latex could not be found


やらエラーメッセージが出てしまいました。

colabもよくわからない、サイトで紹介されているコードが呪文にしか見えない私にはエラーの解決方法もわからないので、ここでもググってみることに。

やはり、そこには先人がいらっしゃいました。インターネットありがとう…。




そんなこんなでGoogle colab上でType3フォントを使わない図を作成するための環境構築は以下のように行います。

#まずlatexのインストール、途中で何か聞かれるのでyを入力すればok
! sudo apt-get install texlive-latex-recommended 
! sudo apt-get install dvipng texlive-latex-extra texlive-fonts-recommended  
! wget http://mirrors.ctan.org/macros/latex/contrib/type1cm.zip 
! unzip type1cm.zip -d /tmp/type1cm 
! cd /tmp/type1cm/type1cm/ && sudo latex type1cm.ins
! sudo mkdir /usr/share/texmf/tex/latex/type1cm 
! sudo cp /tmp/type1cm/type1cm/type1cm.sty /usr/share/texmf/tex/latex/type1cm 
! sudo texhash 
! apt install cm-super


#次にpltの設定
import matplotlib.pyplot as plt

plt.rcParams['ps.useafm'] = True
plt.rcParams['pdf.use14corefonts'] = True
plt.rcParams['text.usetex'] = True

後は普通に図を出力するコードを書けば大丈夫です。(でも、いちいち設定するのめんどくさいですね…)
というわけで楽しい論文執筆ライフを!ノシ



がっつり参考にした素晴らしいサイト

  • latexのインストール部分⇒

https://learnsharewithdp.wordpress.com/2020/05/08/latex-matplotlib-google-colab/ (英語サイト)

  • matplotlib.pyplotの設定部分⇒

https://kanojikajino.hatenablog.com/entry/2012/03/07/143816