LuaLaTeX での余白の設定

LuaLaTeX での余白の設定方法についてメモ。

geometry パッケージ

LaTeX での余白の設定は geometry パッケージを使用するのが簡単です。
BXjscls パッケージを使用していれば geometry パッケージは自動的に読み込まれると思いますが、必要なら \usepackage{geometry} でパッケージを読み込みます。
そして、以下のような \geometry コマンドで余白を指定することができます。
(個人的な環境のせいなのか \usepackage のオプションで設定すると PDF に反映されない)

\geometry{top=5truemm,bottom=5truemm,inner=10truemm,outer=5truemm}

bxjsbook.cls などを使用して偶数・奇数ページでレイアウトが異なる場合は、左右の余白の設定に innerouter 引数を使用します。
綴じ代を考慮するなら inner の値を大きめに設定します。

LuaLaTeX で unicode-math を使う場合の書体変更コマンド

LuaLaTeX の unicode-math パッケージを使う場合は、 \bm\boldsymbol コマンドで数式の書体を太字にすることはできません。
この場合、数式の書体を変更するには \symbf コマンドなどを使用します。
unicode-math での書体変更コマンドや、個人的なフォントの設定などについて整理しておきます。
unicode-math の使い方の詳細については 公式マニュアル を参照してください。

設定

フォント関係の設定は次のようにしています。
LuaLaTeX はフォントの設定が簡単なのが素敵です。

\usepackage{luatexja-otf}
\usepackage[ipaex,deluxe]{luatexja-preset}
\usepackage{unicode-math}

\setmainfont[Ligatures=TeX]{XITS}
\setsansfont[Ligatures=TeX]{TeX Gyre Heros}
\setmonofont[Ligatures=TeX]{Inconsolatazi4}
\unimathsetup{math-style=ISO,bold-style=ISO}
\setmathfont{xits-math.otf}
\setmathfont{xits-math.otf}[range={cal,bfcal},StylisticSet=1]

XITS は Times New Roman に似ており、ユニコード文字への対応もいいので使用しています。
なお、最後の行のコマンドは XITS で Caligraphic を使用しない場合は不要です。

\unimathsetup コマンドでラテン文字とギリシャ文字のデフォルトの Shape を設定できます。
math-style=ISO とすると、デフォルトのラテン文字とギリシャ文字が斜体になります。
また、 bold-style=ISO とすると、 \symbf でラテン文字とギリシャ文字が斜体の太字になります。
その他、 sans-style 引数により \symsf で書体が斜体になるか立体になるか選択できます。
デフォルトでは sans-style=italic で書体は斜体になります。

書体変更コマンド

上記の設定では、書体変更コマンドで次のように数式の書体を変更できます。

表1: math-style=ISO,bold-style=ISO,sans-style=italic の場合の書体変更コマンド
Style Shape Series コマンド xX \phi\Phi 01
Serif 立体 標準 \symup symup_x.png symup_phi.png symup_01.png
    太字 \symbfup symbfup_x.png symbfup_phi.png symbfup_01.png
  斜体 標準 \symit symit_x.png symit_phi.png symit_01.png
    太字 \symbfit (\symbf) symbfit_x.png symbfit_phi.png symbfit_01.png
Sans serif 立体 標準 \symsfup symsfup_x.png   symsfup_01.png
  斜体 標準 \symsfit (\symsf) symsfit_x.png   symsfit_01.png
  立体 太字 \symbfsfup symbfsfup_x.png symbfsfup_phi.png symbfsfup_01.png
  斜体 太字 \symbfsfit (\symbfsf) symbfsfit_x.png symbfsfit_phi.png symbfsfit_01.png
Typewriter 立体 標準 \symtt symtt_x.png   symtt_01.png
Double-struck 立体 標準 \symbb symbb_x.png   symbb_01.png
  斜体 標準 \symbbit 1 symbbit_x.png    
Script 立体 標準 \symscr symscr_x.png    
    太字 \symbfscr symbfscr_x.png    
Fraktur 立体 標準 \symfrak symfrak_x.png    
    太字 \symbffrak symbffrak_x.png    
Caligraphic 立体 標準 \symcal symcal_x.png    
    太字 \symbfcal symbfcal_x.png    

脚注:

1

\symbbit は Ddeij の 5 文字だけに対応しています。

Emacs の org-ref で文献参照・相互参照のリンクを挿入する

Emacs の org-mode では、org ファイルから LaTeX ファイルを出力して PDF を作成することができます。
org-mode の org-babel でソースコードの評価と挿入が簡単にできるので便利です。

org-mode では org-ref というパッケージを使用すると、BibTeX の文献参照や図表などの相互参照のリンクを挿入するのがとても簡単になります。
org-ref の一通りの機能や設定方法は、YouTube の 紹介動画 1紹介動画 2公式ページ を見ると分かります。
org-ref はリンクの挿入以外にも、bib ファイルの作成を支援する機能なども備えています。
個人的に bib ファイルの作成には Zotero を使っているのですが、そのうち org-ref に移行するかもしれません。

インストール

org-ref のパッケージは Melpa からインストールできます。
この際、文献のリンクを helm で選択できる helm-bibtex なども一緒にインストールされます。

M-x package-refresh-contents RET
M-x package-install RET org-ref RET

設定

設定は公式ページに従えばいいですが、デフォルトでは helm-bibtex の migemo が有効になっていません。
ここでは migemo の設定は省略しますが、helm で migemo を使うには るびきちさん が紹介している設定が必要です。

最低限としては以下のような設定をしておきます。

(require 'org-ref)
(setq reftex-default-bibliography '("~/Dropbox/bibliography/references.bib"))

;; ノート、bib ファイル、PDF のディレクトリなどを設定
(setq org-ref-bibliography-notes "~/Dropbox/bibliography/notes.org"
      org-ref-default-bibliography '("~/Dropbox/bibliography/references.bib")
      org-ref-pdf-directory "~/Dropbox/bibliography/bibtex-pdfs/")

;;; helm-bibtex を使う場合は以下の変数も設定しておく
(setq bibtex-completion-bibliography "~/Dropbox/bibliography/references.bib"
      bibtex-completion-library-path "~/Dropbox/bibliography/bibtex-pdfs"
      bibtex-completion-notes-path "~/Dropbox/bibliography/helm-bibtex-notes")

;;; migemo を有効化
(push '(migemo) helm-source-bibtex)

;;; background が暗い色だとリンクの色が見辛い
(set-face-foreground 'org-ref-cite-face "White")
(set-face-foreground 'org-ref-ref-face "Yellow")
(set-face-foreground 'org-ref-label-face "Cyan")

;;; どこか空いてる所にキーバインドを設定
(define-key org-mode-map (kbd "C-c c c") `org-ref-helm-insert-cite-link)
(define-key org-mode-map (kbd "C-c c l") `org-ref-helm-insert-label-link)
(define-key org-mode-map (kbd "C-c c r") `org-ref-helm-insert-ref-link)

PDF フォルダの設定は必須ではありませんが、ここに BibTex のキーと同じ名前の PDF を保存しておくと、文献のリンクや helm-bibtex のアクションから PDF を開くことができます。

notes.org の設定も必須ではありませんが、文献についてのメモをこのファイルに書くことができます。
パスに設定したファイルが存在しない場合は、文献のリンクの上で C-c C-o (M-x org-open-at-point) と押すか、リンクをクリックして Open notes を選ぶことでファイルを作成できます。

基本的な使い方

使い方も動画などを見れば全部わかりますが、自分用にメモを残しておきます。

まず最初に、LaTeX で使用する bib ファイルとスタイルを org ファイルに記述します。

bibliographystyle:junsrt
bibliography:~/Dropbox/bibliography/references.bib

文献を参照する cite リンクを挿入するには M-x org-ref-insert-cite-link を実行します。
すると helm-bibtex のバッファが起ち上がり、ここで文献を選択します。
複数の文献を選択する場合は C-SPC で対象の文献をマークします。
また、C-u を押してから文献を選択すると、リンクの形式を選択することができます。

挿入した cite リンクの上にカーソルがある状態では、次のことができます。

  • helm-bibtex バッファで他の文献を選択すると、それが既存のリンクに追加されます。
  • helm-bibtex バッファで C-u C-u を押して文献を選択すると、既存のリンクが消去されて置き換わります。
  • S-right (M-x org-shiftright) と S-left (M-x org-shiftleft) でリンクの並び換えができます。
  • M-x org-ref-sort-citation-link を実行すると、日付の昇順でリンクが並び換えられます。

図表などに相互参照を追加する場合は、まずは M-x org-ref-insert-label-link で label リンクを作成しておきます。
そして、ref リンクを挿入したい場所で M-x org-ref-insert-ref-link を実行します。
自動的に org ファイルの中の label リンクが候補に表示されるので、その中から選択します。
候補には latex ブロックの中に書いた \label も表示されます。
また、この場合も C-u を押してから候補を選択すると、リンクの形式を選択することができます。

その他にも、リンクは C-c C-l (M-x org-insert-link) から補完機能を使って挿入するこも可能です。

書籍更新情報
2017-01-16
Pythonによる科学技術計算 基礎編
1.3版への更新が可能になりました。
サポートページはこちら
電子書籍
Pythonによる科学技術計算 基礎編
Kindle ストアで販売中です
Pythonによる科学技術計算 基礎編
同人誌
技術書典(2016/6/25)
Emacs/org-modeのPDF作成術
電子版をBOOTHで販売中です
Emacs/org-modeのPDF作成術
Share