summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/generic/genmisc/tabto.tex
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex/generic/genmisc/tabto.tex')
-rw-r--r--Master/texmf-dist/tex/generic/genmisc/tabto.tex35
1 files changed, 35 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/generic/genmisc/tabto.tex b/Master/texmf-dist/tex/generic/genmisc/tabto.tex
new file mode 100644
index 00000000000..df10685747e
--- /dev/null
+++ b/Master/texmf-dist/tex/generic/genmisc/tabto.tex
@@ -0,0 +1,35 @@
+%-------------- tabto.tex ------------
+% Tab to a position relative to the left margin in a paragraph:
+% some text \tabto{1in} more text, and \tabto 3in final text.
+% If the text on the line already goes past the desired position,
+% the tab starts a new line.
+% Note that braces are allowed, but not required.
+%
+% Donald Arseneau (asnd@reg.triumf.ca, asnd@triumfcl (bitnet))
+
+\newdimen \scratchdim % or use \@tempdima in LaTeX
+\newdimen \scratchDIM % or use \@tempdimb in LaTeX
+
+% this preliminary mess is just TeX's awful way of reading a parameter
+% with or without braces.
+
+\def\tabto{\futurelet\nExt\tabtO}
+\def\tabtO{\ifx\nExt\bgroup\let\nExt\TabTo\else\let\nExt\tabtOO\fi\nExt}
+\def\tabtOO{\afterassignment\tabTOO\scratchDIM }
+\def\tabTOO{\TabTo\scratchDIM}
+
+\def\TabTo#1{\begingroup\leavevmode
+\ifinner\scratchdim=0pt\relax % in a \hbox, so ignore
+\else % unrestricted horizontal mode
+ \parfillskip=0pt plus 1fill % must swamp the -1fil glue
+ \hfil\null\penalty20 \hskip0ptplus-1fil
+ \hbox{\mathstrut\kern\hsize\kern-#1}\vadjust{\nobreak}\par
+ \scratchdim=\prevdepth
+ \prevdepth=-999pt % make sure I get an exact \baselineskip
+ \parskip=-999pt % but cancel the extra space
+ \advance\parskip-\baselineskip % cancel the \baselineskip
+ \advance\parskip-\scratchdim
+ \noindent
+\fi \hbox to#1{\vrule depth\scratchdim width0pt\hss}\endgroup
+\ignorespaces}
+