Я часто сталкиваюсь с необходимостью втиснуть больше контента в уже довольно переполненный документ. Учитывая, что LaTeX автоматически растягивает пробелы, чтобы красиво и оптимально заполнить страницы, мне иногда трудно определить, где могут вписаться дополнительные строки.
Есть ли какие-нибудь советы о том, как найти растянутые пространства, которые можно использовать, возможно, пакет, который окрашивает разницу между минимально необходимым пространством и растянутым пространством, добавляемым автоматически? Другие советы также приветствуются.
решение1
Мой комментарий в прошлом месяце не давал мне покоя, пока я не вспомнил ответ, который я дал вЗакругленная рамка вокруг текста-заполнителя, поддерживающая перенос строки(в котором я пытался устранить этот эффект зазоров), и решил, что стоит попробовать адаптировать его, чтобы улучшить. Я рисую естественные пробелы чередующихся букв в чередующихся цветах (здесь cyan!80
и cyan!60
). Я рисую пробелы их естественной ширины в cyan
, а точки в cyan!95
. Я обнаружил, что это становится слишком запутанным, если я выбираю совершенно разные цвета.
Горизонтально растянутые строки можно быстро заметить с помощью белых промежутков между словами. Я выбрал \vgap
между строками 2,5 пт, так как это значение устанавливает правила голубого цвета на высоте, схожей с высотой самих букв (если зазор слишком мал, сами правила голубого цвета влияют на межстрочный интервал). Тем не менее, можно заметить различия в вертикальных промежутках.
Я должен отметить, что этот подход будет препятствовать переносам, и поэтому он не может быть прямым сравнением с немаркированным текстом, где задействованы переносы строк. По той же причине, хотя я применил его к полному тексту документа в этом 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», где керн справа был отменен межсловным пробелом.
несжатый против сжатого
. . . . . . . . . .