Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

PDF作成時にLuaTeX用のTeX文書が作成されない #451

Closed
huideyeren opened this issue Sep 29, 2015 · 12 comments
Closed

PDF作成時にLuaTeX用のTeX文書が作成されない #451

huideyeren opened this issue Sep 29, 2015 · 12 comments

Comments

@huideyeren
Copy link
Contributor

LuaTeX-jaを変換エンジンにして文書を作成しようと考えておりますが、
変換の際にpLaTeX用のTeX文書が作成されてしまいます。

なお、TeX用の設定は以下のとおりです。

# LaTeX用のスタイルファイル(styディレクトリ以下に置くこと)
texstyle: reviewmacro
# LaTeX用のdocumentclassを指定する
# ここの設定が結構難しい
texdocumentclass: ["ltjsbook", "b5j,openany,oneside,papersize=b5j,notitlepage"]
# LaTeX用のコマンドを指定する(platex or lualatex)
texcommand: "lualatex"
# LaTeX用のオプションを指定する(default: "-kanji=#{kanji}")
# texoptions: "-kanji=utf-8"
# LaTeX用のdvi変換コマンドを指定する(dvipdfmx)
dvicommand: ""
# LaTeX用のdvi変換コマンドのオプションを指定する
dvioptions: ""

加えて、スタイルファイルは以下のとおりです。

%% from review-pdfmaker
\usepackage{luatexja-fontspec}
\newopentypefeature{PKana}{On}{pkna}
\setmainjfont[
    JFM=prop,PKana=On,Kerning=On,
    BoldFont={IPAexGothic},
    ItalicFont={IPAexMincho},
    BoldItalicFont={IPAexGothic}
]{IPAexMincho}
\setsansjfont{IPAexGothic}
\ltjsetparameter{jacharrange={-2,-3}}
\usepackage{fancyhdr}
\pagestyle{fancy}
% \input{jdummy.def}

%% ペーパーサイズの設定
% \special{papersize=182truemm,257truemm}
% \usepackage[top=18truemm,bottom=19truemm,left=16truemm,right=16truemm]{geometry}

%% 章番号を消す

%% 多言語用設定
% \usepackage{CJK}
% \usepackage[utf8]{inputenc}
% \usepackage[T1,T2A]{fontenc}

%% ハイパーリンクの色を無効に
% \hypersetup{colorlinks=false}
% \usepackage{layout}

%% コードブロックに枠線をつける
% \let\OrigVerbatim\OriginalVerbatim
% \renewcommand{\OriginalVerbatim}[1][1]{\OrigVerbatim[#1,frame=single]}

%% 和文多書体の設定
% \usepackage{palatino}
% \usepackage[deluxe,expert]{otf}
% \renewcommand{\headfont}{\gtfamily\sffamily\bfseries}
% \renewcommand{\emph}[1]{\textmg{\textsf{#1}}}

% \makeatletter
% \def\plainifnotempty{%
% \thispagestyle{plainfoot}% 元は plainhead
% }
% \makeatother
% %% normal ページスタイルの再定義
% \fancypagestyle{normal}{
% \fancyhf{} % 一旦設定をクリア
% \cfoot{\thepage}
% \renewcommand{\headrulewidth}{0.0pt}
% \renewcommand{\footrulewidth}{0.0pt}
% }
% %% plain ページスタイルの再定義
% \fancypagestyle{plain}{
% \fancyhf{} % 一旦設定をクリア
% \fancyfoot[LE,RO]{\thepage}
% \renewcommand{\headrulewidth}{0pt}
% \renewcommand{\footrulewidth}{0.0pt}
% }

%% for listings
%\renewcommand{\lstlistingname}{List}
%\lstset{%
%  breaklines=true,%
%  breakautoindent=false,%
%  breakindent=0pt,%
%  fontadjust=true,%
%  backgroundcolor=\color{shadecolor},%
%  frame=single,%
%  framerule=0pt,%
%  basicstyle=\ttfamily\scriptsize,%
%  commentstyle=\color{reviewgreen},%
%  identifierstyle=\color{reviewblue},%
%  stringstyle=\color{reviewred},%
%  keywordstyle=\bfseries\color{reviewdarkred},%
%}

生成されたbook.texを見ると、zwの単位がそのままの形になっていたり、
冒頭にはLuaTeX-jaで読み込めないものが入っていたりします。

ファイルのはじめの方はこのような感じです。

\documentclass[b5j,openany,oneside,papersize=b5j,notitlepage]{ltjsbook}
\usepackage[deluxe]{otf}
\usepackage[dvipdfmx]{color}
\usepackage[dvipdfmx]{graphicx}
\usepackage{framed}
\usepackage{wrapfig}
\definecolor{shadecolor}{gray}{0.9}
\definecolor{shadecolorb}{gray}{0.1}
\definecolor{reviewgreen}{rgb}{0,0.4,0}
\definecolor{reviewblue}{rgb}{0.2,0.2,0.4}
\definecolor{reviewred}{rgb}{0.7,0,0}
\definecolor{reviewdarkred}{rgb}{0.3,0,0}
\usepackage[utf8]{inputenc}
\usepackage{ascmac}
\usepackage{float}
\usepackage{alltt}
\usepackage{amsmath}

%% if you use @<u>{} (underline), use jumoline.sty
%%\usepackage{jumoline}

\newenvironment{shadedb}{%
  \def\FrameCommand{\fboxsep=\FrameSep \colorbox{shadecolorb}}%
  \MakeFramed {\FrameRestore}}%
 {\endMakeFramed}

\usepackage[top=10zw,bottom=12zw,left=10zw,right=10zw]{geometry}
%\usepackage[top=5zw,bottom=5zw,left=1zw,right=1zw]{geometry}


\newcommand{\parasep}{\vspace*{3zh}}
\setlength{\footskip}{30pt}

%% Bookmarkの文字化け対策(日本語向け)
\ifnum 46273=\euc"B4C1 % 46273 == 0xB4C1 == 漢(EUC-JP)
  \usepackage{atbegshi}%
  \AtBeginShipoutFirst{\special{pdf:tounicode EUC-UCS2}}%
  %%\AtBeginDvi{\special{pdf:tounicode EUC-UCS2}}%
\else
  \usepackage{atbegshi}%
  \AtBeginShipoutFirst{\special{pdf:tounicode 90ms-RKSJ-UCS2}}%
  %%\AtBeginDvi{\special{pdf:tounicode 90ms-RKSJ-UCS2}}%
\fi

\usepackage[dvipdfm,bookmarks=true,bookmarksnumbered=true,colorlinks=true,%
            pdftitle={書名},%
            pdfauthor={著者名}]{hyperref}

何か方法がありましたらご教授ください。

@takahashim
Copy link
Collaborator

すみません、現状LuaTeX用のスタイルファイルをRe:VIEW側で自動で用意する方法はないため、若干面倒なのでした…。

LuaTeXの場合、layoutsディレクトリの下にlayout.tex.erbというファイルを置いてください。サンプルとしては https://gist.github.com/takahashim/0f7280d66ef537ee1b52 といった感じになります。

@huideyeren
Copy link
Contributor Author

ありがとうございます。
layout.tex.erbを置く方法でビルドできました。

@takahashim
Copy link
Collaborator

ご報告ありがとうございます。もう少し良いやり方を考えないといけないですね…。

@huideyeren
Copy link
Contributor Author

config.ymlでpLaTeX用とLuaTeX用の設定を切り替えられるようにしていただけると助かるのですが……
私の中でそれに対してできることってまだない状況です。

@takahashim
Copy link
Collaborator

conig.ymlのコマンド名を見て元になるテンプレートを変える、くらいはできそうな気がします。ちょっとあとになるかもしれないので、まずは個別にlayout.tex.erbを差し替える方法で回避していただければありがたいです 🙇

@kmuto
Copy link
Owner

kmuto commented Apr 17, 2016

layoutファイルレベルでいうと、ERB if文のtexcompiler判定で分けることができるようにはしましたが、開発陣でpLaTeX、upLaTeXに加えてさらにLuaTeXでも正常に動作するクラスファイルを保守するというのは、だいぶ重い作業に感じます。

@kmuto
Copy link
Owner

kmuto commented Sep 26, 2017

次回のdevelopers MTGのテーマの1つとなりました。

テンプレート側をlualatex対応したとして、latexbuilder.rbにも手を入れる必要は発生しそうでしょうかね。latexbuilder側でコンパイラ単位の分岐ロジックはあまり入れたくないと思っています。

@takahashim
Copy link
Collaborator

とりあえず私の方で作ってたLuaLaTeX対応のものはlayoutの差し替えだけで、latexbuilder.rbの方は特別対応なしで何とかなってます(が、差し替えが激しすぎるので何とかしたい…)

@munepi
Copy link
Contributor

munepi commented Sep 26, 2017

@kmuto @takahashim
現状でad-hocなLaTeX出力にしているタグを除き、latexbuilder.rbに手をいれる必要ないです。
むしろ、latexbuilder.rbで余計な出力をしないほうが望ましいです。

(u)pTeX、pdfTeX、XeTeX、LuaTeXなどのどのTeX組版エンジンを使おうが、LaTeXクラスファイルとスタイルファイル側ですべて吸収可能なようにできるはずです。
利用者側がTeX組版エンジンと合わせて、然るべきLaTeXクラスファイルとスタイルファイルを適切に整えればよいだけです。

@yuw
Copy link

yuw commented Sep 26, 2017

latexbuilder.rbでLuaLaTeX対応を分岐する必要はないと思います.
layoutで対応すれば充分で,実際,技術書典2のときはそのようにしたモノでPDFを作りました.
テンプレートなり,そこで呼ばれるクラス/スタイルファイルの問題ですね.
(PDF/X-1aまでもっていくことも一応可能です

@huideyeren
Copy link
Contributor Author

確かに考えてみると、どのTeXエンジンに対してもlayoutで個別に対応した方が良さそうに思いますね。
実際私も最初に作ったlayoutで作れてCIも回せてますし。
ただ、一応サンプルのLuaLaTeX用layoutはあった方がいいかなぁとも思います。

@kmuto
Copy link
Owner

kmuto commented Nov 30, 2018

3.0にて、layout.tex.erbはマクロで抽象化したので、あとはlualatexで利用可能なreview-jlreqクラスファイルあるいは独自のクラス+スタイルマクロ で対処できるかと思います。(ただlualatexでの検証はほとんどしていないので、何かあれば新しくご報告いただければと思います)

@kmuto kmuto closed this as completed Nov 30, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants