枠囲みと余白について

枠囲みと余白について

- 斎藤 漁火 の投稿
返信数: 3
(環境はupLaTeXです)
ブロックでの枠囲みにおいて、前者の画像のように段組みの幅いっぱいではなく、後者の画像のような“文の長さジャストサイズの”枠を引きたいと考えています。
(画像が縦書きのもので申し訳ありません。以下文章は全て横書きの前提です)
https://twitter.com/isaribi_saitoh/status/975508137758224384
DYmzQa4VoAEMbp8.jpg

framedやmdframedなど、主要なパッケージで枠をつけると、文章がどんなに短くても前者のように横幅いっぱいに枠がつき、右側に余白ができてしまいます。

解決法は、

```
\leftskip = 3zw%
\fbox{\begin{minipage}[t]{19zw}%

鉄骨入\ruby{婦人胴着}{コルセ}一手販売


アランベエル商会

\end{minipage}}

\leftskip = 0zw%

```

とminipage環境に横幅の数値を渡してやることだとは分かっているのですが、いちいち文字数を数えたり、cmを割り出したりするのが現実的でないように感じます。
この場合、例えば\columnwidthを設定すれば現在の段の幅に合うように、“現在のテキストの長さそのもの”を設定できるパラメータはないでしょうか?

TeXの仕様上できないことでしたら申し訳ありません。
斎藤 漁火 への返信

Re: 枠囲みと余白について

- 北見 けん の投稿
>> “文の長さジャストサイズの”枠
とありますが、お示しの例だと
枠内一行目の「鉄骨入婦人胴着一手販売」と
二行目の「アランベエル商会」との位置関係は、
自然に確定するようには見えません。
というのも、
画像だと一行目の終端と二行目の開始位置が
揃っているように見えますが、
参考のソースではそのような指定はなさそうだからです。
配置のポリシーが確定していなければ、
例えば二行目は一行目の終わりと何文字分かかぶったり、
逆に離れたりしてもよさそうに見えるので、
もしそうなら行の長さは明示的に指定する必要がありそうに思います。

そうではなくて、
一行目の終端と二行目の頭をそろえるというポリシーだというのであれば、
分かりますが...

ところで、似たようなものを昔作ってみたことがあるので、参考になるかもしれません。

https://oku.edu.mie-u.ac.jp/~okumura/texfaq/qa/11667.html

## わ、もう15年以上前だ。


北見 けん への返信

Re: 枠囲みと余白について

- 斎藤 漁火 の投稿
あっ、申し訳ありません、ソースは青空文庫のテキストなんですが、字下げを全部全角スペースで行っています(TeX的によろしくないのは承知の上です)。
それをそのままペーストしたところ、フォーラムのWYSIWSGエディタの作用によって「アランベエル商会」の前にあった11個のスペースが全て削除されてしまいました。なのでただの私のミスです。別のテキストを使えばよかったですね。

お教え頂いた環境定義でおおむねうまくいきました。ただ一切の改行が効かないようで、全ての行末に\\をつけてやることでこちらの望む組み方になりました。

それから直前の\leftskip = 3zwも無視されるようです。
できれば字下げと組み合わせて使いたいので、
やはり地道に字数を数えてzwでminipageに幅を与えてやる方が堅実みたいですね。
斎藤 漁火 への返信

Re: 枠囲みと余白について

- 斎藤 漁火 の投稿
varwidthパッケージを使うという手もあるようです。(https://twitter.com/zr_tex8r/status/975624653405171712 , varwidth-doc.pdf
\usepackage{varwidth}で読み込んで、minipageの代わりにvarwidth環境を使ったらテキストの長さ通り、かつ\leftskipも無視されませんでした。


\fbox{\begin{varwidth}{\linewidth}%

鉄骨入\ruby{婦人胴着}{コルセ}一手販売


          アランベエル商会%

\end{varwidth}}%