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

ブロックの入れ子がほしい #108

Closed
kmuto opened this issue Mar 28, 2012 · 7 comments
Closed

ブロックの入れ子がほしい #108

kmuto opened this issue Mar 28, 2012 · 7 comments

Comments

@kmuto
Copy link
Owner

kmuto commented Mar 28, 2012

(TODOとして)

noteなどの中にemlistを入れたり、箇条書を記述できるようにしたい。

パーサの大規模な見直しが必要。emlist,table,imageのような要素では入れ子解析はしないようにする必要もある。

@takahashim
Copy link
Collaborator

これですが、InDesignではどの程度自由に入れ子が表現できるものなんでしょうか?

@kmuto
Copy link
Owner Author

kmuto commented Mar 28, 2012

InDesignの標準機能の範囲だと「1つのXML要素名に割り当てられるのは 1スタイル」なので入れ子は実質意味をなさないのですが、この機能とは別にXMLファイル内で事前にXML要素に直接スタイルを明示的に指示することもできます。
うちのDTPの場合にはこの挙動を使って、前処理のスクリプトで1つのXML要素に対して構造によって割り当てるスタイルを変化させています。

@takahashim
Copy link
Collaborator

なるほど、それではある程度はできる、という感じなのですかね。
LaTeXは処理系というかふつうにsty使う分にはいろいろ制限がありそうで厳しそうではあります(がnoteにemlistや箇条書き入れるくらいならできそうでした)

@takahashim
Copy link
Collaborator

@kmuto 苦節3年(!)、ついにできるようになりそうです。

整理した結果、ブロックを2通りに分ける形を考えています。

  • //quoteなどのように、ブロックの入れ子を許すもの。これはブロックの内部もブロックの集合として解釈するため、ブロックでも箇条書き等でもないテキストの場合はパラグラフとして解釈されます(改行が連結されたりします)。
  • //emlistなどのように、ブロックの入れ子を許さないもの。これはブロックの内部はテキスト行の集合として解釈されます。改行も保存されます。

前者はこれまで通りdefblockで定義しますが、後者はdefcodeblockという新たに用意したメソッドで定義します。どちらで定義されたかによって、パーサの解釈とビルダに渡される引数の作り方が異なります。

@kmuto
Copy link
Owner Author

kmuto commented Feb 13, 2015

👍 👍

おつかれさまでした。ブロック2通りはたしかに妥当ですね。

@kmuto
Copy link
Owner Author

kmuto commented Mar 1, 2020

PRにないのですが、このdfcodeblockのって結局PEGでやろうとしていたものなんでしたっけ

@kmuto
Copy link
Owner Author

kmuto commented Sep 28, 2020

#1558 で対応されました

@kmuto kmuto closed this as completed Sep 28, 2020
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

2 participants