De acordo com a documentação do livro de memórias, capítulo 8.4.1, o comando \linenottooshort deve garantir que a última linha de um parágrafo não seja menor que um comprimento opcional (padrão 2em). Portanto, espero que o comando me ajude a reduzir o número de parágrafos com últimas linhas curtas.
Porém, o primeiro MWE (sem \linenottooshort) dá o resultado à esquerda na figura abaixo, enquanto o segundo MWE (com \linenottooshort) dá o resultado à direita, o que é claramente pior em relação às últimas linhas curtas.
Suponho que o texto da última linha do exemplo à direita pode não ser menor que 2em. Mas certamente \linenottooshort não deveria tornar os parágrafos piores do que seriam sem ele? O que está acontecendo aqui?
Esquerda:
\documentclass[11pt]{memoir}
\setlength{\textwidth}{120mm}
\setlength{\parindent}{0mm}
\usepackage{blindtext}
\begin{document}
\blindtext
\end{document}
Certo:
\documentclass[11pt]{memoir}
\setlength{\textwidth}{120mm}
\setlength{\parindent}{0mm}
\usepackage{blindtext}
\linenottooshort
\begin{document}
\blindtext
\end{document}
Responder1
A localização de \linenottooshort
está errada: deveria ir depois de \begin{document}
, pois antes memoir
ainda não atualizou as dimensões da página.
De qualquer forma, o comando certamente dará outros resultados estranhos, pois configura erroneamente \@tempdima
, o que pode mudar de valor sem aviso prévio, sendo um registrador de comprimento zero.
Se você olhar o valor de \@tempdima
after doing \linenottooshort
no preâmbulo, você obtém 325,19989pt; feito no document
ambiente, o valor será 297,63295pt.
Uma definição correta seria
\documentclass[11pt]{memoir}
\setlength{\textwidth}{120mm}
\setlength{\parindent}{0mm}
\usepackage{blindtext}
\makeatletter
\renewcommand*{\linenottooshort}[1][4em]{%
\@tempdima=\hsize
\advance\@tempdima -#1\relax
%\leftskip\z@skip % ???
%\rightskip\leftskip % ???
\begingroup\edef\x{\endgroup
\parfillskip=\the\@tempdima \@minus \the\@tempdima\relax
}\x
}
\makeatother
\AtBeginDocument{\linenottooshort}
\begin{document}
\blindtext
\end{document}
Cuidado, pois isso pode gerar resultados estranhos em minipage
ou \parbox
em listas. Não tenho certeza sobre sua utilidade.