On 08.12.2011 05:59, Daniel Greenhoe wrote:
2011/12/8 Zdenek Wagner<[email protected]>:
No, I do not agree. I can only agree that the LaTeX user
documentatioin is incomplete. ...
Without knowledge of the
modes you cannot understand why the table behaves differently in the
footnote. It is documented in the TeXbook.
Then if that is the current state of the platform, as a LaTeX/XeLaTeX
user it is not reasonable for me to make the demands on the system
such as I originally sought (e.g. keeping text completely within the
text area); that is, absolute precision is beyond the reach of one
who only codes at the LaTeX/XeLaTeX level, and is only within the
reach of one who codes at the TeX level.
Yes. It's not (Xe)LaTeX's purpose. It's (Xe)TeX's purpose.
But when using (Xe)LaTeX, I don't want to care about different modes.
(Xe)LaTeX should “understand” the structure, I give to text, the
different formatting options, I give to the structures, and should tell
TeX, how to accomplish these tasks.
[Because (Xe)LaTeX is only software working on hardware, which can only
tell wheter a specific electric quantum (voltage, current, charge) is 0
or not (1), it can only work with structures and formatting options that
it's programmers has translated into 0 and 1.]
Which means, only the structures, formatting options and their
interactions, which are precomposed by LaTeX or composed by the author
(via \newcommand, \newenvironment, etc.) are available.
Unfortunately, the interaction "tabulars in footnotes" was not
specifically designed, so it's interaction is definded by more general
approaches, which happen to fail.
This is not a complaint, it is only an observation. I actually have a
copy of the TeX Book, I just need to open it. ^___^
Thank you for the clarification,
Dan
2011/12/8 Zdenek Wagner<[email protected]>:
2011/12/8 Daniel Greenhoe<[email protected]>:
Hello Heiko,
...
In my mind (and maybe in my mind only) if I code something (e.g. a
tabular in a footnote) in accordance with documented syntax and then
the result of that code violates a parameter (e.g. a lower text area
boundary) defined in the same documentation, then that by definition
is a bug. Secondly, if a 32 line section of code is required to
prevent my correctly coded (as defined by documented syntax) code from
violating such a parameter, then such a violation is by definition a
bug and the 32 lines of additional code is by definition a "patch".
No, I do not agree. I can only agree that the LaTeX user
documentatioin is incomplete. Consider the expression "my text". You
would certainly be disapointed if the word "text" were verticaly
aligned so that its baseline matched with the bottom of "y". That's
why boxes have height and depth and are aligned to baselines, not to
bottom. The truth is that the documentation of tabular is incomplete.
It does not say that it has zero width and the whole table extends
below baseline. Thus in your original sample file you aske LaTeX to
put the table below the baseline and LaTeX did exactly what you asked
for. Incomplete documentation is unfortunately a feature of LaTeX.
Normal users do not know that \vspace is expanded to \vskip in the
vertical mode but to \vadjust{...} in the horizontal mode and the
starred variant is esentially \vglue. I am afraid that the LaTeX
documentation does not even mention the 5 modes so that the vertical
and horizontal modes may be strange for you. Without knowledge of the
modes you cannot understand why the table behaves differently in the
footnote. It is documented in the TeXbook.
Having said that, let me make these additional comments:
1. I am embarrassed by my own lack of knowledge with respect to TeX coding.
2. I realize that I take a lot from this email list but contribute
nothing or next to nothing
3. I very much appreciate all the help that I have and do receive
from this mailing list
4. I know that beggars can't be choosers.
5. TeX and it's derivatives has to be one of the greatest
developments of all time --- like unto the Gutenberg Press --- many
many thanks to everyone who has and continues to work so hard to
develop it.
Dan
On Wed, Dec 7, 2011 at 7:51 AM, Heiko Oberdiek
<[email protected]> wrote:
On Wed, Dec 07, 2011 at 06:30:39AM +0800, Daniel Greenhoe wrote:
On Wed, Dec 7, 2011 at 5:46 AM, Heiko Oberdiek
<[email protected]> wrote:
You have to compile twice at least.
I compiled at least 8 times using "xelatex Heiko.tex". I still get the
same error: the text extends below the text area (see attachment). You
don't get this result on your system?
And I had written:
| The following example addresses calculates the shift to align
| the baseline of the footnote line with the first line of
| the tabular. No time for looking at the problem with the overfull \vbox.
I have seen two problems with your example and one of them solved,
the other remained unsolved. No more, no less.
Taking more time, I see now, that the overfull \vbox is caused
by something different: The header is set to zero (see options
for geometry), but the page number is printed causing the
overfull \vbox. Changing the options of geometry or \pagestyle{empty}
solves the problem.
The exceeding part of the second footnote text is correct behaviour:
TeX tries to align the top and bottom lines of a page in order to
get the baselines at the same position:
* At the top vertical space is added up to \topskip unless
the height of the first element is larger than \topskip.
* At the bottom the bottom element might have a depth up to
\maxdepth. The default for \maxdepth with \documentclass[12pt]{book}
is .5\topskip = 8pt. \maxdepth=0pt doesn't allow the bottom element
to exceed the textarea. Aligning the last line of the tabular with the
bottom of the textarea is much more tricky.
The following assumes that the last line of the tabular contains
normal text without large depths:
\documentclass[12pt]{book}
\usepackage{array}
\usepackage[
a4paper,noheadfoot,nomarginpar,margin=20mm,showframe
]{geometry}
\usepackage{zref-savepos}
\pagestyle{empty}
%\maxdepth=0pt
\makeatletter
\newsavebox\tl@box
\newcount\c@tlcount
\setcounter{tlcount}{0}
\def\thetlcount{\the\c@tlcount}
\newenvironment*{tltabular}[1]{%
\stepcounter{tlcount}%
\begin{lrbox}{\tl@box}%
\begin{tabular}[t]{|#1|}%
\hline
\zref@savepos
\zref@labelbyprops{tl@b\thetlcount}{posy}%
\xdef\g@dp@arstrutbox{%
\the\dimexpr\dp\@arstrutbox+\arrayrulewidth
}%
\ignorespaces
}{%
\hline
\end{tabular}%
\end{lrbox}%
\zref@refused{tl@a\thetlcount}%
\zref@refused{tl@b\thetlcount}%
\dimen@=\dimexpr
\zposy{tl@a\thetlcount}sp-\zposy{tl@b\thetlcount}sp%
\relax
\raisebox{\dimen@}{%
\zref@savepos
\zref@labelbyprops{tl@a\thetlcount}{posy}%
\box\tl@box
}\\*[-\g@dp@arstrutbox]%
\hbox{\vrule width 0pt depth\g@dp@arstrutbox}%
}
\begin{document}%
xyz\footnote{%
\begin{tltabular}{l}
abc\\
def\\
ghj\\
klm\\
\end{tltabular}%\\
}
xyz\footnote{%
\begin{tltabular}{l}
abc\\
def\\
ghj\\
klm\\
\end{tltabular}%\\
}
\end{document}%
Yours sincerely
Heiko Oberdiek
--------------------------------------------------
Subscriptions, Archive, and List information, etc.:
http://tug.org/mailman/listinfo/xetex
--------------------------------------------------
Subscriptions, Archive, and List information, etc.:
http://tug.org/mailman/listinfo/xetex
--
Zdeněk Wagner
http://hroch486.icpf.cas.cz/wagner/
http://icebearsoft.euweb.cz
--------------------------------------------------
Subscriptions, Archive, and List information, etc.:
http://tug.org/mailman/listinfo/xetex
--------------------------------------------------
Subscriptions, Archive, and List information, etc.:
http://tug.org/mailman/listinfo/xetex
--------------------------------------------------
Subscriptions, Archive, and List information, etc.:
http://tug.org/mailman/listinfo/xetex