49 私が使っている PDF 関係のソフトのまとめ

PDF関係のネタを色々と書いてきて、 自分でもどこに何を書いたか良く分からなくなってきたので、 整理しておく。しばらく工事中となる。

1. PDF を読む (1) Preview

macOS 純正のビューワーである Preview が便利である。

2. PDF を読む (2) Skim

LATEX を使っていると、synctex という機能が使いたくなるが、 それは Preview ではサポートされていないので、 Skim というPDFビューワーを使う人が多いようである。

macOS の Preview も捨て難いので、 私は Preview/Skim の二重生活をしている。 (Skim には Preview の持っていない機能が色々あるらしいが、 私は synctex 機能くらいしか使っていない。)

3. pdftk -- PDF “編集” ツール

pdftk というソフトは、一言で説明しにくいが、 PDF ファイルに色々な編集が出来る。

ページごとに分割したり、その反対に結合したり。

“背景の追加” が有用な機能である。
pdftk doc1.pdf background doc2.pdf outout doc3.pdf
(doc2.pdf を背景として、 doc1.pdf を重ねた doc3.pdf を出力する。)
何のことか分かりにくいかもしれないが、 私は例えば次のように使っている。 書類など、Word/Excel 形式のファイルが書式として与えられた場合は、 必要なことを入力・印刷して一丁あがりだが、

ということがある。 その場合に書式だけで何も書いていないPDFを用意し、それを background にして、 TEX で作った文書と重ね合わせた PDF を作る、ということが出来る。 要するに何であっても、TEX で書くことが出来る、ということである。

参考: 「pdftk を使ってみる」

4. スキャンしてPDFを作る

ScanSnap というスキャナーを使っている。 ScanSnap Home というソフトウェアが提供されている (ネットで入手できる)。 OCR機能が含まれているので、テキスト層付きの PDF が作れる。

5. OCR

学習・研究用には、検索が出来る出来ないは死活問題と言っても良いくらいなので、 OCRできることは重要である。

私は、ずっと以前は Adobe Acrobat を使って OCR していたが、 Adobe の商売のやり方が私の使い方とは合わないので、 最近はほとんどの場合に ScanSnap の OCR 機能に頼っている。

自分でスキャンして作ったPDFでない場合(ネットから入手した資料など)は、 ScanSnap の OCR 機能が使えないので、 Wondershare の PDFelement というのを利用している。

6. 栞 (document outline) の利用

論文やテキストなどは、目次を栞 (document outline) にしておくと、 PDF の使い勝手が大いに向上する。 紙媒体と違ってパラパラできないが、栞があれば紙媒体よりも便利かもしれない。

Preview, Skim はもちろん栞を表示できて、それをクリックしてジャンプ出来る。 WWWブラウザーでも PDF が読めることが多い。 Google Chrome と Mozilla Firefox では、栞もサポートされている (「Firefox で文書のアウトラインを表示」) が、 Safari は栞に対応していない (PDFファイルを Preview で開くように設定するしかないらしい)。

もちろん元祖 Adobe Acrobat には栞を作成・編集する機能があるが、 その機能を持つサードパーティ製のソフトウェアは意外と少ない。 個人的には Preview や Skim がサポートしてくれることを期待しているのだが…

ないものねだりをしても仕方ないので、 私は Wondershare の PDFelement や、Superace の UPDF というソフトを使っている。 どちらも私は (subscription ではなく) 買い切りでやっているので、 最新版を使っているのではないが、まあまあの使い勝手である。

最近は、ChatGPT に目次の栞化をしてもらっている (「PDFの目次の栞 (PDF document outline)」)。 鶏を割くに牛刀というようで少し気が引けるのだが…

7. PDFの “チェック”

OCRしてあるかどうか、poppler の pdftext を利用してチェックするスクリプト pdf-searchable を用意している。
curl -O https://m-katsurada.sakura.ne.jp/misc/20260820/pdf-searchable
chmod +x pdf-searchable
mv pdf-searchable $(SOMEWHERE)
例えば、OCRし忘れた PDF を探すには
pdf-searchable *.pdf
とするとか。

poppler は MacPorts でイントールできる
sudo port install poppler

栞を作ってあるか、mupdf の mutool を利用してチェックするスクリプト pdf-bookmarked を用意している。
curl -O https://m-katsurada.sakura.ne.jp/misc/20260820/pdf-bookmarked
chmod +x pdf-bookmarked
mv pdf-bookmarked $(SOMEWHERE)
例えば、栞を作り忘れた PDF を探すには
pdf-bookmarked *.pdf
とするとか。

mupdf は MacPorts でイントールできる
sudo port install mupdf

この2つは同時に実行するのが良いかもしれない。
curl -O https://m-katsurada.sakura.ne.jp/misc/20260820/pdf-check
chmod +x pdf-check
mv pdf-check $(SOMEWHERE)

PDFには、フォントを埋め込むことが強く推奨されるようになった。 どういうフォントを使っていて、埋め込みがされているかどうか、 poppler の pdffonts コマンドで調べることが出来る。

フォントの埋め込みし忘れているかどうか表示する、 check-pdf-fonts.sh というスクリプトを用意した。
curl -O https://m-katsurada.sakura.ne.jp/misc/20260905/check-pdf-fonts-v2.sh
chmod +x check-pdf-fonts.sh
mv check-pdf-fonts.sh $(SOMEWHERE)

多くのソフトウェアで PDF 出力が出来るが、 最近は必要なフォントの埋め込みが出来るものが多いらしい。 あまり意識する必要はない、ということである。


ところで、これは個人的な事情というべきかもしれないが、 以前は LATEX で図を EPS (Encapsulated PostScript) 形式で作成することが多かった。 テキストが含まれている図を LATEX で取り込んでPDFを作る場合に、 フォントの埋め込みがされない場合がある。 今となっては EPS は時代遅れなので、 可能ならば図を PDF で作成し直すのが良いが、 それが出来ないならば、次善の策として、 Ghostscript で EPS → PDF 変換をして、 その際にフォントの埋め込みをする手がある。
gs -dSAFER -dBATCH -dNOPAUSE \
   -sDEVICE=pdfwrite \
   -dEmbedAllFonts=true \
   -dSubsetFonts=true \
   -sOutputFile=なんとか.pdf \
    なんとか.eps

実はこれが正しく動くかどうかはケース・バイ・ケース (BoundingBox が狂っていたりすると、手動で微調整が必要になったりする) である。 自動化するダメ元スクリプトを作った。

curl -O https://m-katsurada.sakura.ne.jp/misc/20260905/ps2pdf-safe-v2.sh
chmod +x ps2pdf-safe-v2.sh
mv ps2pdf-safe-v2.sh $(SOMEWHERE)

8. TEX とPDF

英語の世界では、かなり以前から、 .tex から .dvi でなく直接 .pdf を生成するのが普通になっているそうだが、 日本では移行が遅れて、 platex あるいは uplatex で .dvi にしてから、 dvipdfmx で .pdf にするという従来手順がまだ結構使われているのではないか (私がそうです)。
dvipdfmx -d 5 -O 2 なんとか.dvi

日本でも、 lualatex を利用することで .pdf を生成する、というやり方に移行することになる、 と言われている。

「LaTeXクックブック: デザインの洗練・TikZによる可視化・LuaLaTeX活用」 という本が出たそうで、遅ればせながら、それを見て色々試してみるつもりである。

TEX に図を取り込む場合に、 ずっと以前は EPS 形式のデータを用意したが、 今では PDF や PNG, JPEG などでデータを用意することが多くなった。

ノウハウ: LATEX に PDF で作成した図を取り込むとき、 余白部分を取り去りたければ、 TeXLive に含まれている pdfcrop コマンドを用いると良い。
pdfcrop なんとか.pdf

桂田 祐史