summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKarl Berry <karl@gnu.org>1998-07-01 14:28:14 +0000
committerKarl Berry <karl@gnu.org>1998-07-01 14:28:14 +0000
commitfefeb0f7bd908fd8092ce7b12df1d155519f570a (patch)
treed7ab1d1857a9c400fbe19a15ab3157615fa3d9c1
parent6cca2382f0a35779d96cda9a846fa01c22d6916c (diff)
downloadgunmake-fefeb0f7bd908fd8092ce7b12df1d155519f570a.tar.gz
* texinfo.tex (\anchor): New command @anchor.
(\xrefX): Avoid double space when xref to an @anchor or an @unnumbered. * texinfo.tex (\itemzzz): Use kerns and \unhbox when item text fits in the space, so footnotes can work.
-rw-r--r--texinfo.tex39
1 files changed, 27 insertions, 12 deletions
diff --git a/texinfo.tex b/texinfo.tex
index 1b88096..52a9a76 100644
--- a/texinfo.tex
+++ b/texinfo.tex
@@ -1793,11 +1793,6 @@ July\or August\or September\or October\or November\or December\fi
\itemindex{#1}%
\nobreak % This prevents a break before @itemx.
%
- % Be sure we are not still in the middle of a paragraph.
- %{\parskip = 0in
- %\par
- %}%
- %
% If the item text does not fit in the space we have, put it on a line
% by itself, and do not allow a page break either before or after that
% line. We do not start a paragraph here because then if the next
@@ -1830,9 +1825,15 @@ July\or August\or September\or October\or November\or December\fi
% text will be indented by \tableindent, we make the item text be in
% a zero-width box.
\noindent
- \rlap{\hskip -\tableindent\box0}\ignorespaces%
- \endgroup%
- \itemxneedsnegativevskiptrue%
+ % Do this with kerns and \unhbox so that if there is a footnote in
+ % the item text, it can migrate to the main vertical list and
+ % eventually be printed.
+ \nobreak\kern-\tableindent
+ \dimen0 = \itemmax \advance\dimen0 by -\wd0
+ \unhbox0
+ \nobreak\kern\dimen0
+ \endgroup
+ \itemxneedsnegativevskiptrue
\fi
}
@@ -1843,9 +1844,10 @@ July\or August\or September\or October\or November\or December\fi
\def\xitem{\errmessage{@xitem while not in a table}}
\def\xitemx{\errmessage{@xitemx while not in a table}}
-%% Contains a kludge to get @end[description] to work
+% Contains a kludge to get @end[description] to work.
\def\description{\tablez{\dontindex}{1}{}{}{}{}}
+% @table, @ftable, @vtable.
\def\table{\begingroup\inENV\obeylines\obeyspaces\tablex}
{\obeylines\obeyspaces%
\gdef\tablex #1^^M{%
@@ -4623,11 +4625,17 @@ width0pt\relax} \fi
\def\appendixnoderef{%
\ifx\lastnode\relax\else
\expandafter\expandafter\expandafter\setref{\lastnode}%
- {Yappendixletterandtype}
+ {Yappendixletterandtype}%
\global\let\lastnode=\relax
\fi
}
+
+% @anchor{NAME} -- define xref target at arbitrary point.
+%
+\def\anchor#1{\setref{#1}{Ynothing}}
+
+
% \setref{NAME}{SNT} defines a cross-reference point NAME, namely
% NAME-title, NAME-pg, and NAME-SNT. Called from \foonoderef. We have
% to set \indexdummies so commands such as @code in a section title
@@ -4691,8 +4699,15 @@ width0pt\relax} \fi
% into the usual \leavevmode...\vrule stuff for purposes of
% printing. So we \turnoffactive for the \refx-snt, back on for the
% printing, back off for the \refx-pg.
- {\normalturnoffactive \refx{#1-snt}{}}%
- \space [\printednodename],\space
+ {\normalturnoffactive
+ % Only output a following space if the -snt ref is nonempty; for
+ % @unnumbered and @anchor, it won't be.
+ \setbox2 = \hbox{\ignorespaces \refx{#1-snt}{}}%
+ \ifdim \wd2 > 0pt \refx{#1-snt}\space\fi
+ }%
+ % `mynode, '
+ [\printednodename],\space
+ % `page 3'.
\turnoffactive \putwordpage\tie\refx{#1-pg}{}%
\fi
\endgroup}