summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/doc/support/latexindent/success/stylefile.tex
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/doc/support/latexindent/success/stylefile.tex')
-rw-r--r--Master/texmf-dist/doc/support/latexindent/success/stylefile.tex132
1 files changed, 132 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/support/latexindent/success/stylefile.tex b/Master/texmf-dist/doc/support/latexindent/success/stylefile.tex
new file mode 100644
index 00000000000..fb1154d3420
--- /dev/null
+++ b/Master/texmf-dist/doc/support/latexindent/success/stylefile.tex
@@ -0,0 +1,132 @@
+% http://tex.stackexchange.com/questions/106244/using-a-lot-of-marginpars
+\ProvidesPackage{tabto}[2013/03/25 \space v 1.3 \space
+Another tabbing mechanism]\relax
+
+\newdimen\CurrentLineWidth
+\let\TabPrevPos\z@
+
+\newcommand\tabto[1]{%
+ \leavevmode
+ \begingroup
+ \def\@tempa{*}\def\@tempb{#1}%
+ \ifx\@tempa\@tempb % \tab*
+ \endgroup
+ \TTo@overlaptrue % ... set a flag and re-issue \tabto to get argument
+ \expandafter\tabto
+ \else
+ \ifinner % in a \hbox, so ignore
+ \else % unrestricted horizontal mode
+ \null% \predisplaysize will tell the position of this box (must be box)
+ \parfillskip\fill
+ \everydisplay{}\everymath{}%
+ \predisplaypenalty\@M \postdisplaypenalty\@M
+ $$% math display so we can test \predisplaysize
+ \lineskiplimit=-999pt % so we get pure \baselineskip
+ \abovedisplayskip=-\baselineskip \abovedisplayshortskip=-\baselineskip
+ \belowdisplayskip\z@skip \belowdisplayshortskip\z@skip
+ \halign{##\cr\noalign{%
+ % get the width of the line above
+ %\message{>>> Line \the\inputlineno\space -- \predisplaydirection\the\predisplaydirection, \predisplaysize\the\predisplaysize, \displayindent\the\displayindent, \leftskip\the\leftskip, \linewidth\the\linewidth. }%
+ \ifdim\predisplaysize=\maxdimen % mixed R and L; call the line full
+ \message{Mixed R and L, so line is full. }%
+ \CurrentLineWidth\linewidth
+ \else
+ \ifdim\predisplaysize=-\maxdimen % impossible, in vmode; call the line empty
+ \message{Not in paragraph, so line is empty. }%
+ \CurrentLineWidth\z@
+ \else
+ \ifnum\TTo@Direction<\z@
+ \CurrentLineWidth\linewidth \advance\CurrentLineWidth\predisplaysize
+ \else
+ \CurrentLineWidth\predisplaysize
+ \fi
+ % Correct the 2em offset
+ \advance\CurrentLineWidth -2em
+ \advance\CurrentLineWidth -\displayindent
+ \advance\CurrentLineWidth -\leftskip
+ \fi\fi
+ \ifdim\CurrentLineWidth<\z@ \CurrentLineWidth\z@\fi
+ % Enshrine the tab-to position; #1 might reference \CurrentLineWidth
+ \@tempdimb=#1\relax
+ \message{*** Tab to \the\@tempdimb, previous width is \the\CurrentLineWidth. ***}%
+ % Save width for possible return use
+ \xdef\TabPrevPos{\the\CurrentLineWidth}%
+ % Build the action to perform
+ \protected@xdef\TTo@action{%
+ \vrule\@width\z@\@depth\the\prevdepth
+ \ifdim\CurrentLineWidth>\@tempdimb
+ \ifTTo@overlap\else
+ \protect\newline \protect\null
+ \fi\fi
+ \protect\nobreak
+ \protect\hskip\the\@tempdimb\relax
+ }%
+ %\message{\string\TTo@action: \meaning \TTo@action. }%
+ % get back to the baseline, regardless of its depth.
+ \vskip-\prevdepth
+ \prevdepth-99\p@
+ \vskip\prevdepth
+ }}%
+ $$
+ % Don't count the display as lines in the paragraph
+ \count@\prevgraf \advance\count@-4 \prevgraf\count@
+ \TTo@action
+ %% \penalty\@m % to allow a penalized line break
+ \fi
+ \endgroup
+ \TTo@overlapfalse
+ \ignorespaces
+ \fi
+}
+
+% \tab -- to the next position
+% \hskip so \tab\tab moves two positions
+% Allow a (penalized but flexible) line-break right after the tab.
+%
+\newcommand\tab{\leavevmode\hskip2sp\tabto{\NextTabStop}%
+ \nobreak\hskip\z@\@plus 30\p@\penalty4000\hskip\z@\@plus-30\p@\relax}
+
+
+% Expandable macro to select the next tab position from the list
+
+\newcommand\NextTabStop{%
+ \expandafter \TTo@nexttabstop \TabStopList,\maxdimen,>%
+}
+
+\def\TTo@nexttabstop #1,{%
+ \ifdim#1<\CurrentLineWidth
+ \expandafter\TTo@nexttabstop
+ \else
+ \ifdim#1<0.9999\linewidth#1\else\z@\fi
+ \expandafter\strip@prefix
+ \fi
+}
+\def\TTo@foundtabstop#1>{}
+
+\newcommand\TabPositions[1]{\def\TabStopList{\z@,#1}}
+
+\newcommand\NumTabs[1]{%
+ \def\TabStopList{}%
+ \@tempdimb\linewidth
+ \divide\@tempdimb by#1\relax
+ \advance\@tempdimb 1sp % counteract rounding-down by \divide
+ \CurrentLineWidth\z@
+ \@whiledim\CurrentLineWidth<\linewidth\do {%
+ \edef\TabStopList{\TabStopList\the\CurrentLineWidth,}%
+ \advance\CurrentLineWidth\@tempdimb
+ }%
+ \edef\TabStopList{\TabStopList\linewidth}%
+}
+
+% default setting of tab positions:
+\TabPositions{\parindent,.5\linewidth}
+
+\newif\ifTTo@overlap \TTo@overlapfalse
+
+\@ifundefined{predisplaydirection}{
+ \let\TTo@Direction\predisplaysize
+ \let\predisplaydirection\@undefined
+}
+{
+ \let\TTo@Direction\predisplaydirection
+}