最終更新:2015/07/27 11:52:38 JST
自分が作業する上での備忘録です.内容の正確さ,設定後の動作など諸々は,すべて自己責任でお願いします.
pLaTeXから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}でも𠮷や①でも大丈夫.
文書内のハイパーリンクのパッケージはしおりの文字化けを防ぐためのオプション(unicode=true)が必要.WindowsでもOSXでも同じソースで文字化けせずにしおりが作成可能.
\usepackage[unicode=true]{hyperref}
zwやzhなどの日本語関連の単位を変更.例えば
zw -> \zw zh -> \zh
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の違いか?(謎
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パッケージは便利だが,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パッケージは,オプションのtruedimenを設定しておかないとできあがったpdfのサイズが変になった.
\documentclass{ltjsbook}
\usepackage[truedimen]{geometry}
図などを外部から取り込むときにお世話になるgraphicxパッケージは,pLaTeXのときにオプションで指定していたdvipdfmxドライバの指定があるとエラーを吐くので削除.
\usepackage{graphicx}
beamerクラスを利用してプレゼン資料を作成するときに,日本語のしおりの文字化け防止にドキュメントクラスのオプションとしてhyperref={unicode=true}を指定.なおhyperrefパッケージのオプションとして指定するとエラーとなる.またpLaTeXのときには必要だったdvipdfmxをオプションに指定したままだとエラーになるので削除.
またpLaTeXのときに日本語表示に必要だったminijsパッケージもエラーになるので不要.
\documentclass[hyperref={unicode=true}]{beamer}
\usepackage{luatexja} % ltjsclassesを使ってないので追加
%\usepackage{minijs} % LuaLaTeXでは不要みたい
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)
[*]下へこのページのボトムへ▼ ▲[#]上へこのページのトップへ
参考にさせていただいたサイトは順次追加(現在準備中).