abenori / jlreq

Other
125 stars 18 forks source link

caption内での改行の小技が効かない #81

Closed kwguchi closed 3 years ago

kwguchi commented 3 years ago

caption内で改行したいのですが,「\\」の替わりの「\linebreak」が効きません。 せっかくですので\usepackage{caption}を入れずに済めば良いのですが。

abenori commented 3 years ago

とりあえず 01f24e9 でjsarticleと同様にしてみました.

articleなどの実装では,\captionの引数が二度評価され(ることがあり)ます.従って引数内に副作用を引き起こす命令が含まれていると意図しない挙動になる恐れがあります.というのが気持ち悪くての実装で,結果として改行できなくなっていました.両者を両立させるのは難しそうなのでどちらをとるかという話なわけですが.というわけで戻すかもしれません.

kwguchi commented 3 years ago

ありがとうございます。01f24e9で「\linebreak」による改行を確認しました。 やはり背景に色々と面倒なことがあるのですね。お話からすると,せっかく対処してはいただきましたが変なことを起こす危険を引き込むよりは安全な方が良いと思います。

kwguchi commented 3 years ago

「\linebreak」だけでなく「\\」・「\newline」も改行として(挙動は違いますが)効くようになりますね。 フォントサイズを変更しても行送りは変わらないのが気になりましたが,マクロとかを見てもさっぱりなレベルですので助力できないのが心苦しいです。

abenori commented 3 years ago

少しいじってみました. 660e165 jsarticleに近づけたつもりです.

フォントサイズを変更しても行送りは変わらないのが気になりましたが

これはどういう話でしょうか?

kwguchi commented 3 years ago

すみません。 「フォントサイズを変更しても行送りは変わらないのが気になりましたが」 は気付いたことの表現を間違っていました。 編集の都合でキャプションの文字にscriptsizeを使っていたので気付き, smallと比較して上記のように書いたのですが, 行送り?行間?が,フォントサイズがsmallの時はjsarticle,ltjsarticleと同じなのですが,scriptsize・normal・largeなどで違ってきています。

abenori commented 3 years ago

行送りがjlreqとjsarticleで違うということでしたら,それはクラスファイルが違うので違うということになります.ただjlreqにはデフォルトの行送りをオプションで指定できますので,適切に設定すれば同様の出力も得られると思います.また,そのほかのサイズについてはおのおのの命令(\largeなど)を適切に再定義すればよいかと思います.

kwguchi commented 3 years ago

そうですね。全く同じにする必要もありませんし細かいことは別に指定すれば良いわけですから。 私の用途には現時点で充分すぎるほど使い勝手が良くなりました。ありがとうございます。