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)}}}