このような投稿をたくさん見てきました\parskip は予想以上に伸びる内部でグルーを使っている。すべてのケースで通常のコマンドを置き換えるために、グルーを使った\vspace
新しいコマンドを定義するのは良い考えだろうか。\vspace
\newcommand{\vspacewithglue}[3]{\vspace{#1\baselineskip plus #2\baselineskip minus #3\baselineskip }}
私は、単純なケースではこのようなコマンドが役に立つと自分に言い聞かせようとしましたが、うまくいきませんでした。例えば、私は
some test line ffppp \vspacewithglue{2}{0}{0}\\
some test line ffppp \vspacewithglue{2}{-1}{1}\\
some test line ffppp \vspacewithglue{2}{1}{1}\\
違いはありません。そのため、私は少し混乱しています。おそらく、実際にそのようなコマンドが必要な「特別な」ケース (上記の投稿など) もあるでしょうが、一般的には必要ありません。本当に必要な\\[...ex]
場合は、よく知られているコマンドを使用して、TeX に接着剤を配置させる方がよいかもしれません。
この質問は少し漠然としていて、すでに回答されているかもしれないことは承知しています。お気軽に編集したり、コメントで何か提案してください。
答え1
質問にあるように、段落の行間に伸縮可能な接着線を配置することは、ほとんどの場合、良い考えではありません。段落は、一貫したブロックとして設定する必要があります。段落、リストなどの表示単位間の接着線を伸縮可能にするかどうかは、ドキュメントのデザインによって異なります。特に、2 列モードでは、段落間の伸縮可能な接着線は、2 つの列の段落スペースが異なり、テキストのベースラインがまったく揃わないため、問題になる可能性があります。
また、質問のように\vspace
段落内で使用する場合、効果は明確に定義されていますが、少し奇妙です。スペースはコマンドの時点では追加されず\vspace
、段落が行に分割された後、が追加された行の後に追加されますvspace
。
some test line ffppp \vspace{10pt}\\
と同じです
some test \vspace{10pt}line ffppp\\
記事ドキュメント クラスで一般的であるように、\raggedbottom
が有効な 場合fil
、無限に伸縮可能なページの末尾にグルーが追加されますが、追加された有限伸縮グルーは伸縮せず、自然な長さのコンポーネントのみが使用されます。
一部のドキュメント クラス (デフォルトのものを含む) では、段落間のわずかな伸縮がページ区切りに役立つことがあります (latex ではデフォルト\parskip
が に設定されています0pt plus 1pt
)。ただし、通常、これはドキュメント全体の設定であり、その都度手動で調整するものではありません。
特別な状況で改行時にストレッチが必要な場合は、新しいコマンドは必要ありません。\\[5pt plus 5pt]
答え2
コマンドは期待どおりに動作しますが、David がすでに書いたように、段落内でこのような伸縮可能なスペースを使用するのは非常に悪い考えです。
\documentclass[12pt]{book}
\usepackage{lipsum}
\newcommand{\vspacewithglue}[3]{\vspace{#1\baselineskip plus #2\baselineskip minus #3\baselineskip }}
\textheight=10cm
\begin{document}
xxxxx
some test line ffppp \\
some test line ffppp \vspacewithglue{0}{1}{1}\\
some test line ffppp \\
xxxxx
\pagebreak %to force the page to stretch
xxxx
\end{document}