スポンサーリンク
2カラム(2段組)の論文PDFを、1カラム(1段組)に変換して、余白にメモをとりやすいPDFを作成する方法を紹介します。この方法にたどり着くまで結構大変でした。
目次
スポンサーリンク
1カラムに変換して読みたい!
私は論文を読むときは、印刷して、余白に手書きでメモをとったり、手書きの図を書きながら読むのが好きです。
というのも、後からもう一度内容を確認したいときに、メモのおかげで前回自分が注目したところをすぐ見つけられたり、同じことを2回悩まずに済んだりするからです(使う紙は増えますが、最後はドキュメントスキャナでデータ化して、元のPDFと一緒に保存しておけば保存スペースはとらない)。
ただ、この作業には、PDFに十分な余白が必要です。しかし、私の読む多くの論文は2カラムで、余白がほとんどありません。
そこで今回は、余白の少ない2カラムの論文を、余白の広くとれる1カラムに変換する方法を紹介します。
変換サンプル
今回紹介する方法で変換すると、こんな感じになります(題材は、IEEEの論文サンプルPDFです)。
左が元のPDF(2 columns)、右が変換後のPDF(1 column)です。
↑サンプルとして、余白にダミーのメモを書いてみました。
↑変換の全体像はこんな感じです。図も再配置されているのがわかります。
今回選択したツール:「K2pdfopt」
今回利用したソフトウェアはK2pdfoptで、Windows/Mac OSX/Linuxで利用できるソフトウェアです(※Win/Mac用のGUIもありますが、いろいろなオプションで試すには不便そうだったので、今回は本家のCUI版を使っています)。
K2pdfoptは、マルチカラムのPDFを、Kindleなどの電子書籍リーダーやスマートフォンで快適に読むために変換するツールなので、「初期設定のままでは」、出力先デバイスの解像度に合わせてPDFを画像化してしまいます。文字も巨大です。
しかし、ここからいろいろと設定を変更することで、なんとか「画像化なし」「文字サイズは小さいまま」を実現しました。これから紹介する設定が大切です。
基本的な使い方は・・・
基本的な使い方は、まずダウンロードしたk2pdfopt.exeに、変換したいPDFをドラッグアンドドロップして、オプション(-nなど)を入力して、最後にもう一度Enterを押すだけです。すると、自動的に変換結果が、元のPDFのあるフォルダに、「○○_k2opt.pdf」という名前で保存されます。
でも、コマンドラインがオススメ
ただ、CUIツールからの設定がちょっとめんどうなので、コマンドラインから使うことをオススメします。たとえば「-mode 2col」というオプションを設定する場合は、
>k2pdfopt -mode 2col paper.pdf
とすれば、OKです。
最重要:おすすめオプション
今回の2カラムの論文を1カラムにして読みやすくする、という特殊な目的なので、オプションの変更が必須です。そんな目的用のおすすめのオプションはこちらです。これで、余白の大きなシングルカラムPDFが出力されます。
-n -w 1.0s -h 1.0s -om 1.5,0.25,1.5,0.25 -c -wrap- -fc- -col 2
まだ改善の余地はありますが、これでとりあえずそこそこの変換ができるはずです。
※注意:保存先ファイルパスに日本語が含まれると出力できません。リネーム・移動して変換してください。また、-nと同時に使えないオプションを付けてしまったり、同時に使わないといけないオプションを付けないと 、ラスタライズされてしまいます(=画像になってしまう)。
実行方法
コマンドラインさえ分かってしまえば、あとはショートカットかバッチファイルを作ってしまえばOKです。今回はバッチファイルのほうを紹介します。
cd /D %~dp0
k2pdfopt -n -w 1.0s -h 1.0s -om 1.5,0.25,1.5,0.25 -c -wrap- -fc- -col 2 -sm %1
こんなファイルを「k2pdfopt-paper.bat」などといった名前(.bat)で保存して、目的のpdfファイルをドラッグアンドドロップすれば、2カラムPDFから、余白の広い1カラムPDFが出力されます。
おすすめオプション その2
もうちょっと攻めてきれいなのを作りたい場合は
-n -w 1.0s -h 1.0s -m 0.0,1.0,0.0,1.0 -om 1.5,0.25,1.5,0.25 -c -wrap- -fc- -col 2
こんな感じです(ヘッダ・フッタ除去←後半参考資料にて解説)。
各オプションについて
今回使った各オプションの意味や、今回使っていないオプションの使いどころ・コツについては、末尾の「k2pdfoptメモ」に書き出しておきました。適宜調節してみてください。おすすめから適宜変更すれば、よりよい結果が出力できるはずです。
参考資料:k2pdfoptメモ
ここでは、オプションの説明・注意点・エラー回避法などを解説します。今回使用したのはK2pdfopt v1.64a 2013/1/5版です。困難多かった。
マージンパラメータの順番
コマンドラインパラメータの解説では、マージン系オプションのパラメータは bottom, left, right, top (=下から時計回り)の順となっていましたが、実際にやってみると left, top, right, bottom (=左から時計回り)でした。
というわけで、例えば出力ファイルの上下に3inch、左右に2inchの余白を設けたい場合は、「-om 2.0,3.0,2.0,3.0」にします。
エラー・処理の遅さ・保存失敗対策
「-n」オプションや「-mode 2col」オプションなどによる、native PDF(画像化・ラスタライズしないPDF)のまま保存する設定の場合、pdfファイルまでのパスに日本語(ASCII以外)が含まれると、保存ファイルが0.0MBになるなど、書き込みに失敗するようです(pdfのファイル名も日本語を含んではダメ)。
「** ERROR reading from ... using MuPDF. Trying Ghostscript...」や「error: cannot open ... .PDF」「error cannot load document ... .PDF」「wmupdf_remake_pdf: Error writing output PDF file ... .pdf」などのエラーや、k2pdfoptの実行が遅いのも、この日本語を含むファイルパスが原因のようです。
カラー出力する
デフォルトでは白黒出力なので、「-c」オプションでカラー出力に変更しておきます(もしかしたら-nがあれば必要ないかも)。
文字の自動拡大を防止する
2カラムを1カラムにするので、1行の幅(1行に入る文字数)がおよそ2倍になって欲しいのですが、これを増やすことはできなさそうでした。ただ、このままだと2カラムのときの1行を、2カラム分の横幅まで拡大してしまうので、文字が大きくなりすぎたりします。
そこで、拡大(fit column)しないように「-fc-」というオプションを付けると、この拡大を抑制できます。
GhostScriptを使う
「ERROR reading from ... using MuPDF. Trying Ghostscript...」が毎回表示されしまう場合は、「-gs」オプションを使って、始めからGhostScriptを使うように変更します(日本語ファイルパス対策で回避したので結果不要でした)。
pdfファイルによって「k2pdfopt.exeは動作を停止しました」となる場合の対策
応答が無くなってしまう場合は、PDFを一度Acrobatなりで変換(印刷)して、PDFを作り直すと上手く行くことがあります。
出力PDFのサイズを設定する
入力がA4(8.5inch x 11.0inch)で、出力も同じサイズにしたいので、「-w 8.5 -h 11.0」で直接指定するか、「-w 1.0s -h 1.0s」で等倍指定するかすればOKです。
余分なヘッダ・フッタ・ページ番号を除去する(控えめがオススメ)
通常は、表示されている文字や図すべてを出力しますが、ページの区切りなどが変わるため、ページ毎に挿入されている雑誌名・会議名・ページ番号などが、邪魔になることがあります。
見た目がかっこわるいだけで、そこまで致命傷にはならないのですが(←重要)、これを除去するためには、「-m」オプションで、切り出す原稿の周囲からどれだけを無視するかを設定します。たとえば、「-m 0.0,1.0,0.0,1.0」と設定すると、上下端から 1 inch 以内にある文字や図を出力しない(読み込まない)ようになります(参考:Ignoring Borders/Headers/Footers)。
この設定で余白を切り取りすぎると、内容まで削除してしまったり、文字が切れてしまったりするので、注意が必要です。何も設定しないのが正直オススメです。
この分割結果も「-sm」オプションを付けることで「_marked.pdf」という形式でデバッグ出力できるので、参考にしてみてください。
領域分割の設定(何もしないほうがオススメ)
K2pdfoptは、カラムを検出分割した後、行をグループにわけます。簡単に言えば、節や画像の区切りで切る作業をします。この分割された部分を領域(region)と読んでいるのですが、この領域ごとにページに配置するため、領域が大きくなるpdfを変換すると、早すぎるページ送りが発生し、ページ下部の余白が大きくなります。
これ自体そこまで問題ではないのですが、これを回避するには、領域分割をより頻繁に行うように設定する方法があります。具体的には、どれくらい行と行が離れていたら領域分割するかという閾値を「-vb」オプションで設定してあげます。デフォルトは「-vb 1.75」で、「行の高さの1.75倍開いたら分割する」という意味なので、これを例えば「-vb 0.5」
ただし、これで行単位の分解までしてしまうと、再配置する際の領域間(行間)が開きすぎて、それはそれで微妙です。しかし、このように分割しないと、任意の行での改ページが行われないので、困ってしまいます。
この再配置時のスペースの広さは、「-vls」オプションで設定可能です。「-vs」オプションもチェックしてみてください。
この分割結果も「-sm」オプションを付けることで「_marked.pdf」という形式でデバッグ出力できるので、参考にしてみてください。
他の変換ソフト(paperCrop)
1カラムへの変換をnative PDF(ラスタライズ無しで)できる変換ツールで、k2pdfoptの次に良かったのがpaperCropでした。しかし、設定項目が少なく、目的に合わせた変換はできませんでした。
参考
- List of K2pdfopt command-line options(コマンドラインオプションの一覧)
スポンサーリンク
コメント(0)
新しいコメントを投稿
|HOME|
『6ヶ月以上前に使った発表スライドを読んでみよう!』 OLD >>
スポンサーリンク