section の占める高さを通常行の整数倍に
- 同じく整数倍になるよう vspace で調整しようと画策していましたが...
- 挫折中寄り道として動きを知るために
- jarticle の section を固定値で再定義を試みた所
- 数値の根拠はありませんが、たまたまなんとなく要望に添いそうな値が得られました
- ただし最後のページの最終行が合わなくなってしまった :-<
制限事項
- subsection など利用するものは再定義が必要
- 文中に部分的に大きな文字を出したり、raise で持ち上げたりしない
- 通常行の高さ以上の箱関連コマンドを使用しない
- ...
たまたま見た目がいい感じになった時の差分
--- nidangumi.tex.orig 2020-07-14 21:54:49.728448154 +0900 +++ nidangumi.tex 2020-07-14 22:49:03.960611381 +0900 @@ -2,6 +2,32 @@ \usepackage{calc} \usepackage[balance]{nidanfloat} \usepackage[hmargin=1.8cm,vmargin=1.6cm]{geometry} +%%http://www.math.kobe-u.ac.jp/HOME/saji/math/tex.html +%%\makeatletter +%%\renewcommand{\section}{% +%% \@startsection{section}% +%% {1}% +%% {\z@}% +%% {-3.5ex \@plus -1ex \@minus -.2ex}% +%% {2.3ex \@plus.2ex}% +%% {\normalfont\normalsize\bfseries}% +%%}% +%%\makeatother +%% https://qiita.com/izumin5210/items/7c9035d8a77b9dbac1d1 +%% section前後の余白を詰める +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%% jarticle の定義 +%%% \newcommand{\section}{\@startsection{section}{1}{\z@}% +%%% {1.5\Cvs \@plus.5\Cvs \@minus.2\Cvs}% +%%% {.5\Cvs \@plus.3\Cvs}% +%%% {\normalfont\Large\bfseries}} +\makeatletter +\renewcommand{\section}{\@startsection{section}{1}{\z@}% + {1.0\Cvs \@plus.6\Cvs \@minus.2\Cvs}%上の余白を調整 + {0.8\Cvs \@plus.3\Cvs \@minus.1\Cvs}%下の余白を調整 + {\normalfont\Large\bfseries}} +\makeatother + \begin{document} \fontsize{9.36}{16}\selectfont \setlength{\textwidth}{53zw}
懸念していることとかを書き綴ってみました。参考になれば。
■ 444.pdf とJUN.pdf を見て
- 1バイト長の ) があるとちょっとずれますね
- 詳しく見ないとわからないのですが baselineskip とかの調整が必要かな
■図版と本文のアキ
こんな時間だから実験出来ないけど figure を再定義するのかと思います。
プラン1
\begin{figure} から \end{figure} までをいったん savebox で作成し、 その高さを求めて、行の整数倍との差を図の上下に配分して savebox の内容を書き出す。 (図はフローティングなのでページや段を跨がない前提なので)
懸念するのは右下に図が配置された直後にsection が来るとか、 他の自動調整が発生する箇所でどう折り合うか。 オーファン・ウィドウ問題をどうするかとかとか
プラン2 section の再定義のように上下に自動調整パラメータで調整する プラン1と同じ問題もあるし、試行錯誤との闘いかな
その他の懸念
- 二段打ち抜きというか段幅以上の図をどうするか
- figure だけでなくtable や数式はどうするかとかとか
■手動で調整して入力した数値をマクロかできないか
section の再定義では、エイやと章の上の空きの半分を下側の半分とかにしたので、 この程度であれば .5\定義値 てな具合で実現できますが...それほどでもなかったので上下に並べ、桁数を合わせておいたのですが...
なお \定義値は newcounter か newlength あたりで定義して計算できるようにしておく必要があります。
北見さん、追随フォローありがとうございます。
- 回答するにあたって
- コードの検証を実際には行って居ないので間違いがあるかもしれないのでご了承ください
- 回答はい以前実際に経験・実施したことを下に書いて居ます *今回の問題になって関連する経験は「論文タイトルが一行に収まるまでフォントサイズを小さく指定す」というもの
savebox
newcounter
newlength
などなのについて「figure で著される領域を行
バウンダリにする」に即して回答- 今回は
図
とキャプション含めて一まとめ
にして考えることだと思います - 一まとめするってことは、ブロックと言うか
箱
つまりbox
に押し込むことだとおもいます - LaTeX の面白いところはこの
box
を変更しない限りなどでも再利用出来るので PDF などの実サイズを小さく出来ると言う利点があるけど、ここでの話題にそぐわないのでこの点はここまで (xsavebox で検索してみて) - さて LaTeX と言うか TeX と言うかグーテンベルクの以来、組版の基本は
文字
と言う箱
を横につなげて行
を生成し、それを繰り返しページ
を組み立てることだと私は理解しています。 - 各文字には幅や高さ、ベースライン情報などが基本的は設定されていますので、ここでは割愛
- が、図形、おそらく数式とか表などは、いろいろな要素(図であれば図自体とキャプション、図とキャプション間の余白など)があるので場合によってはいろいろ計算しないと、問題が解決できないことがあると思います
- そこで利用できるのではと考えているのが
box
ですが、何もしなければ組版されてしまいます - 行バウンダリに補正するには、仮に組版したらどれくらいの大きさになるか(今回は高さ)を知る必要があります
- そんな時に
savebox
を利用してみようと考えました \savebox{cmd}[width][pos]{text}
なので width を指定して text に図
とキャプションを放り込むと目的の高さが\settoheight
で高さが求められるようになります\newsavebox{\Abox} \savebox{\Abox}{\begin{figure}...\end{figure}\caption{...}} \newlength{\myhh} \settoheight{\myhh}{\usebox{\Abox}} %% see as https://ipfs-sec.stackexchange.cloudflare-ipfs.com/tex/A/question/3166.html
この値
\myhh
を利用すればバウンダリ調整は可能だと考えています- 前回の投稿以来考えていた時は、この図とキャプションの前後に半分ずつ割り付けタラと書いたつもりですが、図がページ替え・段替えに来た時、おそらく上部に配置した調整は無効扱いになり、結果としてズレが生じると思います
- 下段に配置されるケースもあるとは思いすが通常は図はフローティングなので、下部に余分な空白は通常できないと思います
- 今回は
- が、が、これほど苦労しても次から次と同じ問題は発生すると思います
- 論文が主要なターゲットかもしれないけど、箇条書きなども一つの懸念
- subsection ... appendix などは?
- \smallsjip \bigskip とかは \huge とか
- 一般的な図ではなく、せいぜい所謂行より大きな絵文字とか、表・数式 ....
- ...
- なのでそんな苦労するなら 北見 けん さんが低酸する
jlreq.cls
の利用を検討された方が良いと思います
- これ以降は和田のつぶやきなのであまり反論しないでね
- なぜ、多くの人たちは一行の文字数とか、一ページの行数にこだわるんだろう
- 我々は、レーザプリンタなどビット(ピクセル・ドット)単位で調整可能なプリンタが使えるのに三十年くらいまで大いに使われていたラインプリンタの属性に何故囚われるの?
- 今はどうか知らんけど、ワープロ検定を強要されそうになった時、一行何文字・一ページ何行という仕様がアホらしくて受験をやめた
- 活版印刷とかじゃないんだから、言いたいことが紙幅をはみ出すなら、フォントサイズを小さくするなり、行間を狭めればいいんじゃない(見やすさは別にして)
- 確かに、段組みした時全ての横の段で行が並んでいた方が美しいかもしれないけど、そんなことを気にするよりコンテンツを気にすべきだろうな。自分の意見を相手に伝える為に。
- 我々
おじさん
たちは、かつて経験した時の技術情報を下に若い人たちにそれを押し付けてはいないだろうか、これから日々自問自答せねば と大反省