latex

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が更新されるようになる設定を見つけたので,それについてまとめてみた.

How to install Emacs & LaTeX to MacBook Pro 16-inch on Catalina

1ヶ月ほど前にMacBook Pro late 2016のバッテリーが逝かれてしまい,laptopのはずがコンセントに繋がないと動かないdesktopになってしまった.すると待っていたかのようにMacBook Pro 16-inch 2019が発売となり,速攻で注文してしまった.これまでは常に半年ぐらい様子を見てから新機を購入していたのだが,今回は止むを得ず発売直後のものを購入せざるを得なかった.新しい計算機やOSへのEmacsやLaTeXのインストールは色々な問題に遭遇することが多い.幸いなことに今回の年末年始の休みは長いので,こちらにまとめておくことにした.基本的には,Upgrade to Mojave and upgrade to Emacs 26.2 by homebrewでまとめたことをやれば良くて,大きな問題はなかった.トップの画像で示しているように各種ソフトがスムーズに動いている.

How to create conference posters by latex (beamer)

学会発表用のスライド作成については,beamerでスライド原稿用pdfを作成する(その1)に始まる一連の記事にまとめたが,ポスター作成については触れていなかったので,今回まとめることにする. latexを使ってポスターを作成する場合の定番はbeamerを利用したもので,代表例には,beamerposterがある.それ以外にも,latexのポスター作成用のパッケージには,baposter, Gemini, betterposter, tikzposterなどがある.さらに,Inkscapeを使用する方法も報告されている.できるだけこれらの情報を集積してみた.なお,私自身は,標準的なbeamerposterの中に含まれているスタイルファイルを少し改変して用いている.

Tufte-LaTeXとtufte-org-modeについて

以前の記事(Emacsのorg-modeで論文を書く(その1:pdfとhtmlへの出力))にも書いたが,Tufte−LaTeXなるものを愛用している.今回はこれについてもう少し詳しく書いてみたい. Table of Contents Tufte-LaTeX tufte-org-mode 設定 tufte-org-modeのインストールと設定 org-modeでtufte-latexの設定 tufteの使用の実例 Tufte-LaTeX Edward R. Tufteによって作られたページレイアウトのためのlatex packageである.典型的には文章が左側に配置され,右側には広いマージンがありノート,文献,表,図などが配置されるスタイルである. さて,このスタイルが何の役に立つかというと,報告書の作成の際に図を入れたりするときに,latexのfloatを使うと案外思うところに挿入されないことがある.このスタイルだと,図は少し小さくなるが,きちんと横に納まってくれるのがよい. Tufte-LaTeXのサイトには,“the style of Edward R. Tufte and Richard Feynman"と書かれている.ん,と思って調べてみると,やはり,あの物理学者のファインマンのことであった.興味のある方は,The Feynman-Tufte Principleでググってみると面白いかもしれない. 以前の記事(LaTeXをインストールし,texファイルが変更されると,自動的にcompileしてskimでのpdfも自動で更新されるようにする(2018年9月1日追記))に書いたようにtexliveをインストールしてあれば,tufte-latexは一緒にインストールされているので,新たにインストールする必要はない. tufte-org-mode tufte-org-modeは,上述のlatexのtufte classをorg-modeから使えるようにした有り難いパッケージである.このおかげでlatexの記法を意識することなく,org-modeで普通に文章を書いていき,最後に後述する如く,オマジナイを唱えればTufte styleのpdfができあがる. 設定 下記の2つの設定で使えるようになる.init.orgでの設定の順番はどちらが先でも動く. tufte-org-modeのインストールと設定 以下のようにinit.orgに書き込んで設定する. ox-tufte-latex.elは上記の tufte-org-modeからダウンロードしてローカルに置いてインストールしている.パスは各自の環境に合わせて変更していただきたい. #+begin_src emacs-lisp (quelpa '(ox-tufte-latex :fetcher file :path "/path/to/ox-tufte-latex.el") ) (use-package ox-tufte-latex) #+end_src quelpaは,use-packageでうまくインストール出来ないときに重宝する. quelpaについては以下を参照 Quelpa quelpa.el : 【本邦初公開】MELPAを改善した新しいパッケージ管理システム CaskからQuelpaに移行する org-modeでtufte-latexの設定 ox-latexの設定などは以前の記事(Emacsのorg-modeで論文を書く(その1:pdfとhtmlへの出力))に書いたようにinit.orgに記述しておく. 以下のようにinit.orgに書き込んで設定する.これは以前の記事(Emacsのorg-modeで論文を書く(その1:pdfとhtmlへの出力))と重複するが,念のためにここにも書いておく. #+begin_src emacs-lisp ;; tufte-handout class for writing classy handouts and papers (add-to-list 'org-latex-classes '("tufte-handout" "\\documentclass[twoside,nobib]{tufte-handout} [NO-DEFAULT-PACKAGES] \\usepackage{zxjatype} \\usepackage[hiragino-dx]{zxjafont}" ("\\section{%s}" .

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で論文を書く(その3:org-modeとbibtexとreftexの連携による文献引用の自動化)

前回(Emacsのorg-modeで論文を書く(その2:BibDeskによる論文収集と整理))は,BibDeskを用いて文献情報をbibtex ファイルとして収集する方法についてまとめた.今回は,この文献情報を利用した引用をEmacsのorg-modeでどのように自動化するかについてまとめる.早い話が,org-modeからlatexのbibtexとreftexの機能を利用するということになる. Table of Contents org-mode-reftex-setup org-mode-reftex-setupの使用方法 ox-bibtex.el bst ファイルについて bst ファイルの置き場所 文献を引用したorg-modeからのexportの実例 org-mode-reftex-setup 参照サイト:Using Emacs Org-mode to Draft Papers RefTex-ModeというものがEmacsには含まれている.文献や引用の管理のためのパッケージである.詳細はC-h iでマニュアルを見れば分かる,と言いたいところだが,このマニュアルが膨大である.そこで,RefTeX in a Nutshellという2ページほどの要約を読めば,使うのには十分であるとマニュアル自体に書いてある(笑).実は私はそれすらろくに読んでいないが,以下のように設定すれば,十分に使える.設定方法は,以前の記事(Emacsの設定(その2)設定ファイル(init.el)をorg-modeで管理する)に記載したとおり,init.orgに書き込めば良い. #+begin_src emacs-lisp (defun org-mode-reftex-setup () (load-library "reftex") (and (buffer-file-name) (file-exists-p (buffer-file-name)) (reftex-parse-all)) (define-key org-mode-map (kbd "C-c )") 'reftex-citation) ) (add-hook 'org-mode-hook 'org-mode-reftex-setup) #+end_src 上記の設定により,参照サイトの説明のように,org-modeの中でreftex-citationの機能が働くようになる. org-mode-reftex-setupの使用方法 org-modeで文書を書いている最中に文献を引用したい箇所で,C-c ) と打つ すると,まず,どの文献リストを使うかを聞いてくるので,hogefuga-reference.bibなど使いたいリストの名前を打つ.前回説明した方法で収集した文献のbib ファイルが有るはずである. 次に,文献を絞り込むためにキーワードを打つように催促されるので,それを打つ.すると,そのキーワードを有する文献のリストがずらずらと並ぶ.下図の例では,stetler と著者名を打ったときの結果が下のバッファに表示されている.該当する文献にカーソルを持ってくるか,クリックして選択し,リターンを押せば決定され,本文の該当箇所にその論文の cite-key,つまり,\cite{Stetler:2012jt} が入力される. 上図の下のバッファ内でも,C-sの検索機能は使えるので,さらに絞り込みが必要な際は便利である.以前の記事(Emacsの設定(その1)Preludeの導入)で述べたようにpreludeを導入して,かつ,helmを有効にしておけば,下図のようにC-sでswiperが使えて更に便利である.(なお,下図では,まず,heat shock proteinと打ち,ズラッと並んだ真ん中のバッファでC-sとやってstetlerと打ったところである.一番下のバッファにstetlerで絞り込まれた候補が並んでいる) ox-bibtex.el 参考サイト:Org and Bibtex 上述の作業で,文献を本文中にcite-keyとして引用することはできた.次に必要なのはorg-modeからpdfやhtmlにexportする際に,cite-keyをもとに,文献が雑誌の規定の様式で引用され,最後に文献リストが規定の様式で記述されるようにすることである.この面倒をみてくれるのが,ox-bibtex.el である. ox-bibtex.elは,org-plus-contrib packageの中に含まれているので,まず,org-plus-contribをインストールする.これは,package.el を使えば簡単である.

Emacsのorg-modeで論文を書く(その1:pdfとhtmlへの出力)

私がEmacsを使用している理由の一番大きなものはorg-modeである.あらゆる文書作成にorg-modeを用いている.org-modeを使って論文を書くことに関しては,ググってもらえばおわかりのように,ネット上に山のように情報が存在する.「屋上屋を架してどうする」と言う自分の中の声を押し殺し,あくまで備忘録ということで,あえてここにまとめておく.なお,私はGTDのツールとしてはorg-modeを全く使用していないので,その種の情報はここにはまったくないことをお断りしておく. Table of Contents 目的 org-modeで論文を書く利点 org-modeの設定・セットアップ(pdfとhtmlへの出力用) koma-script – A bundle of versatile classes and packages Tufte-LaTeX org-bullet org-modeのinit.elの設定(pdf出力用) 「org-modeで論文を書く」の実例 目的 org-modeからlatex経由で,文献がnumberingされ文献リストも付いたpdfを出力できるようにする org-modeから,文献がnumberingされ文献リストも付いたhtmlを出力できるようにする org-modeから,文献がnumberingされ文献リストも付いたwordファイルを出力できるようにする org-modeで論文を書く利点 LaTeXのややこしいコマンドを覚えなくても普通に文章を書いていけば,pdfで出力できる. latexの力を借りることで,文献の引用やリストの作成を自動化できる. 必要なら,htmlとしても出力できる. どうしても必要なら,pandocの力を借りて,なんとMicrosoft Wordのファイルとしても出力できてしまう. org-modeの設定・セットアップ(pdfとhtmlへの出力用) 設定が最もよくまとまっているのはTeX Wiki Emacs/Org mode 設定例のmacOSの部分である.正統派の方は,こちらを参考にしていただきたい. 私は,koma-script – A bundle of versatile classes and packages と Tufte-LaTeX を気に入っており,ほぼこれらしか使わないので,その設定を書いておく.その前に少し情報をまとめておく. koma-script – A bundle of versatile classes and packages 参考サイト1:Koma-Script 入門 ~初歩の初歩~ 参考サイト2:使ってはいけない LaTeX のコマンド・パッケージ・作法 参考サイト3:LaTeX の「アレなデフォルト」 傾向と対策 アメリカ生まれのaritcleなどの欧文標準文書クラスはデフォルトがレターサイズで余白が広すぎてしまう.これに対して,ヨーロッパ生まれのkoma-scriptはa4がデフォルトで,余白も広すぎず,レイアウトもなんとなくオシャレ(笑)である.当然のことながら,texliveに含まれており,texliveをインストールした時点で,インストールされている. Tufte-LaTeX 参考サイト1: tufte-org-mode Edward R.

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'.

beamerでスライド原稿用pdfを作成する(その1)

前回のポスト(LaTeXをインストールし,texファイルが変更されると,自動的にcompileしてskimでのpdfも自動で更新されるようにする(2018年9月1日追記))により,既にLaTeXはインストールされたので,今回は学会発表向けのスライド原稿作成についてまとめる.ようやく実質的な話になる. beamerによるスライド原稿の作成 基本的には,通常のLaTeX文書と同じである.実際のスライド原稿を見てもらうほうが早いであろう.以下のtexファイルを作成し,beamer_test.texと名付け,保存する.Editorは何でも良いが,やはり,Emacsのauctexを使うと補完などあり,便利である. 下記のファイルには多少コメントを付けた.フォントの指定は自明.themeは山のようにあるので,ググって好きなものを使う. なお, \usefonttheme{professionalfonts} を入れているのは,これを入れないと,beamer は数式フォントとして sans に指定されたフォントを使うように内部で変更するからで,これを入れるとこの変更を無効にできる.数式がヒラギノになると間抜けである.昔,TeX QAで教えていただいた.参考:beamerでの数式フォントの変更 また,いろいろ余分なパッケージも読み込んでいるが,必要なときに書き込めば良く,不要なら削除する. % -*-coding:utf-8-*- \documentclass[svgnames, table, 14pt]{beamer} \usepackage{zxjatype} \usepackage[hiragino-dx]{zxjafont} % ヒラギノ角ゴ Proを使う \setjamainfont[Scale=0.95,BoldFont=ヒラギノ角ゴ Pro W6]{ヒラギノ角ゴ Pro W3} \setjasansfont[Scale=0.95,BoldFont=ヒラギノ角ゴ Pro W6]{ヒラギノ角ゴ Pro W3} % themeを指定する \usetheme{Darmstadt} \usefonttheme[onlylarge]{structurebold} \setbeamerfont*{frametitle}{size=\large,series=\bfseries} \setbeamertemplate{navigation symbols}{} \usepackage[english]{babel} \usepackage[latin1]{inputenc} \usepackage{times} \usepackage[T1]{fontenc} \usepackage{hyperref} % Setup TikZ \usepackage{tikz} \usetikzlibrary{arrows} \tikzstyle{block}=[draw opacity=0.7,line width=1.4cm] % Figure position \usepackage[absolute,overlay]{textpos} % math \usepackage{mathabx} \usefonttheme{professionalfonts} % Author, Title, etc. \title[hoge/fugaによる相補的な治療における高難度症例の治療と成績] {hoge/fugaによる相補的な治療における高難度症例の治療と成績} \author[taipapa] {taipapa, 織田信長, 豊臣秀吉, 徳川家康} \institute[hogefuga University] {hogefuga大学大学院 hogefuga研究科 hogefuga分野} \date[日本hogefuga外科学会 第?