(承前)前回(How to automatically embed R plot into html exported by org-mode with org-babel)はorg-babelを設定して,Rで描いたグラフを自動でhtmlやpdfに挿入するところまでまとめた.繰り返しになるが,本サイトは,ox-hugoで書いてHugo用のMarkdownをexportすることにより作成している.前々回の記事(How to plot survival curve of competing risk analysis with censoring mark and number at risk (at risk table))を書いている際に,Rでplotしたgraphをブログ記事の中に自動ではめ込むよう設定するのに苦労した.前回でorg-babelの設定は終わっているので,今回は,Hugoやox-hugoの設定に関してまとめ,ブログ記事へのR plotの自動挿入ができるようにする.
Table of Contents References Configuration of Hugo section Setup of HUGO_SECTION & HUGO_BASE_DIR in ox-hugo References to files outside the static directory References HUGO Hugo is one of the most popular open-source static site generators. With its amazing speed and flexibility, Hugo makes building websites fun again.
org-modeで文書を書いていてhtmlにexportする際は,C-e h oとするわけだが,段々とこれが面倒になってくることがある.そこで,ネットを探ってみると,やはり,なんでも載ってるredditにhtml exportを自動化する関数の記事があった.
Table of Contents toggle-org-html-export-on-save directoryの内容が変更されると,自動でhtmlを再読込する. 使用方法 toggle-org-html-export-on-save 情報元:How to auto export html when saving in org-mode? 例によって,下記のようにinit.orgに書き込めばよい.
#+begin_src emacs-lisp (defun toggle-org-html-export-on-save () (interactive) (if (memq 'org-html-export-to-html after-save-hook) (progn (remove-hook 'after-save-hook 'org-html-export-to-html t) (message "Disabled org html export on save for current buffer...")) (add-hook 'after-save-hook 'org-html-export-to-html nil t) (message "Enabled org html export on save for current buffer..."))) #+end_src これで,toggle-org-html-export-on-saveで,htmlを自動で出力するかどうかを切り替え可能となる.しかし,これだけでは,org文書を保存するたびにブラウザーを手動でreloadしないといけなくなり,面倒である.自動でreloadしてくれるコマンドがあれば便利である.探してみると,これもネットに転がっていた.
directoryの内容が変更されると,自動でhtmlを再読込する. 情報元:Watch for file changes and refresh your browser automatically 上記サイトに有るrubyのスクリプトが使えそうなので,頂いた. rubyのインストールについては,以下のようなサイトを参考 MacにHomeBrew,rbenv,bundlerをインストールする Ruby入門 01.
org-modeで文章を書いているときに,他のsubtreeが邪魔で消したくなることがある.そして必要になれば,また,もとに戻すことができれば便利である.これを実現してくれるパッケージがrecursive-narrowである.
インストールと設定 インストールは例によって,init.orgに以下のように書き込むだけである.
#+begin_src emacs-lisp (use-package recursive-narrow :ensure t) #+end_src これでインストールと設定は終了である.
使用法 使い方も実に簡単であり,“C-x n n"で現在カーソルがあるsubtree以下のみが表示されるようになり,“C-x n w"で元の表示に戻る.これではよくわからないので,実際の画像を示す.まず,最初の画像では全体の画面が表示されており,1951行目の「Org-modeで再帰的に」の行にカーソルがある.
ここで,“C-x n n"とやると,次の画面のようになる.つまり,1951行目以降のsubtreeのみが表示される.
次にカーソルを1962行目の「インストールと設定」に移動する(画像ではすでに移動済み).そして,再度"C-x n n"とやると,以下の画像のようになる.
つまり,「インストールと設定」のsubtreeのみの表示となるわけである.集中したい領域だけが表示されて,効率よく入力できる.
広い領域の表示が必要となれば,“C-x n w"とやると,1つ前の画像の状態に戻る.そして,もう一度"C-x n w"とやると,最初の状態に戻る.なんということはないのであるが,便利である.
学会発表や論文作成にあたっては,当然のことながら,その分野の他の研究者の論文を読んでまとめるなどの作業を行う.そこで,論文の要旨などをorg-modeにざっとまとめておくと,pdfにもhtmlにもtextにもexport出来て便利である.pdfは印刷に向いているが,htmlは多くの論文をいっぺんに見るのに向いており,また,compileの時間もpdfより圧倒的に速い.また,色を変えたり,ハイライトしたりするのもhtmlなら容易である.そこで,今回は,org-modeからhtmlへexportする際の有用な小技について書いてみたい.
Org Macros フォントの色を変更する方法はいろいろあるが,ハイライトや背景の色の変更までできるこの Org Macrosが一番便利である.内容は,org-modeの便利なマクロ集である.リンク先からダウンロードして,適当なところに保存し,解凍しておく.ここでは,/Users/taipapa/hoge/fuga/org-macros.setupに置くことにする.使い方は簡単で上記のwebsiteに書いてあるとおり,各org fileの先頭に以下のように記述してorg-macros.setupの場所を教えてやれば良い.
#+INCLUDE: /Users/taipapa/hoge/fuga/org-macros.setup これだけである.
注意事項としては,このブログはox-hugoで書いているが,ox-hugoの場合は文書の先頭に上記を書いても効かない.各ポストのpropertyのあとに書いておけば効く.各ポストごとに設定するようになっているらしい.....(全国15人?ぐらいの人にしか意味のない注意書きである) 上記に関しては,ox-hugoの作者であるKaushal Modi氏から以下のような指摘を頂いた.(12月19日追記) Can you try using #+setupfile instead of #+include? As an example, here is my blog Org source that I export using ox-hugo ( https://gitlab.com/kaushalm… ), and here is the setup file tha t I “include” using the more appropriate #+setupfile ( https://gitlab.com/kaushalm… ).
As you see, I use a lot of Org macros, and they all work in my “one post per subtree” flow.