[XeTeX] Footnote rule line without any footnote text material

Ross Moore ross.moore at mq.edu.au
Fri Jul 13 02:36:40 CEST 2012


Hi Andy, and Peter,

On 13/07/2012, at 1:38 AM, Andy Black wrote:

> On 7/12/2012 2:29 AM, Peter Dyballa wrote:
>> Am 12.07.2012 um 02:02 schrieb Andy Black:
>> 

>> Is it for an almost minimal test case necessary to set up fancyhdr and hyperref?
> 
> As you may have guessed, the TeX code is generated automatically from an XML mark-up language

That explains all the unnecessary extra grouping,
and in-body commands where an environment would be more appropriate
 --- well, it would help to make the coding easier to read,
and debug, by making the structure clearer.
But none of this is actually wrong.


> for linguistic documents (see http://www.xlingpaper.org/). This generation process is attempting to use many of the features that LaTeX and friends provide (to avoid having to re-invent the wheel) while still allowing for larger variations in layout parameters than basic LaTeX has.  What is here is what I found to work.  I'm not recalling the exact reason why I used MainFont but I do know that the
> 
>        \font\MainFont="/font family name/" at /pointsize/pt
> 
> was a way to allow for varying font families and point sizes, including larger or smaller than the three I understand LaTeX provides (10, 11, and 12).
> 
> I would not be shocked to learn that there is a better way to do this, but I found this to work.

First off, dump the XML elements as environments.
Put the constant coding into the \newenvironment  definitions,
read from a separate package or document-class file.

If there are attribute values that need to be passed as parameters,
then that's OK. You can specify the number of parameters, via.

  \newenvironment[<num>]{...
    ... coding at the start of the environment ...
  }{
     ... coding at the end of the environment ...
  }

> 
>> 
>> Why is
>> 
>> 	\protect\footnote
>> 
>> necessary?

Irrelevant. Tracing shows that  \protect = \relax  
at the time this is called.

> 
> There are situations when a footnote is embedded within other constructions (perhaps a table within a table -I'm not recalling the exact context) where the \protect was necessary.  Rather than coding the TeX generator to have to determine the set of contexts where the \protect was required, I opted to just always use it.
> 
>> Could this provoke setting the footnotes line on every page?
> 
> No, it doesn't.  

Correct.

> I'm using the \protect\footnote for every footnote and it is only in very, very rare circumstances that we get the extra footnotes line.
> 
> In addition, I also just removed the \protect in the .tex file I sent and re-ran it using tl 2012.  The extra footnotes line is still there.
> 
> Thanks again so much for exploring this with me.

The problem is definitely related to  {longtable} 
since it calls \output  and fiddles with the \pagegoal .

Your example has a  \begin{longtable} ... \end{longtable}
at the bottom of the page, prior to where the unwanted rule
occurs.

I can make the extra footnote rule go away, by including
some extra space at the bottom of the table; viz.
  
  ... table cell data ...
  \\noalign{\vspace{<some amount>}}
  \end{longtable}

varying the "some amount" one can either get the extra rule,
or suppress it.  More space, beyond some limit, suppresses
the rule, and has no other effect.
What that limit is, may vary according to the actual vertical
size of the tabular material, so this does *not* give an easy
way to solve the problem programatically.


What I suspect is happening is that when the \LT at output  is called
{longtable} is aware that a footnote is around, and splits its
contents, perhaps leaving only glue to go onto the next page.
On that next page, the {longtable} environment finishes, and still
thinks that there is a footnote to be placed, even though there
is no content remaining.
The glue at the top of the page gets discarded, but the apparent
presence of footnote material is retained.

When extra space is added at the end of the {longtable} the 
desirability of where to split the table changes, and perhaps
the whole table now gets placed on the first page. 
There is no carry-over of any knowledge of a footnote, so no
extra line is drawn on the next page.

This is all pretty-much speculation.
Someone more familiar with the inner workings of {longtable}
may be able to make more sense of what is happening.

> 
> --Andy
> 
>> 
>> --
>> Greetings
>> 
>>   Pete
>> 
>> The human brain operates at only 10% of its capacity. The rest is overhead for the operating system.

Needed more than 10% to study this weirdness!


Cheers,

	Ross


------------------------------------------------------------------------
Ross Moore                                       ross.moore at mq.edu.au 
Mathematics Department                           office: E7A-419      
Macquarie University                             tel: +61 (0)2 9850 8955
Sydney, Australia  2109                          fax: +61 (0)2 9850 8114
------------------------------------------------------------------------






More information about the XeTeX mailing list