summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/tabto/tabto-doc.tex
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /macros/latex/contrib/tabto/tabto-doc.tex
Initial commit
Diffstat (limited to 'macros/latex/contrib/tabto/tabto-doc.tex')
-rw-r--r--macros/latex/contrib/tabto/tabto-doc.tex85
1 files changed, 85 insertions, 0 deletions
diff --git a/macros/latex/contrib/tabto/tabto-doc.tex b/macros/latex/contrib/tabto/tabto-doc.tex
new file mode 100644
index 0000000000..8d2aef54c1
--- /dev/null
+++ b/macros/latex/contrib/tabto/tabto-doc.tex
@@ -0,0 +1,85 @@
+\documentclass[11pt,a4paper]{article}
+\usepackage[a4paper,margin=3cm]{geometry}
+\setlength{\parskip}{2pt}
+\makeatletter
+
+\newcommand\cs[1]{\texttt{\char`\\#1}}
+\renewcommand\arg[1]{\nolinebreak[2]\mbox{\texttt{\string{#1\string}}}}
+\newcommand\oarg[1]{\nolinebreak[2]\mbox{\texttt{[#1]}}}
+\newcommand\sarg{\texttt{*}}
+
+\newcommand\meta[1]{\mbox{\ensuremath{\langle}\textit{#1}\ensuremath{\rangle}}}
+\newcommand\prototype[1]{\par\pagebreak[1]\bigskip\begingroup
+ \noindent\samepage #1\par \nopagebreak \smallskip \endgroup \@afterheading}
+
+% meaningful names, as in faq.sty
+\let\environment\texttt
+\let\Package\textsf
+\makeatother
+
+\begin{document}
+\title{The \Package{tabto} package}
+\author{Donald Arseneau\thanks{Thanks to Robin
+ Fairbairns for making typeset documentation.}}
+\date{Dec 2018, version 1.4}
+\maketitle
+
+\section*{Tabbing to fixed positions in a paragraph}
+
+Two new text positioning commands are defined: \cs{tabto} and \cs{tab}.
+
+\prototype{\cs{tabto}\arg{\meta{length}}}
+
+Tab to a position relative to the left margin in a paragraph
+(any indentation due to a list is part of the `margin' in this
+context). If the text on the line already goes past the desired
+position, the tab starts a new line and moves to the requested
+horizontal position.
+
+
+\prototype{\cs{tabto}\sarg\arg{\meta{length}}}
+
+Similar to \cs{tabto}, except it will perform backspacing, and
+over-print previous text on the line whenever that text is already
+longer than the specified length (i.e., no linebreak is produced).
+Line-breaks are suppressed immediately after \cs{tabto} or \cs{tabto*}.
+
+The length register \cs{CurrentLineWidth} will report the width
+of the existing text on the line, and it may be used in the
+\meta{length} argument (using calc.sty, for example). Also, there
+is \cs{TabPrevPos} which stores the \cs{CurrentLineWidth} from the
+previous tab command (the position where the tab command occurred,
+not where it went to), and can be used to return to that position
+if no line breaks have occurred in between, or directly below it,
+if there were line breaks.
+
+\prototype{\cs{tab}}
+
+Tab to the next tab-stop chosen from a list of tab positions, in
+the traditional style of typewriters. A \cs{tab} will always move
+to the next tab stop (or the next line), even if it is already
+exactly at a tab stop. Thus, ``\cs{tab}\cs{tab}'' skips a position. A
+linebreak is permitted immediately following a \cs{tab}, in case the
+ensuing text does not fit well in the remaining space.
+
+The tab-stop positions are declared using either \cs{TabPositions}
+or \cs{NumTabs}:
+
+\prototype{\cs{TabPositions}\arg{\meta{length}, \meta{length},
+ \textrm{\dots}\meta{length}}}
+
+Declares the tab stops as a comma-separated list of positions
+relative to the left margin. A tab-stop at \texttt{0pt} is implicit, and
+need not be listed.
+
+\prototype{\cs{NumTabs}\arg{\meta{number}}}
+
+Declares a list of \meta{number} equally-spaced tabs, starting at the
+left margin and spanning \cs{linewidth}. For example
+\cs{NumTabs}\arg{2} declares tab-stops at \texttt{0pt} and
+\texttt{0.5}\cs{linewidth}, the same as
+\cs{TabPositions}\arg{0pt, 0.5\cs{linewidth}}
+or \cs{TabPositions}\arg{0.5\cs{linewidth}}.
+
+
+\end{document}