最終更新:2015/07/27 11:52:38 JST

現在位置:ホーム(1)その他(6)備忘録>TeX設定(LuaLaTeXへの引っ越し編)

TeX設定(LualaTeXへの引っ越し編)

自分が作業する上での備忘録です.内容の正確さ,設定後の動作など諸々は,すべて自己責任でお願いします.
pLaTeXからLuaLaTeXへの引っ越しの際の作業メモです.

LuaLaTeXで変更や修正が必要なもの

LuaLaTeXに乗り換える時に修正が必要だったところ.

ファイル名

W32TeXだとファイル名に日本語文字は使用不可.ただしlualatexの第1引数に-cmdxをつけると日本語ファイル名も使用可.

lualatex -cmdx -interaction=nonstopmode ほげほげ.tex
文字コード

Shift_JISとかEUCではなく,UTF-8を利用すること,と言っても元から使ってたので影響なし(笑).

ドキュメントクラス

pLaTeXのドキュメントクラスは利用不可.対応したいずれかのクラスを利用.

\documentclass{ltjsarticle} % jsarticleの替わり
\documentclass{ltjsbook}    % jsbookの替わり
\documentclass{ltjreport}   % jsreportの替わり
フォント関連のパッケージ

フォント関連のパッケージもpLaTeXと異なる.

% フォントを自分で指定する場合
\usepackage{luatexja-fontspec}
\setmainjfont[BoldFont=HiraMinPro-W6]{HiraMinPro-W3}
\setsansjfont[BoldFont=HiraKakuPro-W6]{HiraKakuPro-W3}

% プリセットを利用する場合(OSXだとluatexja-fontspecと一緒に指定するとエラーとなるのでどっちか使用)
\usepackage[hiragino-pro,deluxe,expert]{luatexja-preset}

\usepackage{luatexja-otf} % otfの替わり

なおLuaLaTeXではUTF-8でソースを作成するので,そのまま異体字を使っても問題なく表示可能.ただし出力用のフォントが異体字に対応していないとダメ(笑) luatexja-otfパッケージの利用で次のようなおなじみ(笑)の表記も使用可能.

\ajTsuchiYoshi や\ajMaru{1}でも𠮷や①でも大丈夫.
hyperrefパッケージ

文書内のハイパーリンクのパッケージはしおりの文字化けを防ぐためのオプション(unicode=true)が必要.WindowsでもOSXでも同じソースで文字化けせずにしおりが作成可能.

\usepackage[unicode=true]{hyperref}
日本語関連の文字幅などの変更

zwやzhなどの日本語関連の単位を変更.例えば

zw -> \zw
zh -> \zh
1行当たりの文字数指定のマクロ

1行当たりの文字数を指定するとkanjiskipを調整してくれる非常に便利なマクロのmojiparline{}は残念ながらそのままでは使えない.これはLuaLaTeXではkanjiskipやxkanjiskipを直接操作せず,ltjgetparameterとltjsetparameter関数を利用してアクセスするように変更になっていることが原因.次のように修正すると利用可能(これでよいのかは不明,とりあえず機能している).

\makeatletter
\def\mojiparline#1{
    \newcounter{mpl}
    \setcounter{mpl}{#1}
    \@tempdima=\linewidth
    \advance\@tempdima by-\value{mpl}\zw     % \zwに変更
    \addtocounter{mpl}{-1}
    \divide\@tempdima by \value{mpl}
    %\advance\kanjiskip by \@tempdima        % 元の処理
    \@tempskipa=\ltjgetparameter{kanjiskip}  % レジスタにkanjiskipを代入
    \advance\@tempskipa by \@tempdima        % レジスタに調整分を加算
    \ltjsetparameter{kanjiskip=\@tempskipa}  % レジスタをkanjiskipにセット
    \ltjsetparameter{xkanjiskip=\@tempskipa} % 同様にxkanjiskipにセット
    \advance\parindent by \@tempdima
}
\makeatother

\begin{document}

\mojiparline{48} % 1段組に換算した文字数で指定(片段23文字の場合)

なおpLaTeXのときは2段組だと片方の1段分の文字数を指定すればよかったはずが,LuaLaTeXのときは中央の空白分も数えて1段組に換算した文字数にしてやる必要.linewidthの違いか?(謎

pdfpageパッケージ

1ページにpdfをn x m分縮小してくれるパッケージのpdfpagesはpLaTeXを使っていても,切り替えてPDFLatexを使う必要あったが,PDFLatexの拡張版のLuaLaTeXでは問題なく利用可能.

\documentclass[a4paper,]{article}
\usepackage{pdfpages}
\begin{document}
\includepdf[pages=-, nup=2x4, frame=true, delta=5 5, column=true, columnstrict=true]{hogehoge.pdf}
\end{document}
listings, jlistingsパッケージ

プログラムのソースコードを見やすく整形して表示してくれるlistingsパッケージは便利だが,pLaTeXでは日本語の取り扱いに難がある.そのためそれを修正したjlistingsパッケージを併用する必要があった.ありがたいことにLuaLaTeXでは解消されており,jlistingsパッケージは不要.日本語を含んだ行の折り返しで背景色の指定が反映されない場合があったが,それもLuaLaTeXでは発生せず(今のところ).

\usepackage{listings}
\usepackage{xcolor}

\lstnewenvironment{R}[1][]{%
\lstset{%
	language=R,%
	basicstyle={\ttfamily\small},%
	numberstyle={\ttfamily\scriptsize},%
	frame=single,%
	backgroundcolor={\color[rgb]{1,1,0.85}},%
	rulecolor={\color[rgb]{1,1,0.85}},%
	breakatwhitespace=true,%
	prebreak=\space,%
	postbreak=\space,%
	breaklines=true,%
	breakindent=1em,%
	xleftmargin=4\zw,%
	framexleftmargin=3\zw,%
	xrightmargin=1\zw,%
	numbers=left,%
	firstnumber=last,%
	tabsize=1,%
	commentstyle={\ttfamily\color[rgb]{0,0.5,0}},%
	keywordstyle={\bfseries\color{blue}},%
	moreemph=[3]{factorial},%
	emphstyle=[3]{\color{blue}},%
	identifierstyle={\slshape\color{red}},%
	columns=[l]{fullflexible},%
	escapechar=\@,%
	showstringspaces=false,%
	#1%
}%
}{}

\begin{document}

\begin{R}[firstnumber=1]
plot(years, x, xlab="年", ylab="順位", ylim=c(6,1), las="1", tcl="0.25", type="b", lab=c(10, 6, 10))
hist(weight, breaks=c(60,120,5), right=FALSE, las=1, xlab="体重[kg]", ylab="度数[人]", ylim=c(0,30), tcl=0.25, main="") #度数分布図
\end{R}
geometryパッケージ

マージンの設定などに便利なgeometryパッケージは,オプションのtruedimenを設定しておかないとできあがったpdfのサイズが変になった.

\documentclass{ltjsbook}
\usepackage[truedimen]{geometry}
graphicxパッケージ

図などを外部から取り込むときにお世話になるgraphicxパッケージは,pLaTeXのときにオプションで指定していたdvipdfmxドライバの指定があるとエラーを吐くので削除.

\usepackage{graphicx}
Beamerクラス

beamerクラスを利用してプレゼン資料を作成するときに,日本語のしおりの文字化け防止にドキュメントクラスのオプションとしてhyperref={unicode=true}を指定.なおhyperrefパッケージのオプションとして指定するとエラーとなる.またpLaTeXのときには必要だったdvipdfmxをオプションに指定したままだとエラーになるので削除.

またpLaTeXのときに日本語表示に必要だったminijsパッケージもエラーになるので不要.

\documentclass[hyperref={unicode=true}]{beamer}
\usepackage{luatexja} % ltjsclassesを使ってないので追加
%\usepackage{minijs} % LuaLaTeXでは不要みたい
metalogoパッケージ

LuaLaTeXに乗り換えた後,TeXのロゴを表示させるコマンドでエラーが発生(謎 それも全部の書類ではなく,一部の書類だけで発生するという謎な状況… 

これは{\TeX}のロゴです

このソースをコンパイルするとこんなエラーが(汗

! Use of \@ doesn't match its definition.
\TeX ...@family \@tempa \ugmTeX \else \sfTeX \fi
\fi \fi \fi \fi \fi

PDF自体は問題なく作成されているものの,やっぱり感じがよくないのでどうしたもんかと思っていたが,metalogoパッケージをロードしてやれば解決(経過観察中ww) 本来pLaTeXでも使っていないとあかんかったんかもしれんが…

\usepackage{metalogo}
その他のパッケージやマクロ
けっこうそのままで問題なく利用可能みたい.単にまだ地雷を踏んでいないだけかもしれんが(笑)

以下続く(かもしれないwww)

[*]下へこのページのボトムへ▼ ▲[#]上へこのページのトップへ

情報源など

参考にさせていただいたサイトは順次追加(現在準備中).

[*]下へこのページのボトムへ▼ ▲[#]上へこのページのトップへ

このサイトに関するお問い合わせは,連絡先のページをご覧ください.
http://www.sip-ac.jp/sip/tex04.html,    2001 Ayumi Yoshikawa
主観情報処理研究所