linha final completa + nota de página = linha em branco falsa

linha final completa + nota de página = linha em branco falsa

De vez em quando, em um livro grande, recebo uma falsa linha vazia entre os parágrafos. O fator comum parece ser que um parágrafo preenche exatamente sua linha final e é seguido por algumas instruções relacionadas às notas finais/notas de rodapé.

Meu MWE está um pouco gordo porque é um comportamento difícil de reproduzir; mudar qualquer coisa que altere o layout exato parece fazer o problema desaparecer. Aqui está meu código de látex (ele é gerado por XSLT e não se destina a ser lido por humanos e depois foi cortado um pouco mais à mão para reduzir o tamanho, desculpe):

\documentclass[11pt]{memoir}
%%
\setstocksize{11in}{8.5in}%
\settrimmedsize{9.25in}{6.125in}{*}%
    \setlength{\trimtop}{\stockheight}            %
    \addtolength{\trimtop}{-\paperheight}         %
    \setlength{\trimedge}{\stockwidth}            %
    \addtolength{\trimedge}{-\paperwidth}         %
\settrims{0.875in}{1.1875in}                      %
\settypeblocksize{8.0in}{4.8in}{*}                %
\setbinding{0in}                                  %
\setlrmargins{0.8in}{*}{*}                        %
\setulmargins{0.75in}{*}{*}                       %
\setheadfoot{\onelineskip}{\footskip}             %
\setheaderspaces{*}{.3in}{*}                      %
\checkandfixthelayout                             %
\showtrimson%
%%
\usepackage[utf8]{inputenc}
\usepackage[american]{babel}
\usepackage[T1]{fontenc}
\usepackage{textcomp}
\usepackage{mathptmx}
\usepackage{helvet}
\usepackage{courier}
\usepackage[style=alphabetic,backend=biber,backref=true]{biblatex}
\usepackage{color}
\usepackage{graphicx}
\usepackage{hyphenat}
\usepackage[strict=true]{csquotes}
\usepackage{url}
\usepackage{ellipsis}
\usepackage{refcount}
\usepackage[debug=true,colorlinks=true,pdftex,draft=false,bookmarks,bookmarksopen,pdfpagelabels]{hyperref}
\usepackage[toc]{glossaries}
\makeindex

\makepagenote

\begin{document}%
\frontmatter%
\mainmatter
     \chapter{Ricercar}
 \label{id265899}\setlength{\epigraphwidth}{.6\linewidth}\setlength{\epigraphrule}{0pt}\epigraph{
It is unbelievable how much you don't know{\itshape } about the game you've
been playing all your life. }{\textit{---Mickey Mantle}}\setcounter{pagenote}{0}\pagenote[id265899]{{\itshape 
It is unbelievable how much you don't know}: \cite[p.\ 42]{b:QualityOfCourage}}%%
  %
\par
A man is sitting at a desk and typing.
He is writing in a language that no one on earth speaks.
Without long hours of study,
even someone who understood the language would be hard
pressed to read his work and understand his precise intent.
Sometimes, he stops and thinks, or draws pictures on
a piece of paper or whiteboard, or stops to sleep, eat, or
meet with others, but he always returns to typing.
Hours turn into days, days into weeks,
weeks into months, and perhaps even months into
years before the man stands up and declares he is \enquote{done.}%
\par
Done with what?
What has he created?%
\par
What he has created is a computer program,
but that explains little about what it is or even where
it exists.
At the physical level,
a computer program is usually a microscopic pattern of either electricity or
magnetism.
It may flow as whirling fields of electromagnetism from one form into another,
and be endlessly duplicated and replicated across many different
machines.
It often exists in a great many places---indeed, it only
really ceases to exist if all those copies are tracked down and obliterated
(and modern programmers generally keep an astounding number of copies of each program).%
\par
What, then, is computer programming, really?
Computer programming can be described in a number of ways,
but I will give you a factually accurate description of the
profession that you have not heard before: \begin{quote}\textbf{Computer programming is the act of designing complex patterns
of energy that affect the world.}\end{quote} I chose the two clauses in that definition carefully.
Although there are other professions that produce patterns
of energy (such as broadcasting electromagnetic FM waves),
they are not acts of designed energy like computer programming,
where every ultra-microscopic electric, magnetic, or chemical state is a result of human decision. \label{id265852}The composer Edgard Var\`{e}se declared that \label{id265846}\enquote{Music is organized sound.} and I am making an analogous declaration: software is organized energy. \label{id265842}\setcounter{pagenote}{0}\pagenote[id265852]{{\itshape The composer Edgard Var\`{e}se declared that \enquote{Music is organized sound.}}: \protect \cite[]{j:OrganizedSound}.
    And though an infinite amount of music can be composed
    with a twelve-note scale,
    software has reduced this to the logical extreme,
    generating its infinite variations from only two notes.
    Var\`{e}se also said that \enquote{Our musical alphabet is poor and illogical} \protect \cite[]{b:ClassicEssaysMusic},
    which is perhaps also analogous to the situation with software,
    or maybe the mere longing of all creators for better tools.}\ignorespaces %%
 And though much software operates nearly invisibly,
software affects the world in increasingly direct ways;%
\footnote{\label{FN:id265788}\label{FN:id265811}Turing Award winner Butler Lampson asserts the three historical phases of computers to date are:
    modeling the world, connecting people, and engaging with the physical world.
    The progression of these phases represents increasingly direct effects on the world.}
even in the early days when software might produce merely a
number that a human would read,
some of those numbers helped create the first atomic bomb,
so the size of software's effect on the world cannot be inferred
from how directly the software manipulates the world.
% removing the following line eliminates the unwanted empty line between paragraphs.
\setcounterref{pagenote}{FN:id265788}\pagenote[FN:id265811]{{\itshape Turing Award winner Butler Lampson asserts the three historical phases of computers}: \cite[]{c:WhatComputersDo}}
\par
\label{id265810}Born quite accidentally from the most obscure and useless mathematics, computers have turned that uselessness on its head; 
 \label{id265743}if mathematics is an art, \label{id265733}\setcounter{pagenote}{0}\pagenote[id265743]{{\itshape if mathematics is an art}: A position argued most passionately by
    Paul Lockhart as a primary factor dooming
    the teaching of mathematics in the United States. \protect \cite[]{w:MathematiciansLament}}\ignorespaces %%
 \label{id265730}then computer programming is the surprising
translation of art into action.%
\footnote{\label{FN:id265710}Robert Tarjan (another Turing Award winner) chose
computer science over mathematics as a graduate student
because he saw it as \label{FN:id265706}\enquote{a way to do mathematics and see it actually perform in practice.}} \label{id265726}\setcounter{pagenote}{0}\pagenote[id265730]{{\itshape then computer programming is the surprising
translation of art into action.}: made more surprising by its suddenness. \enquote{\textup{[\kern-.05pt...\kern-.2pt]}\xspace{}
        the modern notion of computation emerged remarkably suddenly,
        and in a most complete form,
        in a single paper published by Alan Turing in 1936.} \protect \cite[p.\ 3]{b:ProbablyApproximatelyCorrect}}\ignorespaces %%
  Mathematics has been called \label{id265702}\enquote{the science of patterns,}\setcounter{pagenote}{0}\pagenote[id265702]{{\itshape \enquote{the science of patterns,}}: \cite[p.\ 7]{b:MathGene}} and that intersects with my own definition of
computer programming in the word \label{id265696}\enquote{patterns.} This is correct, since patterns are the common ground shared by
mathematics (on the more descriptive side) and programming \label{id265692}(on the decidedly prescriptive side). \label{id265661}\setcounter{pagenote}{0}\pagenote[id265692]{{\itshape (on the decidedly prescriptive side)}: I use here the definition of \enquote{prescribe} that is
    synonymous with \enquote{stipulate} or \enquote{dictate.}}\ignorespaces %%
\setcounterref{pagenote}{FN:id265710}\pagenote[FN:id265706]{{\itshape\enquote{a way to do mathematics and see it actually perform in practice.}}: \cite[]{v:AlgorithmicViewUniverse}}%
      \end{document}

O ponto exato do comportamento indesejado são estas linhas:

from how directly the software manipulates the world.
% removing the following line eliminates the unwanted empty line between paragraphs.
\setcounterref{pagenote}{FN:id265788}\pagenote[FN:id265811]{{\itshape Turing Award winner Butler Lampson asserts the three historical phases of computers}: \cite[]{c:WhatComputersDo}}
\par

E a linha vazia indesejada acaba ficando assim (verdade mesmo se eu incluir a bibliografia real e executar vários passos para "realmente" construir o livro completo): insira a descrição da imagem aqui Estou executando o Tex Live 2017 e digitei "pdflatex book.tex" para obter minha saída.

This is pdfTeX, Version 3.14159265-2.6-1.40.18 (TeX Live 2017/W32TeX) (preloaded format=pdflatex 2017.7.12)

Posso mexer em muitas pequenas coisas para resolver o problema, mas na verdade não quero examinar todo o documento constantemente para ver se o problema apareceu em algum lugar novo. E, como meu LaTeX é gerado por máquina, eu realmente gostaria de realmente entender o problema e simplesmente não gerar código que o produza, se possível. No entanto, depois de muito mexer, estou perplexo e não consigo descobrir o que está causando o problema.

Responder1

Pegar:

from how directly the software manipulates the world.
\setcounterref{pagenote}{FN:id265788}\pagenote[FN:id265811]{{\itshape Turing 
Award winner Butler Lampson asserts the three historical phases of computers}: 
\cite[]{c:WhatComputersDo}}
\par

A cada nova linha, o LaTeX vê um espaço. Especialmente há um espaço entre a primeira e a segunda linha. As instruções depois disso precisam ser gravadas no arquivo aux, para que inserem um nó "whatsit". Portanto o espaço no final da primeira linha é "descartável" e seria descartado no final do parágrafo, mas é seguido pelo não descartável "whatsit", portanto não pode ser descartado. Isso resulta em um espaço no final do parágrafo, que o TeX às vezes usa como ponto de interrupção. (Para mais informações, consulte o TeXbook após o exercício 14.12)

Isso pode ser evitado não adicionando este espaço, portanto, sempre que o texto for seguido por linhas com \pagenote, adicione um %no final da linha.

No exemplo dado isso seria

from how directly the software manipulates the world.%
\setcounterref{pagenote}{FN:id265788}\pagenote[FN:id265811]{{\itshape Turing 
Award winner Butler Lampson asserts the three historical phases of computers}: 
\cite[]{c:WhatComputersDo}}
\par

informação relacionada