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

節単位でファイルを分割したい #1108

Open
kenhys opened this issue Sep 10, 2018 · 7 comments
Open

節単位でファイルを分割したい #1108

kenhys opened this issue Sep 10, 2018 · 7 comments

Comments

@kenhys
Copy link

kenhys commented Sep 10, 2018

問題点

現在のRe:VIEWは章単位でファイルを分割することは想定しているのでしょうが、
節単位でファイルを分割することはおそらく想定していなさそうに見えます。

chap1.re

= 章のタイトル

文章...

section1.re

== 節のタイトル

文章...

sectionN.reも同様に節ごとに分割したファイルを用意して、以下のようにcatalog.ymlに指定する。

catalog.yml

CHAPS:
  - chap1.re
  - section1.re
  - section2.re

このようにすると、一見それっぽく節単位で分割できているように見えるのですが、図や表の参照を含むと番号がずれて破綻します。

動機について

なぜ章以下の節の単位でファイルを分割できてほしいかというと

  • catalog.ymlを編集するだけで、節の順番を入れ替え or 追加 or 削除がしたい

というところにつきます。(マニュアルで節ごとに1つのオプションの説明をしているケース、みたいなユースケースです)

解決策について

あらかじめ連結した章のファイルを生成してからRe:VIEWに処理させる必要があるという認識ですが、
Re:VIEW側でこれ使うといいとかこうするといい、みたいな知見があったりするのでしょうか?

@kmuto
Copy link
Owner

kmuto commented Sep 10, 2018

現状のRe:VIEWがChapter単位で管理しているのを変えるのは相当な副作用が出そうなのと、YAMLがこれ以上複雑化するのは避けたいという事情があります。

Re:VIEW的な対処法としては、章ファイルに #@mapfile(節ファイル) を並べておき、review-preproc または rake preproc を実行すれば章ファイルのところに更新された形で入る、ということを使うことになります(format.ja.md を参照してください)。でもrake preprocだといきなり変わっちゃうのであまり嬉しくないかも。

節単位でもっと大局的に見たいということだと、生のLaTeXなり、AsciiDocなりといった別手段を使ったほうが妥当かもしれませんね。

@kdmsnr
Copy link
Collaborator

kdmsnr commented Sep 10, 2018

「xxxを編集するだけで、節の順番を入れ替え or 追加 or 削除がしたい」を機能として実装するのは需要ありそうな気がしました。実際、章が長すぎるときはファイルを分けたいですし。xxxからcatalogとreを生成するようなイメージです。rakeのタスクにいい名前さえあれば。。。

@kmuto
Copy link
Owner

kmuto commented Sep 10, 2018

参照系と画像IDで困りそうな気がしたけれども、別の章に移動するということがなければまぁいいのかなぁ。既存のものに機能追加してもバグを生みそうなので、review-なんとか を新たに作るか、rakeがんばるで何とかなるのか。

@kdmsnr
Copy link
Collaborator

kdmsnr commented Sep 10, 2018

ああ、ああ……。参照系は死にますね。章マタギは自己責任ということで。

@kmuto
Copy link
Owner

kmuto commented Sep 10, 2018

ファイル名とIDが密接に結びついているというRe:VIEWの基本モデルからは、分割ファイルはその分割ファイル名がIDになるというのが「あるべき挙動」になると思います。

@kdmsnr
Copy link
Collaborator

kdmsnr commented Sep 10, 2018

わかります。ただ、厳密には「catalog.ymlに掲載したものにIDが与えられる」ので、分割ファイルを載せないのであれば「IDナシ」(参照しちゃダメ)ということになるんじゃないかと。

@kenhys
Copy link
Author

kenhys commented Sep 11, 2018

Re:VIEW的な対処法としては、章ファイルに #@mapfile(節ファイル) を並べておき、review-preproc または rake preproc を実行すれば章ファイルのところに更新された形で入る、ということを使うことになります(format.ja.md を参照してください)。でもrake preprocだといきなり変わっちゃうのであまり嬉しくないかも。

rake preprocだと#@mapfileする対象の節ファイルでさらに#@mapfile()していても大丈夫そうですね。
ありがとうございます。

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

3 participants