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

rawタグ内で\nを改行変換するようにしているがTeXのタグ(\nobreakとか)を入れたいときに困る #730

Closed
kmuto opened this issue Jan 17, 2017 · 21 comments

Comments

@kmuto
Copy link
Owner

kmuto commented Jan 17, 2017

  • 案1:\n を特別扱いするのをやめる。じゃぁかわりに改行入れたいときにはどうしたらよいか、を考える必要(特にIDGXML, TOPでは必要になる場面あり)。
  • 案2:latexビルダだったときには\nを特別扱いしない。latexでrawを使って改行文字をどうしても入れたい場面はなさそう。ただビルダ間で若干挙動が違うのが気持ち悪い?
@yuw
Copy link

yuw commented Jan 18, 2017

改行抑制をたとえばnbといった感じのタグで入れることができればよいかもと思いはじめました.

タイポグラフィカルにですが,例えば次のような場面で改行抑制したくなります.
(実際そういった要求があったりもします)

  • 省略のピリオドの直後(ex.: p. 123)
  • 図版等の参照の“図”の直後(ex.: 図1.1)

図版等は@<img>{...}等がLaTeXのマクロに渡りますので,その定義中に\nobreakを必要なら書けばよいだけですが,省略のピリオド直後といった箇所では直接何かを入れないといけない現状であると認識しています.

@takahashim
Copy link
Collaborator

(↑上のコメント、@<img>{...}のところが見えなくなっていたのを修正しました)

@takahashim
Copy link
Collaborator

仕様的には\をエスケープ文字にする(\文字を使うには\\と入力する必要がある)インラインを追加するのが筋がよいかも…という気持ちです

@kmuto
Copy link
Owner Author

kmuto commented Jan 18, 2017

TeXでいっぱい入れることがあるので、エスケープだと\だらけになって編集DTP作業がきついんですよね…パーザ的には現状のは困りそうなのは理解しているんですが。

@takahashim
Copy link
Collaborator

TeXの場合、

  • そもそも}がTeXの記法とRe:VIEWインラインの終端(@<foo>{}の最後の文字)とで衝突してる
  • TeXの}を使うために\}\でエスケープすることにする(この時点で美しくないのはさておき)と、TeXでも\を使う必要があるので衝突する

という辺りがどうにもならないのが厳しいところです

@kmuto
Copy link
Owner Author

kmuto commented Jan 18, 2017

  • \をエスケープ文字にするを基本
  • (主にLaTeX向けに)ほぼ全部(@rawの場合は\}、//rawの場合は\]はやむをえないとして)リテラルに見るように切り替えるYAMLパラメータ

だと負債になっちゃいそうですかね…

@kmuto
Copy link
Owner Author

kmuto commented Jan 18, 2017

改行抑制はTeX以外では使えないのでRe:VIEWに命令を追加するメリットが薄いのと、\nから始まるTeXコマンドはほかにありそう(カスタムだけど\nobashiと使おうとしてダメなことに気付いて\hirogeとしたものがある)なのでした。

@takahashim
Copy link
Collaborator

設定でparserを切り替えるのはあんまりおすすめできなさそうです…。
それよりは、使いたい場面は少なくてもセマンティクスが明確な別インライン記法を作ったほうが、使う人にも実装する人にもすっきりするんではないかなーと思っています。

@kmuto
Copy link
Owner Author

kmuto commented Jan 19, 2017

なるほど。新たに作るとするとどういう名前がよいのだろう。短く、rawと混在しないもの。

@kdmsnr
Copy link
Collaborator

kdmsnr commented Jan 19, 2017

"\\n$" を置換します?

@yuw
Copy link

yuw commented Jan 19, 2017

"\\n$" を置換します?

これは$が直後に明記されたとき改行にするって感じですか?

@yuw
Copy link

yuw commented Jan 19, 2017

新たに作る場合,escape …だとRubyに寄りすぎでしょうか.

@kdmsnr
Copy link
Collaborator

kdmsnr commented Jan 19, 2017

あ、すみません。行末を意味してました。→ /\\n$/

@kdmsnr
Copy link
Collaborator

kdmsnr commented Jan 19, 2017

おっと、inline_raw もあるのか。。。ダメですね。

@takahashim
Copy link
Collaborator

新たに作るとするとどういう名前がよいのだろう。短く、rawと混在しないもの。

  • @<nraw>{...}
  • @<rawstr>{...}
  • @<str>{...}
  • @<data>{...}

とかでしょうか。

@kdmsnr
Copy link
Collaborator

kdmsnr commented Jan 21, 2017

tagとか?

@kmuto
Copy link
Owner Author

kmuto commented Jan 21, 2017

ちょっと長いけど高橋さんのrawstr、あるいはdataがよさそうに思いました。ブロック、インラインともに同じ名前で。

verbatimというのも候補としていただいたのですが、TeXのそれの挙動になるような誤読をされるのは避けたい。

@takahashim
Copy link
Collaborator

ブロックについては、

//data[有効になるビルダーの指定・省略時は全ビルダー]{
(…ここに書く…)
//}

みたいに書けるようにしたいですね…(本当は//rawでもこれをできるようにしたい)。

@takahashim
Copy link
Collaborator

名前ですが、//embed{ ... //}がいい気がしてきました。

@kmuto
Copy link
Owner Author

kmuto commented Feb 12, 2017

あ、いいねそれ。

@kmuto
Copy link
Owner Author

kmuto commented Feb 24, 2017

embedが入ったのでclose

@kmuto kmuto closed this as completed Feb 24, 2017
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

4 participants