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

PDFMaker: needspaceを利用してキャプションとブロックの泣き別れを防ぐ #1299

Merged
merged 1 commit into from
May 19, 2019

Conversation

kmuto
Copy link
Owner

@kmuto kmuto commented May 7, 2019

munepiさんに相談したところ、needspaceを使うのがよいのではということで実装してみました。

図表以外で独自キャプションを付けているリスト系(reviewlistblock), 式系(reviewequationblock)では現状、キャプションと内容とは結合しておらず、ページの位置によっては泣き別れが発生する。
フロートにするにもなじまないので、needspaceを使ってキャプション+αの空き領域を確保するようにする。

  • 空き確保はとりあえず2行ぶんにしておく。キャプションが2行以上になるとダメだが…
  • review-jlreqのreviewlistblockの値が2や3だとだめで4くらいにしないといけない理由がよくわかってない。

@kmuto
Copy link
Owner Author

kmuto commented May 19, 2019

副作用は少ないと思うので、入れてみようかと。
needspace.styはtexlive-latex-extraで、Dockerや普通にTeXLive経由でインストールした場合は入っているはずです。

@kmuto kmuto merged commit e739a4a into master May 19, 2019
@kmuto kmuto deleted the needspace branch May 19, 2019 03:39
kmuto added a commit that referenced this pull request May 19, 2019
@munepi
Copy link
Contributor

munepi commented May 22, 2019

@kmuto
needspace.sty の \needspace 自体の処理は、見出し前アキ制御で昔からよくやることテクニックですね。

あらかじめ見出しの行数を測っておいて、 \needspace するのもありますけど、実装が異なる環境(ブロック要素)ごとに、場当たり的な対応をするのも、アレですね。
どこかの段階で、各見出し付きブロック要素を tcolorbox を使って作り変えれば、実装手法が 1 つに定まりって、すっきりしそうです。

@kmuto
Copy link
Owner Author

kmuto commented May 22, 2019

tcolorbox確かによさそうなんですが、今のcaptionの吐き出し方と互換性をとるのは厳しそうなので、Re:VIEW実行コード側のほうも両方どちらにもいけるような書き加えをしないとですね。

@munepi
Copy link
Contributor

munepi commented May 22, 2019

Re:VIEW実行コード側のほうも両方どちらにもいけるような書き加えをしないとですね。

  • verbatim
  • alltt や alltt もどき
  • minted (←alltt もどきと思って良い)
  • listings

少なくとも、上記にあげたコードリストを出力するためのLaTeXコードが複数あるので、使い方に応じて、変えることを考慮すると、そうせざるを得ないですね。

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

Successfully merging this pull request may close these issues.

2 participants