org-modeのエクスポートの改善

org-modeでの記述した技術文書をpdfやhtmlにエクスポートする方法を改善したので記す。

Latex のエクスポート

下記記事を参考に koma-script でのエクスポートを設定する。

(add-to-list 'org-latex-classes
             '(
               "koma-jarticle"
               "\\documentclass[12pt]{scrartcl}
                [NO-DEFAULT-PACKAGES]
                \\usepackage{amsmath}
                \\usepackage{amssymb}
                \\usepackage{mathrsfs}
                \\usepackage{xunicode}
                \\usepackage{fixltx2e}
                \\usepackage{zxjatype}
                \\usepackage[ipa]{zxjafont}
                \\usepackage{xltxtra}
                \\usepackage{graphicx}
                \\usepackage{longtable}
                \\usepackage{float}
                \\usepackage{wrapfig}
                \\usepackage{soul}
                \\usepackage[xetex]{hyperref}
                \\usepackage{xcolor}
                \\usepackage{minted}
                \\usepackage{geometry}
                \\geometry{left=1cm,right=1cm,top=1cm,bottom=1cm}
                \\usepackage[natbib=true]{biblatex} 
                \\DeclareFieldFormat{apacase}{#1} 
                \\addbibresource{~/myspace/Bibliography/references.bib}"
               ("\\section{%s}" . "\\section*{%s}")
               ("\\subsection{%s}" . "\\subsection*{%s}")
               ("\\subsubsection{%s}" . "\\subsubsection*{%s}")
               ("\\paragraph{%s}" . "\\paragraph*{%s}")
               ("\\subparagraph{%s}" . "\\subparagraph*{%s}")))

参考文献の扱い

参考文献は ~/myspace/Bibliography/references.bib に記載されている。引用は cite:total2009daisy のような形式で org ファイル内で記述される。参考文献一覧を出力するために下記のセクションを設ける。

* 参考文献
  #+LaTeX: \printbibliography[heading=none]  
  {{{if-html(bibliography:~/myspace/Bibliography/references.bib)}}}

又、htmlへの参考文献の出力には bibtex2html というツールが必要となる。emacsにも追加で ox-bibtex の設定も必要となる。 ox-bibtex は標準のパッケージではないため下記のように追加でパッケージのインストールが必要となる。

(use-package org-contrib
  :after org
  :ensure t
  :confit
  (require 'ox-bibtex))

レポートのスニペット

org ファイルでレポートを作成する際には下記のような構成で書き始める。

#+LaTeX_CLASS: koma-jarticle

#+STARTUP:  overview
#+STARTUP:  hidestars
#+OPTIONS:  H:4 num:nil toc:nil \n:nil @:t ::t |:t ^:nil -:t f:t *:t TeX:t LaTeX:t skip:nil d:nil todo:t pri:nil tags:not-in-toc
#+LINK_UP:
#+LINK_HOME:
#+MACRO: if-html (eval (if (org-export-derived-backend-p org-export-current-backend 'html) $1))
#+MACRO: if-latex (eval (if (org-export-derived-backend-p org-export-current-backend 'latex) $1))

#+TITLE:  title
#+AUTHOR: k-sunako
#+DATE: [2021-07-11 日 12:18]

{{{if-latex(\vspace*{-1.5cm})}}}

* 概要
  blabla

* 参考文献
  #+LaTeX: \printbibliography[heading=none]
  {{{if-html(bibliography:~/myspace/Bibliography/references.bib)}}}

上記の構成をスニペットで簡単にファイルに書き込めるようにした。 (yasnippetを使用)

# key: rep2
# name: report2
# --

#+LaTeX_CLASS: koma-jarticle

#+STARTUP:  overview
#+STARTUP:  hidestars
#+OPTIONS:  H:4 num:nil toc:nil \n:nil @:t ::t |:t ^:nil -:t f:t *:t TeX:t LaTeX:t skip:nil d:nil todo:t pri:nil tags:not-in-toc
#+LINK_UP:
#+LINK_HOME:
#+MACRO: if-html (eval (if (org-export-derived-backend-p org-export-current-backend 'html) \$1))
#+MACRO: if-latex (eval (if (org-export-derived-backend-p org-export-current-backend 'latex) \$1))

#+TITLE: ${1: title}
#+AUTHOR: k-sunako
#+DATE: `(let ((x (org-time-stamp '(16) t ))))`

{{{if-latex(\vspace*{-1.5cm})}}}

* 概要
  blabla

* 参考文献
  #+LaTeX: \printbibliography[heading=none]
  {{{if-html(bibliography:~/myspace/Bibliography/references.bib)}}}