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

jlreq派生クラスとスタイル #1035

Merged
merged 13 commits into from
Jun 27, 2018
Merged

jlreq派生クラスとスタイル #1035

merged 13 commits into from
Jun 27, 2018

Conversation

kmuto
Copy link
Owner

@kmuto kmuto commented Jun 18, 2018

いちおうsyntax-bookがコンパイルできるもの。

  • 完成度はまだ低いです。
  • reviewnoteおよびコラムの環境でオプション[]を使ってキャプションを指定する都合上、jsbookスタイルのほうも変更しています。
  • 本当はコードの前後アキ固定のためにreviewlistblockでキャプションとreviewlistを囲みたい。
  • LoadClassWithOptionsにしてもクラスオプションを引き継いでくれるというわけではないみたい。jlreq採用で肝心のfont指定などをしようとすると怒られる…。

とりあえず実用からはまだほど遠いので、masterからjlreqは削除したほうがよさそうに思っています。ただ消した場合に派生ブランチのこっちのファイルはどう影響受けるんでしょうね。

@takahashim
Copy link
Collaborator

@kmuto これですが、jlreq関連はさておき、latexbuilderの変更部分とそれに関連するところはcherry-pickしてマージしますか?
jlreq関連もまだexperimentalでよければそのまま突っ込んでもそんなに影響ないかと思います

@kmuto
Copy link
Owner Author

kmuto commented Jun 21, 2018

そうですね、jlreqもexperimentalでこういう方法があるよという提示にできればと。

@kmuto
Copy link
Owner Author

kmuto commented Jun 21, 2018

しかしちょっと今週はコミットを分けたりする時間がとれそうもないです… やれそうなのは使用ドキュメントを少し書いてそのままマージくらいでしょうか。

@takahashim
Copy link
Collaborator

む、なるほど、では私のほうでいじってみます

kmuto and others added 2 commits June 21, 2018 20:01
* add review-jlreq-basemacros.sty
* some fixes
@takahashim
Copy link
Collaborator

とりあえず 86556be@<uchar>のやつと 273d6f4 のcaptionblockを変更するやつは別PRで取り込みます。

@kmuto kmuto changed the title [WIP] jlreq派生クラスとスタイル jlreq派生クラスとスタイル Jun 22, 2018
@kmuto
Copy link
Owner Author

kmuto commented Jun 22, 2018

README.mdを書いて、syntax-bookが通るようにしたのでひとまず実験用としては足りそう。

styにお悩みコメントが多すぎる気はしているのでissue側に振ったほうがいいかなぁ…。

@kmuto
Copy link
Owner Author

kmuto commented Jun 26, 2018

ファイルの持たせ方をreview-jsbookと合わせました。
いちおうこれで「実験版として使えなくはない」ものになったかと思います。

@takahashim takahashim merged commit 6fc8b38 into master Jun 27, 2018
@takahashim takahashim deleted the jlreq-exp branch June 27, 2018 13:18
@yuw
Copy link

yuw commented Jun 29, 2018

現状だとドライバまわりやluatexでの単位zwなどの扱いでエラーが出てしまいます.
手許では次のdiffでビルドできるようになっています.
TeXのディストリビューションはTeX Live 2017 frozenなのですが,
他のディストリビューションだったりすると不要だったりしますか?

diff --git a/templates/latex/layout.tex.erb b/templates/latex/layout.tex.erb
index 59ae254f..1a1e1782 100644
--- a/templates/latex/layout.tex.erb
+++ b/templates/latex/layout.tex.erb
@@ -1,4 +1,8 @@
+<%- if @config['texcommand']=='lualatex' -%>
+\documentclass[<%= @documentclassoption %>]{<%= @documentclass %>}
+<%- else -%>
 \documentclass[dvipdfmx,<%= @documentclassoption %>]{<%= @documentclass %>}
+<%- end -%>
 <%= latex_config %>
 <%- if @config['texstyle'] -%>
 <%-   [@config['texstyle']].flatten.each do |x| -%>
diff --git a/templates/latex/review-jlreq/review-base.sty b/templates/latex/review-jlreq/review-base.sty
index f1f3e481..c94a2b26 100644
--- a/templates/latex/review-jlreq/review-base.sty
+++ b/templates/latex/review-jlreq/review-base.sty
@@ -76,11 +76,13 @@
 \fi
 \ifdefined\review@coverimage
   \def\reviewcoverpagecont{%
-\thispagestyle{empty}
-\begin{center}
-\expandafter\includegraphics\expandafter[\review@coverimageoption]{\review@coverimage}% includefullpagegraphicsを導入すべき?
-\end{center}
-\clearpage
+    \thispagestyle{empty}
+    \null\vfill
+    \centerline{\vbox to 0pt{\vss\hbox to 0pt{\hss
+      \expandafter\includegraphics\expandafter[\review@coverimageoption]{\review@coverimage}% includefullpagegraphicsを導入すべき?
+      \hss}\vss}}
+    \vfill\null
+    \clearpage
   }
 \fi
 
@@ -91,7 +93,12 @@
        \begin{titlepage}
        \thispagestyle{empty}
        \begin{center}%
-       \mbox{} \vskip5zw
+       \mbox{}%
+       \ifx\review@jlreq@driver\review@jlreq@driver@luatex
+         \vskip5\zw
+       \else
+         \vskip5zw
+       \fi
        \reviewtitlefont%
        {\Huge\review@booktitlename\par}%
        \ifdefined\review@subtitlename
@@ -105,8 +112,14 @@
        \review@titlepageauthors
        \end{tabular}\par}%
        \vfill
-       {\large\review@date \review@intn@edition\hspace{2zw}\review@intn@publishedby\par}%
-       \vskip4zw\mbox{}
+       {\large\review@date \review@intn@edition%
+         \ifx\review@jlreq@driver\review@jlreq@driver@luatex
+           \hspace{2\zw}%
+         \else
+           \hspace{2zw}%
+         \fi
+         \review@intn@publishedby\par}%
+       \vskip4\zw\mbox{}
        \end{center}%
        \end{titlepage}\clearpage
     }
diff --git a/templates/latex/review-jlreq/review-jlreq.cls b/templates/latex/review-jlreq/review-jlreq.cls
index d105b207..97f844e6 100644
--- a/templates/latex/review-jlreq/review-jlreq.cls
+++ b/templates/latex/review-jlreq/review-jlreq.cls
@@ -89,6 +89,7 @@
 
 % エンジンとドライバの情報。jlreq-trimmarksが定義されていればそっちから持ってくる。
 % 定義されていなければjlreqから持ってくる
+\def\review@jlreq@driver@luatex{luatex}
 \def\review@jlreq@engine{}
 \def\review@jlreq@driver{}
 \ifdefined\jlreq@trimmarks@engine
@@ -106,7 +107,7 @@
   \ifx o\jlreq@trimmarks@driver\def\review@jlreq@driver{dviout}\fi
 \else% jlreqから持ってくる
   \ifx l\jlreq@engine
-    \def\review@jlreq@driver{lualatex}
+    \def\review@jlreq@driver{luatex}
   \else
     \def\review@jlreq@driver{dvipdfmx}
   \fi
@@ -129,7 +130,10 @@ setpagesize=false]{hyperref}[2016/06/24 v6.83q]
 \RequirePackage[T1]{fontenc}
 \RequirePackage{textcomp}%T1/TS1
 \RequirePackage{lmodern}%\ttdefault: lmtt
+\def\review@jlreq@driver@luatex{luatex}
+\ifx\review@jlreq@driver\review@jlreq@driver@luatex\else
 \RequirePackage[\review@jlreq@driver]{pxjahyper}[2012/05/27 v0.2]
+\fi
 \RequirePackage{tikz}
 \usetikzlibrary{calc}
 \RequirePackage{multirow}

@kmuto
Copy link
Owner Author

kmuto commented Jun 29, 2018

ありがとうございます、手元ではuplatexだけで試していたので気付いてませんでした…(TeXLive2016だとそもそもlualatex+jlreqがダメ)。

もともとdvipdfmxオプションがlayout明示なのがだいぶ気持ちが悪いので、@documentclassoption側の処理に持っていきたい気がしています。

@yuw
Copy link

yuw commented Jun 29, 2018

もともとdvipdfmxオプションがlayout明示なのがだいぶ気持ちが悪いので、@documentclassoption側の処理に持っていきたい気がしています。

大賛成です!
グローバルオプションを決め打ちでは無理が出てしまいますしね.
必要ならconfig.ymlで完全に制御できるとよいと思います.

@kmuto
Copy link
Owner Author

kmuto commented Jun 29, 2018

こんな判定だと荒っぽいですかね…

      if @texcompiler && @texcompiler =~ /platex/ &&
         @documentclassoption !~ /dvipdfmx/
        @documentclassoption = "dvipdfmx,#{@documentclassoption}"
      end

利点

  • 旧来データのconfig.ymlをいじらなくていい

欠点

  • uplatexでdvipdfmxを使いたくないという場合に困る(のが実際あるのか)
  • *platex な名前でPDF直接書けるような名前のが登場すると困る

lualatexを使っている人はまだ少なく、ドキュメント記載されてればわかるのではという感じもするので、「dvicommandパラメータの値がdvipdfmx以外に設定されている(たとえばnullとか)なら入れない」という方法もあります。

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

Successfully merging this pull request may close these issues.

3 participants