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

layout.tex.erbの分割 #950

Merged
merged 31 commits into from
Jun 8, 2018
Merged

layout.tex.erbの分割 #950

merged 31 commits into from
Jun 8, 2018

Conversation

kmuto
Copy link
Owner

@kmuto kmuto commented Feb 24, 2018

(元の実装からだいぶ変えたので概要を変更)

layout.tex.erbのdocument環境内のerbコードをプリアンプルでの事前定義+マクロ参照 に置き換える。

  • バージョン3の機能とし、バージョン2以下をconfig.ylmで指定しているプロジェクトでは旧来のlayout.tex.erbを使うようにして互換性を保持する
  • review-initに--latex-templateオプションを追加し、templates/latex/テンプレート名 からstyファイル群をコピーするようにする。zipやURI指定も考える? デフォルトはreview-jsbook

templates/latex/review-jsbook に置くようにしてみる。review-initで無指定だったときにはこれらがsty/内にコピーされるというイメージ。

ユーザー置き換えやすいようにフェーズで分割してみたが、かえって多すぎてややこしくなってしまっている気もする。

layout.tex.erbは抽象化し、__define.sty、__coverpage.tex、__frontmatter.tex、__mainmatter.tex、__backmatter.texを読み込むようにしている。

@kmuto
Copy link
Owner Author

kmuto commented Feb 25, 2018

  • review_versionを見て、「3以上」だった場合は新形式、nilまたは未満だった場合(既存物)は旧式のlayout.tex.erbを使うようにした
  • review-init -tオプションを追加し、templates/latex/テンプレート名 の内容をsty/にコピーするようにした

@kmuto
Copy link
Owner Author

kmuto commented Feb 26, 2018

ifthenパッケージを使って、layout.tex.erbのプリアンプル部分を定義に書き換えてみました。
document内もいちおうできそうではあるかな…

視認性は低め。特に3項演算子はわかりにくいので、支援メソッドを作ったほうがよさそう。

@kmuto kmuto mentioned this pull request Feb 27, 2018
19 tasks
@kmuto
Copy link
Owner Author

kmuto commented Feb 27, 2018

cover、titlepageをsty領域に移動を試みたけど、TeX力が低いためなぜこうなるのかわからん…

! Missing \endcsname inserted.
<to be read again> 
                   \textwidth 
l.390 \reviewcoverpagecont

@kmuto
Copy link
Owner Author

kmuto commented Feb 28, 2018

document環境内は全部マクロ化してみた。

  • coverのincludegraphicsのオプションを展開しようとすると、オプション文字列の\textwidthで\endcsnameになってしまう?
  • colophonがうまくいかない。何かテキストを入れると! LaTeX Error: Missing \begin{document}.になってしまう。

@kmuto
Copy link
Owner Author

kmuto commented Feb 28, 2018

全部をプリアンプル側に移動しました。

機能互換性は保てていると思うのですが、自信はあまりありません。実稼働を受けないとわからないところも多そう。

  • マクロ名はこんなかんじでよさそう?
  • define領域(erb書いてるところ)はpdfmaker.rbの1メソッドで賄ってしまったほうがよさそう?
  • sty定義部分は1ファイルにする? 複数にする? (今はreviewmacro.styの内容もマージして1つにしてる)
  • ユーザのconfig.ymlのtexstyleパラメータでは複数のファイルを指定させる? それとも1ファイルにしてそのファイルからusepackageする?

@kmuto
Copy link
Owner Author

kmuto commented Feb 28, 2018

なお、

coverのincludegraphicsのオプションを展開しようとすると、オプション文字列の\textwidth\endcsnameになってしまう?

展開を遅らせるためにexpandafterを使う必要があった。

colophonがうまくいかない。何かテキストを入れると! LaTeX Error: Missing \begin{document}.になってしまう。

単にdef忘れてた…。

@kmuto
Copy link
Owner Author

kmuto commented Mar 28, 2018

  • 大枠はこれでいいのか
  • パラメータ定義は本当にこの形でいいのか(あとあと禍根にならないか)
  • パラメータ定義、環境コマンド定義 はこのままlayout.tex.erbにあるのは大きすぎるので分割したいがどうするのがいいか(環境コマンド定義からは最後のtexstyle読み込み以外erbコードは除去済み)
  • document環境内はこれで網羅できてそうか。erbコードは除去済み
  • テンプレート選択のロジックはこれでいいのか

@kmuto
Copy link
Owner Author

kmuto commented Apr 19, 2018

@takahashim
Copy link
Collaborator

いったんmasterをマージした方がよさそう(rebaseしたらconflictしたので)

@kmuto
Copy link
Owner Author

kmuto commented Jun 6, 2018

いったんmasterをマージした方がよさそう(rebaseしたらconflictしたので)

やってみます

@kmuto
Copy link
Owner Author

kmuto commented Jun 6, 2018

masterを取り込みました。

@takahashim
Copy link
Collaborator

takahashim commented Jun 7, 2018

おお、テストも通った。ありがとうございます!

  • このままsquashしてマージする
  • 「textbf -> reviewbold みたいな変更」と「テンプレート変更」を切り分けて、2つのコミットにしてマージする

のどっちかがよいかと思うんですが、どちらがよさそうですか? @kmuto

(あとで大幅見直しをするなら後者の方が楽かな…と思わないでもないです。)

@kmuto
Copy link
Owner Author

kmuto commented Jun 7, 2018

textbf→reviewboldは結局テンプレート変更とも絡んでくるので、私としては分離する意味はないかなと思いました。revertすることもなさそうですし。

templates/latex/config.erbの中身やtemplates/latex/review-jsbook内については考慮の余地はありますが、骨格部分はこれでreview_version:2.0系資産に影響を出さずに3.0系展開を進めやすいのではと考えています。

@takahashim
Copy link
Collaborator

了解です、ではそのままsquash and mergeしますね

@takahashim takahashim merged commit 8012c93 into master Jun 8, 2018
@kmuto kmuto changed the title [WIP] layout.tex.erbの分割 layout.tex.erbの分割 Jun 8, 2018
@takahashim
Copy link
Collaborator

@kmuto これのreview-jlreqがどうにもビルドできなさそうなのですが、動くサンプル等はありますか?

@kmuto
Copy link
Owner Author

kmuto commented Jun 18, 2018

あら。夜に見てみます。

@kmuto kmuto deleted the split_layout branch October 10, 2018 08:54
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.

2 participants