diff options
author | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
commit | e0c6872cf40896c7be36b11dcc744620f10adf1d (patch) | |
tree | 60335e10d2f4354b0674ec22d7b53f0f8abee672 /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.tex | 85 |
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} |