すでにかなり詰め込まれた文書に、さらにコンテンツを入れなければならないという状況にしばしば直面します。LaTeX はスペースを自動的に拡張してページを美しく最適に埋めるので、追加の行が収まる場所を見つけるのが難しい場合があります。
悪用される可能性のあるストレッチ スペースを見つけるためのヒントはありますか? 必要な最小スペースと自動的に追加されたストレッチ スペースの差を色分けするパッケージなどでしょうか? その他のヒントも歓迎します。
答え1
先月のコメントが頭から離れず、私が答えたことを思い出しました。改行をサポートするプレースホルダーテキストの周囲の丸いボックス(このギャップ効果を排除しようとしていました)、それを強化するために適応してみる価値があると判断しました。私がやっているのは、交互の文字の自然なスペースを交互の色で塗ることです (こことcyan!80
) 。 ではスペースを自然な幅で塗り、 ではピリオドでcyan!60
塗ります。大幅に異なる色を選択すると混乱しすぎることがわかりました。cyan
cyan!95
水平方向に伸びた線は、単語間の白い隙間ですぐに確認できます。私は\vgap
行間に 2.5pt を選択しました。この値により、シアン色の罫線が文字自体と同じ高さに設定されるからです (隙間が小さすぎると、シアン色の罫線自体が行間隔に影響します)。それでも、垂直方向の隙間の違いは確認できます。
このアプローチはハイフネーションを妨げるため、改行が含まれるマークされていないテキストと直接比較できない可能性があることを指摘しておきます。同様に、この MWE ではこれをドキュメントの完全なテキストに適用しましたが、部分的なテキスト (マクロ形式であり、テキストをグループに含めます{}
) を選択的に含め、テキスト全体のごく一部だけを強調表示することで必要なデータを取得することもできます。
\documentclass{article}
\usepackage{censor}
\usepackage{xcolor}
\newlength\vgap
\vgap=2.5pt% GAP BETWEEN ADJACENT LINES (THIS VALUE CONFORMS TO LETTER SIZES)
\textheight=3.03in
\makeatletter
\def\mystrut{\rule%
[\dimexpr-\dp\strutbox+.5\vgap]{0pt}{\dimexpr\ht\strutbox+\dp\strutbox-\vgap}}
% SET ALL LAPS TO 0pt...
\periodrlap=0pt\relax
\afterperiodlap=0pt\relax
\lletterlap=0pt\relax
\rletterlap=0pt\relax
% EXCEPT THE SPACE LAP, WHICH IS SET TO NATURAL SPACE WIDTH
\setbox0=\hbox{ }
\afterspacelap=\wd0\relax% THE NATURAL SPACE WIDTH
\renewcommand\censorrule[1]{%
\protect\colorbox{cyan}{\mystrut\rule[\censorruledepth]{#1}{0pt}}}
\newcounter{colindex}
\edef\cencolora{cyan!80}
\edef\cencolorb{cyan!60}
\def\chcolor{\stepcounter{colindex}\ifnum\thecolindex=2%
\def\cencolor{\cencolorb}\setcounter{colindex}{0}\else%
\def\cencolor{\cencolora}\fi}
\chcolor
\renewcommand\@cenword[1]{\colorbox{\cencolor}{\mystrut#1}\chcolor}
\def\censordot{\colorbox{cyan!95}{\mystrut.}}
\let\marktext\xblackout
\makeatother
\fboxsep=0pt
\parindent 0in
\flushbottom
\begin{document}
\marktext{Note however, that auto-hypenation will NOT work with this approach.
Can this procedure go across paragraphs boundaries?
Why yes it can.
Gaps can arise if glue is stretched too far.
NEXT LINE STARTS A PARBOX:}
\parbox{.8\textwidth}{\marktext{%
This tests marking a multiline block of text. This tests marking a multiline block of text.
This tests marking a multiline block of text. This tests marking a multiline block of text.
This tests marking a multiline block of text.}}
\marktext{%
NOT IN A PARBOX:
This tests marking a multiline block of text. This tests marking a multiline block of text.
This tests marking a multiline block of text. This tests marking a multiline block of text.
This tests marking a multiline block of text.}
\end{document}
全体的なビューでは、パーボックスの上下の垂直ギャップが大幅に縮小されていることがわかります。
このズームでは、異なる行の水平方向の伸縮の違いが見られます。最後の行の「f」は圧縮されておらず、自然に境界ボックスから突き出ています。
よく見ると、圧縮されたテキストには目に見える窮屈さも見られます。たとえば、この「e」という文字の比較では、右側のカーニングが単語間のスペースによって廃止されています。
非圧縮と圧縮
。 。 。。 。 。 。 。 。 。