1
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?

LaTeXの数式を画像で保存する方法

Last updated at Posted at 2024-03-19

概要

  • LaTeXで書いた数式をpngで保存する方法です
  • スクショと異なり背景透過もされているため扱いやすいです
  • 複数の数式を一度に出力できます
  • パワポなどに貼るときに便利です

環境

  • TexLive 2023
  • Inkscape 1.3.2
  • Ubuntu 22.04(Windowsにも方法は転用可能)

方法

大雑把な流れ

  1. LaTeXで数式のみのpdfを出力(ページ番号なども無し)
  2. pdfcropで余白を削除
  3. rungsでフォントをパスに変換(文字化け防止)
  4. pdfseparateでpdfをページごとに分離
  5. inkscapeでpdfをpngに変換

pdfcroprungspdfseparateは,TexLiveに同梱されています.

ビルド用のshellスクリプト

texbuild.sh
# ファイルパスの処理
filepath=$(readlink -m $1)
dir="$(dirname "$filepath")"
file="$(basename "$filepath")"
file="${file%.*}"
echo "[${dir}] [${file}]"

# ファイル名の生成
texname=$file".tex"
pdfname=$file".pdf"
pdf_tmp=$file"_tmp"
pdf_sep=$file"_%02d.pdf"

# カレントディレクトリの移動
OLDPWD=$PWD; cd $dir
echo $PWD

# すでにあるpdfとpngを削除
find -regex ".*png"
rm *pdf *png

# メインの処理(lualatex使用バージョン)
lualatex -interaction=nonstopmode --jobname=$pdf_tmp $texname
pdfcrop $pdf_tmp".pdf" $pdf_tmp".pdf"
rungs -o $pdfname -dNoOutputFonts -sDEVICE=pdfwrite $pdf_tmp".pdf"
pdfseparate $pdfname $pdf_sep
rm $pdf_tmp*
eqs=$(find -regex ".*[1-9]\.pdf" -type f )
for eq in $eqs; do
  echo $eq
  inkscape --pages=1 $eq --export-dpi=600 --export-type="png"
done

# 作業前のディレクトリに戻る
cd $OLDPWD

実行例

以下のtexファイルを例に実行例を示す(\clearpageごとに別々の画像が出力されます).

eq.tex
\documentclass[a4paper,10pt]{ltjsarticle}
\usepackage[deluxe,haranoaji]{luatexja-preset}
\usepackage{amsmath,mathtools,amssymb}
\pagestyle{empty}
\begin{document}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{align*}
  e^{j\theta} = \cos(\theta) + j\sin(\theta)
\end{align*}
\clearpage
\begin{align*}
  _{\it n}\mathrm{C}_{\it r} = \frac{n!}{(n-r)!r!}
\end{align*}
\clearpage
\begin{align*}
  \int f(x)dx, \ g(x)=\int^{x} f(x')dx'
\end{align*}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\end{document}

上記のtexファイルに対して,以下のコマンドを実行する.

source texbuild.sh eq.tex

出力後のディレクトリ構造と出力された画像:

.
├── eq_01.pdf
├── eq_01.png
├── eq_02.pdf
├── eq_02.png
├── eq_03.pdf
├── eq_03.png
├── eq.pdf
├── eq.tex
└── texbuild.sh
  • eq_01.png
eq_01.png
  • eq_02.png
eq_02.png
  • eq_03.png
eq_03.png

ソースコード

1
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
1
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?