pdf

Real-time document (pdf) preview in org-mode

いやーなんと2020年7月以来約2年ぶりの記事である.本業多忙でしばらく放置していると,ブログの書き方まで忘れてしまいすっかり億劫になり,今回この夏休みにようやく取り掛かる決心がついた.まずはリハビリも兼ねて軽めの記事を書く事にした.以前の記事(Emacsのorg-modeで論文を書く(その1:pdfとhtmlへの出力))でorg-modeで文書を書いてpdfにexportする方法をまとめた.ただ,exportする際にC-c C-e l oと打ってcompileされるのを待つのが結構面倒なのである.この部分を自動化する方法,つまり,org-mode文書を保存すれば何もしなくても自動的にpdfが更新されるようになる設定を見つけたので,それについてまとめてみた.

Full text search of PDF archives with hyperestraier on maos (mojave) — Hyper Estraierでpdfの全文検索を行う

論文というものはすぐにたまる.読みもしないのにどんどんたまる.21世紀に入った頃は論文のプリントアウトの山ができて定期的に捨てたりしていたのだが,それも今は昔,現在はpdfの時代であり,かなり前からpdfで読んで,注釈など書き込んだりするようになった.しかし,どんどんたまるのは昔以上である.何しろ取るスペースはディスクの容量だけで,物理空間を占拠するわけではないから,いくらでも気兼ねなくため込める.ため込んだ論文数が数千を越えるあたりで,ふと思うわけである.「これを全て読むのは不可能としても,全文検索ができたら便利だろうなぁ...」 という訳で,今回は,hyperestraierを使ってため込んだpdfの全文検索をできるようにしようという話である.

Emacsでpdfを読む (pdf-tools) (2019.07.17追記)

Emacsでpdf文書を読もうとするとdefaultではDocViewで読むことになるが,解像度がイマイチで動きもややモッサリとしていて使い勝手が悪かったため,サクッと止めて,skimを使っている.ただ,pdf-toolsというのがあって,こちらは割とスグレモノらしいとの噂は聞いていた.そこで,今回はこれを試してみることにした.

Emacsとskimで,latexのソースとpdfの間を行ったり来たり

以前の記事(beamerでスライド原稿用pdfを作成する(その1))で,Emacsでbeamerを用いてlatexのソースを書いてコンパイルし,スライド原稿としてpdfを出力する方法をまとめた.この際に,pdfの特定の箇所がlatexのソースでどこに当たるのかがわかったり,逆に,latexのソースの特定の箇所がpdf上のどこに当たるのかがわかったりすると便利である.今回はそれについてまとめる.なお,auctexの全般的な設定については,TeXWikiのmacOS での設定例 を参照していただきたい. Table of Contents backward search forward search 参照:Mac OS X El Capitan の AUCTeX の設定 参照:skimとの連携 参照:AUCTeX の設定と便利な機能 参照:TeX_and_PDF_Synchronization backward search こちらのほうが便利なので最初に説明する. skimで表示されたpdf上の特定の箇所に該当するLaTeX文書の箇所を探して示してくれる. この機能を可能にするには,skimの環境設定を開いて「同期する」の初期値を「カスタム」とし,コマンドのところに以下のように打ち込む. $ /usr/local/Cellar/emacs-mac/emacs-26.1-z-mac-7.1/bin/emacsclient defaultでは初期値に「Emacs」となっており,本来ならこれで動くはずだが,homebrewで最新のEmacsをinstallしたために,もともと入っているemacsとはversionが異なる.つまり,サーバーとして起動しているEmacsと、使用するEmacsClientのバージョンが異なることになり,このままでは動かない.そこで,homebrewでインストールした方をfull pathで明示的に指示する必要がある. 引数のところには,以下のように打ち込む. $ --no-wait +%line "%file" つまりこうなる. 一方,Emacsのinit.orgには以下のように記述して,Emacs serverを立ち上げておく. #+begin_src emacs-lisp ;; Starts the Emacs server (server-start) #+end_src これで,pdf上の任意の箇所で,Shift-Command-Clickすると,該当するlatex documentの箇所に飛ぶ.もし,Emacsが立ち上がっていなければ,Emacsを立ち上げるところからやってくれる.素晴らしい! これは確かめてみると勘違いであった.Emacsは立ち上げておかないといけない. この機能は知ってしまうと,無くてはならないほど便利に感じる機能である.pdfで間違いを見つけたときに,それがlatexソースのどこに相当するかを同定するのは結構面倒であるが,この機能により一発で同定することができる. 該当箇所が少しずれることがあるのが欠点であるが,それでも十分に役に立つ. forward search こちらも,backward searchほどではないが,役に立つ. Emacs上のlatex document上の特定の箇所に該当するpdfの箇所を探して示してくれる. この機能を可能にするには,init.orgに以下のように記述する. #+begin_src emacs-lisp (add-hook 'LaTeX-mode-hook (function (lambda () (add-to-list 'TeX-command-list '("displayline" "/Applications/Skim.

Emacsのorg-modeで論文を書く(その2:BibDeskによる論文収集と整理)

さて,前回(Emacsのorg-modeで論文を書く(その1:pdfとhtmlへの出力))はorg-modeによる論文本体の執筆に付いてまとめたわけだが,今回は論文引用の方法についてまとめる.と思ったのだが,論文を引用するためには,当然のことながら論文を収集しなければならない.そのうち膨大な数の論文の海に溺れることになる.そこで,収集した論文,つまり,pdfの整理をするソフトが必要になってくる.その引用も,書式や番号付を雑誌の規定に合わせて自動化してくれれば言うことはない.ということで,そのようなソフトについて書くことにする.有料ソフトの定番としては,EndoNoteがあるし,フリーソフトでは,zoteroやMendeleyが有名である.私自身は,LaTeXを利用することが多い関係上,BibDeskというこれまた老舗のソフトをもっぱら利用している.ネット上でもzoteroやmendeleyについての情報は豊富だが,BibDeskについてはそれほど見られないので,まとめておくことは多少の意味があるであろうと考え,BibDeskによる論文収集を説明することにした. BibDesk texliveをインストールすればその中に入っているが,最新版はリンク先にあるので,そちらを落とすほうが良い. 文献をbibtexのファイルとして管理する.pdfとの関連付けができるので,書誌事項とpdfが一体化して管理できる. bibtexに関しては,BiBTeXとは を参照 bibtexファイルなので,当然,latexの機能を用いて,文献の引用,引用スタイルの設定,文献リストの作成,文献リストのスタイルの設定などをすべて自動化できる.これが便利! 見た目はこんな感じ 医学系の論文となると,やはり,PubMedなどネットでの連携が重要である.下図のごとく,BibDeskではSearches menuからPubMedを選ぶことにより,BibDeskの中からPubMedを検索できる. 検索欄に,例えば,“heat shock protein"と打つと,下図のように検索結果が50編ずつ並ぶが,50編以上ある場合は,Searchを繰り返しクリックすることにより,100編と150編とどんどんリストに取り込まれていく. 上図のごとく,検索結果欄の左端に"Import” ボタンがあるが,これをクリックするとその論文の書誌事項が取り込まれる.その際に,自分の文献リストの名前を,“hogefuga-reference.bib” など適当に決めれば良い.以後はそのリストに追加していくことになる. また,取り込まれる際にcite-keyをBibDeskが自動的に決めてくれる.このcite-keyは次回の記事で述べる「引用の自動化」の際にreftexに使用される. なお,PubMedの番号,つまり,Pmidが分かっていれば,それを打ち込めば一発で書誌事項を検索できる. リストの中から興味のある論文をクリックして選択し,グレーにハイライトさせると,下図のごとく右側のサイドパネルに,その論文のあるサイトを示すアイコンが表示される.これをクリックすれば,ブラウザーが開いてそのサイトに飛ぶ.もし,その論文がオープンアクセスであれば,あるいは,所属する組織が出版社と契約を交わしていれば,その論文のpdfを落とせる.落としたpdfをドラッグしてその論文に該当するリストのラインにドロップすれば,その書誌事項とpdfはリンクし,以降はその論文のサイドパネルにpdfのアイコンが表示され,ダブルクリックによりオープンするようになる.さらに言えば,pdfではなく,パワポやワードのファイルとして文献が存在することもある.同じようにドラッグ&ドロップすれば,これまたリンクする.しかも一つの文献にいくつものpdfやその他のファイルをリンクできる.非常に便利である. また,下図のごとく,左のサイドパネルの一番上の方にある"Web BibDesk Web Group"をクリックして選択すれば,更にいろいろな文献ソースが表示される.医学系では,Google Scholarが有用なので,これをクリックすれば,BibDeskの中からGoogle Scholarを検索できるし,書誌事項も取り込める.pdfのリンクが存在すればBibDeskの中でpdfを落とすこともできる. 収集した文献の書誌事項はhogefuga-reference.bibにbibtex fileとしてまとめられているが,その中身は以下のような情報の集積である(下の例ではabstractなどは省略している). @article{Rothwell:2018aa, Author = {Rothwell, Peter M and Cook, Nancy R and Gaziano, J Michael and Price, Jacqueline F and Belch, Jill F F and Roncaglioni, Maria Carla and Morimoto, Takeshi and Mehta, Ziyah}, Date-Added = {2018-08-03 22:46:26 +0900}, Date-Modified = {2018-08-03 22:46:26 +0900}, Doi = {10.

beamerでスライド原稿用pdfを作成する(その3)動画が走るスライド原稿を作る(media9に関する追記)

前回のポストを書いた後に,念のために調べてみると,どうやら,media9なるものが,いまやpdfに動画を埋め込むために普通に使われているようだということが判明してしまった!う〜む,勉強不足を痛感する.遅れを取り返すべく,早速やってみたので,それを追加報告とする. Table of Contents media9 beamerで動画が走るスライド原稿を作る(media9版) media9を使用したときの利点 media9を使用したときの欠点 結論 media9 media9はtexlive2018に含まれており,特に別途インストールする必要はなかった.media9については様々な情報があったが,多くはWindowsやLinuxに関してであり,そのままコピペして動くような極楽情報はなかなか見つからなかった.やはり,餅は餅屋で,OS X TeXにそのものズバリの情報があった.それが参考サイト5である. 参考サイト1:TeXWiki media9 参考サイト2:TeXでプレゼン - LaTeX Beamerを使う人のためのTips集 参考サイト3:How to embed video files in a PDF using LaTeX (a media9/beamer example) 参考サイト4:Beamer で PDF ファイルに動画を埋め込む 参考サイト5:media9 problems beamerで動画が走るスライド原稿を作る(media9版) 同一directoryにhogefuga.movがあるとすれば,以下のように書けば良い preambleに,\usepackage{media9}を忘れずに追加しておく. \newcommand{\showmovie}[1]{\includemedia[ activate=pageopen, deactivate=pageclose, width=110mm, height=72mm, addresource=#1, flashvars={ src=#1 &loop=true &autoPlay=false } ]{}{StrobeMediaPlayback.swf} } \begin{frame} \frametitle{hogefugaの動画} \centering \showmovie{hogefuga.mov} \end{frame} 110mmと72mmの数値はフレーム内の動画の収まり具合により適宜調整する. loopは,ループ再生するかどうか autoplayは自動再生するかどうか media9を使用したときの利点 なんと言ってもべた書きよりもelegant! スライドを開けたときに,何もしなくても動画の静止画が映るので,前回のやり方のように背景をべた書きしなくて良い. media9を使用したときの欠点 もう完全にmedia9に乗り換えるつもりでいたが,以下に述べるようにいくつか欠点もあることが判明した. media9はpdf自体に動画を埋め込むようである.したがって,200MBの動画を走らせるとすると,pdf自体が200MB以上の大きさになってしまう. それだけでなく,200MB程度の動画になると,途中で固まってしまう!これでは使い物にならない. 一方,前回記事のべた書き方式だと,pdf自体に動画を埋め込まないので,pdfは大きくならないし,動画指定のパスは効くし,200MBだろうともっと大きかろうと動画はガンガン動く. 結論 容量の小さな動画であれば,media9でも十分であろう. 私のように,容量の大きな動画を使用するような場合は,べた書きを使用するほうが良いであろう. ということで,結局,元の木阿弥に戻ることとなった.

beamerでスライド原稿用pdfを作成する(その2)動画が走るスライド原稿を作る

実は,同じような内容について2010年に,TeX QA に投稿しているが,その後現在に至るまで使い続けることができており,一応,こちらでもまとめておくことにした. beamerで動画が走るスライド原稿を作る 前述した ,TeX QA に経緯は投稿してあるので,詳細はそちらを読んでいただきたい. 参考にしたのは,Adobeのpdfのマニュアル(DVI specials for PDF generation) https://www.tug.org/TUGboat/tb30-1/tb94cho.pdf の以下の部分 3 Annotations An annotation is considered as an object with a location on a page. The type of the object is given by the value of the key `/Subtype', for instance, `/Text', `/Link', `/Sound', `/Movie', etc. (See [1, p. 615] for the list of all annotation types.) The location is given by an array object associated to the key `/Rect'.

LaTeXをインストールし,texファイルが変更されると,自動的にcompileしてskimでのpdfも自動で更新されるようにする(2018年9月1日追記)

Table of Contents TeX Live 2018のインストール TeX Live 2018のインストール(2018年9月1日追記) ヒラギノフォントの埋め込みなど インストール後のパスの修正(symbolic linkを張る) auctexのインストールと設定 latexmk 実際の作業 XeLaTeXについて TeX Live 2018のインストール 参考サイト1:TeX Wiki TeX Live 参考サイト2:TeX Wiki TeX LiveMac 参考サイト3:The MacTeX-2018 Distribution 上記サイトを参考にTeX Live 2018もしくはMacTeX-2018をインストールする. これでスライド作成ソフトであるbeamerも一緒にインストールされる. beamerに固有の設定は特に必要なし. TeX Live 2018のインストール(2018年9月1日追記) 大事なことを2つ忘れていたので追記する. ヒラギノフォントの埋め込みなど 参考サイト:MacTeX 2018のインストール&日本語環境構築法 こんなところを読んでいないで,直ちに上記のサイトに飛んでいただきたい. マックユーザーにとっての最大の問題点は 「macos標準添付のヒラギノフォントなど商用フォントに関する設定ファイル群が,TeX LiveからTLContriに移動になった」 ということである.この問題に対する対応方法は,すべて上記のサイトに記載されているので,そのとおりにすれば良い.実にありがたい. インストール後のパスの修正(symbolic linkを張る) 参考サイト:TeX Wiki TeX LiveMac MacTeX 2018を普通にインストールすると,/usr/local/texlive/2018/bin/x86_64-darwin/bibtexというふうにbinの下にx86_64-darwinというdirectoryが入って,tex関連のコマンドのパスが上手く通らなくなる.そこで,上記のTeX Wiki TeX LiveMacに書いてあるように,/usr/local/binディレクトリの下にsymbolic linkを張る. $ sudo /usr/local/texlive/????/bin/*/tlmgr path add 上記でうまくいかないときは下記のように具体的なディレクトリ名を指定する. $ sudo /usr/local/texlive/2018/bin/x86_64-darwin/tlmgr path add auctexのインストールと設定 latex文書を扱うなら,Emacsのパッケージであるauctexが最強(according to 独断と偏見) preludeをインストールした時点で,auctexもインストールされる. auctexの設定などについては以下を参照(手抜き….