vivliostyle/themes

既存の公式テーマの名前を考え直す

Closed this issue · 13 comments

#48 から引き続きの議論です。

問題

theme-bunkoという名前の公式themeは、実際には文庫サイズではないので混乱を招いている。

やりたいこと

  • 公式themeの名前は正しく具体的でわかりやすいものにすべき
  • すでに公式themeは4つ公開されているが、この名前もわかりやすいものに変える。ただし突然名前が変わると混乱するので、現在のバージョンのthemeはそのまま残し、次のバージョン(またはv1.x.x)から新しい名前で更新する

用紙サイズなどは、理想的には(Vivliostyle Pubなどでの用途を考えると)ユーザーが編集可能なパラメータであるべきなので、テーマ名に含めないほうがよいかも

現在公開されている・公開を予定している公式theme

  • bunko: 縦書きの小さい本。日本語の小説に使えるように、ルビのスタイルなどが指定されている。
  • slide: 横書きのスライド資料。
  • techbook: 横書きの技術書。注やソースコードのスタイルなどが指定されている。
  • academic: 横書きのレポート。大学の課題レポートなどに使える。
    • academic-twocolumn: academicの2段組みバージョン。
  • gutenberg: 横書きの小さい本。英語の小説に使えるように、章の最初の1文字を大文字にするなどのスタイルが指定されている。
  • 小説同人誌: 縦書きの本。日本語で2段組みを想定している。

@akabekobeko さんの以下のコメントを手がかりに再考しましょう。

版型-組方向-サイズ みたいな名前とか

先頭へ任意の名前があるとよさそうです。

任意の名前-版型-組方向-用紙サイズ

のような感じで。このようにすると #43 のような時に既存テーマのバリエーションを増やしてゆけます。データ構造におけるツリーは末広がりになると管理しやすく、この観点から

  • ルートになるのは「目的 = 任意の名前」
  • 枝葉としてサイズなどが続く

という感じです。例えば #43 なら theme-bunko のバリエーションとして theme-bunko-a4-.... のような命名にして追加するとか。任意の名前として一般的 (曖昧) なものを付けたとしても、後続の命名が具体的な用途を補足します。

#48 (comment)

上記のうち、用紙サイズについては @yamasy1549 さんの以下の指摘があります。

用紙サイズなどは、理想的には(Vivliostyle Pubなどでの用途を考えると)ユーザーが編集可能なパラメータであるべきなので、テーマ名に含めないほうがよいかも

用紙サイズを言い出したのは私なのですが、そもそもの問題意識は下記の例のような「トンボの有無」も考えないとというものでした。

つまり、トンボ有りの場合、スタイルで意図する判型と、トンボも入れた用紙サイズの2つを表現する必要があるからです(分かりづらくてすみません)。

ただ、トンボの有無を欧字記号で表すことにすれば、@yamasy1549 さんが指摘するように用紙サイズは入れなくともよいかも。

加えて、#48 (comment) で書いた「段組」を加えると、以下のような案になるでしょうか。

任意の名前-版型-組方向-段組-トンボの有無

ちょっと長いですかね? ただこの問題は、詰まるところ「Vivliostyle で生成できる〈本〉を分類する」ということでもあるので、ある程度長くなるのは仕方ないかなとも思います。

ちょっと思ったのですが、「版型、組方向、段組、トンボの有無を指定しないTheme」というのはあり得るのでしょうか?

たとえば、リフロー電子書籍向きで、なるべくシンプルな、horizontal-tbで段組もなしというTheme名は、どういうふうに表すのでしょう? こんな、ちょっと極端な例も並行して考えると、なにか見えてくるかもしれないと思いました。

もうひとつ、バージョンを入れると、破壊的な変更をした場合でも新旧を区別できて良いのではないでしょうか。

任意の名前-版型-組方向-段組-トンボの有無-バージョン番号

Pubでは将来的に、まずテーマを選んで、それからユーザが編集可能なパラメータ(版型や文字サイズなど)をいじれるようになる……と認識しています。そうするとユーザが編集可能なパラメータはテーマ名に含めるべきでないかもしれません。

ユーザが編集可能なパラメータについては #19 (comment) で提案中です。この提案では、版型・トンボの有無は編集可能なパラメータということになっています。

ちょっと思ったのですが、「版型、組方向、段組、トンボの有無を指定しないTheme」というのはあり得るのでしょうか?

使うかどうかはわかりませんが、見出しに連番を振るだけのシンプルなテーマがあってもいいと思います。そうなるともう一般的な名前でいいかもしれませんね……

Pubでは将来的に、まずテーマを選んで、それからユーザが編集可能なパラメータ(版型や文字サイズなど)をいじれるようになる……と認識しています。そうするとユーザが編集可能なパラメータはテーマ名に含めるべきでないかもしれません。

失礼しました、 #19 (comment) は見落としていました。Pubだけでなく、CLI、vivliostyle.js にも意見を聞く必要がありますが、パラメータにしてユーザにカスタマイズできるようにするのは賛成です。(今度の開発者会議で、ぜひ話し合いましょう!)

まとめると、Theme名の要素になるのは、下記の3要素だけということでよいしょうか?

任意の名前-組方向-段組

@yamasy1549

ところで、バージョン番号については、どうお考えですか?
#56 (comment)

まとめると、Theme名の要素になるのは、下記の3要素だけということでよいしょうか?

任意の名前-組方向-段組

そうですね。ただ、同じテーマの中で組方向や段組の数を変えてもいいと思っています。小説用テーマで前書き後書きだけ1段組で本文は2段組みとか、学会発表ポスター用・新聞用テーマで縦組部分と横組部分が混在するとかは実際にありそうです。そうなるとテーマの名前を決めるのに困ってしまい本末転倒感があります。
テーマの名前をわかりやすくするのも手ですが、名前はそのままに、公式WebサイトやGitHubのREADMEでテーマの説明を充実させたり、Create Bookのテーマ選択時(下図)にGitHubへのリンクも表示したりするのはどうでしょうか?
image

ところで、バージョン番号については、どうお考えですか?

テーマはnpm packageとして公開しているので、そちらのバージョン番号と食い違いが出てこないか心配です。

そうですね。ただ、同じテーマの中で組方向や段組の数を変えてもいいと思っています。小説用テーマで前書き後書きだけ1段組で本文は2段組みとか、学会発表ポスター用・新聞用テーマで縦組部分と横組部分が混在するとかは実際にありそうです。そうなるとテーマの名前を決めるのに困ってしまい本末転倒感があります。

同じテーマの中で組方向や段組の数を変えること自体はあり得ると思います。しかし、その場合はそれこそ名前で区別すればよいと思います。

テーマの名前をわかりやすくするのも手ですが、名前はそのままに、公式WebサイトやGitHubのREADMEでテーマの説明を充実させたり、Create Bookのテーマ選択時(下図)にGitHubへのリンクも表示したりするのはどうでしょうか?

ユーザにとって、名前はThemeの内容を推測する大切な手がかりです。GitHubのREADMEで説明したり、リンクするのは良いアイデアと思いますが、それらに完全に代替させてしまうのは、ちょっと極論ではないでしょうか。

ところで、バージョン番号については、どうお考えですか?

テーマはnpm packageとして公開しているので、そちらのバージョン番号と食い違いが出てこないか心配です。

なるほど、たしかにそうですね!

本件の発端は文庫テーマに対する PR #43 でした。これを受けて既存テーマをいじらずに「日本の文庫サイズ」であることを明示するため、出版物における規格をテーマ名に含めたらどうか?という提案が 任意の名前-版型-組方向-用紙サイズ のような命名規則です。小形さんから用紙サイズの話があったので、それを踏まえて命名による分岐を考えてみました。

しかしここまでのコメントにも指摘されているとおり、そのような名称にしても強制力はありません。ユーザーによる CSS 側の上書きは抑止できず仕組みとして中途半端です。

またサイズなどは具体的なパラメーターなので抽象度も下がります。文庫本を例にあげると bunko-a6-vertical は日本のサイズを知るユーザーにとってはそれを指しますが、そうでない場合は「文庫 A6 縦書き」であることしか伝わりません。「日本の文庫本」を明示したいなら bunko-jp といった感じで「日本」であることを表現したほうが好ましいと思います。

よって 任意の名前-版型-組方向-用紙サイズ のように提案しましたが、私としてはこれを取り下げたいです。

bunko = 文庫」という名称自体が日本語であることにより「日本の文庫本」を明示しているともいえるので、改めて #43 を採用して元の意図である小説想定のものは現状の bunko 定義をそのままに novel テーマとして追加する手もありますね。

本 issue は命名をめぐる議論としては非常に有用ですので、テーマについてのドキュメントに方針として要約するかリンクを貼るのもよさそうです。

October 2021 #92 での議論の結果、以下のように決定しました。

  • 既存のThemeはいったんリセットすることも視野に入れ、どうすれば持続的に開発と運用ができるか検討する

    • →開発と運用のためのIssueを@akabekobekoが作成する
    • →テーマのガイドライン (開発編) の担当を@yamasy1549とする
    • →元の 既存の公式テーマの名前を考え直す #56 は、@ogwataがクローズする

上記にもとづき、本Issueはクローズします。