diff options
author | Karl Berry <karl@freefriends.org> | 2011-09-19 23:49:02 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2011-09-19 23:49:02 +0000 |
commit | d033dd6b59e70d2daf205b3a285f3aad2228b96f (patch) | |
tree | 1f3d725370ede3a9b4ff3824fbf9af2898f6f01e /Master/texmf-dist/source/latex/tabfigures/tabfigures.dtx | |
parent | 4d169ca66f8bd4cfb4257a94e49edbfdcdc84ce8 (diff) |
new latex package tabfigures (19sep11)
git-svn-id: svn://tug.org/texlive/trunk@24025 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source/latex/tabfigures/tabfigures.dtx')
-rw-r--r-- | Master/texmf-dist/source/latex/tabfigures/tabfigures.dtx | 406 |
1 files changed, 406 insertions, 0 deletions
diff --git a/Master/texmf-dist/source/latex/tabfigures/tabfigures.dtx b/Master/texmf-dist/source/latex/tabfigures/tabfigures.dtx new file mode 100644 index 00000000000..a993d731931 --- /dev/null +++ b/Master/texmf-dist/source/latex/tabfigures/tabfigures.dtx @@ -0,0 +1,406 @@ +% \iffalse meta-comment +% +% Copyright (c) 2007 by Andreas B\"uhmann +% Copyright (c) 2011 by Michael Ummels <michael.ummels@rwth-aachen.de> +% +% This work may be distributed and/or modified under the +% conditions of the LaTeX Project Public License, either version 1.3c +% of this license or (at your option) any later version. +% The latest version of this license is in +% http://www.latex-project.org/lppl.txt +% and version 1.3 or later is part of all distributions of LaTeX +% version 2005/12/01 or later. +% +% This work has the LPPL maintenance status `maintained'. +% +% The Current Maintainer of this work is Michael Ummels. +% +% This work consists of the files tabfigures.dtx, tabfigures.ins and +% the derived files tabfigures.sty and tabfigures.pdf. +% +% \fi +% +%\iffalse +%<*driver> +\ProvidesFile{tabfigures.dtx}[2011/09/17 v1.0 Patches for using tabular figures] +%</driver> +%<package>\NeedsTeXFormat{LaTeX2e} +%<package>\ProvidesPackage{tabfigures}[2011/09/17 v1.0 Patches for using tabular figures] +%<*driver> +\documentclass[fleqn]{ltxdoc} + +\usepackage[T1]{fontenc} +\IfFileExists{MinionPro.sty}{ + \usepackage[smallfamily]{MinionPro} + \usepackage[scaled=0.8]{berasans} + \usepackage[scaled=0.8]{beramono} +}{ + \usepackage{lmodern} +} +\usepackage[toc,eqno,enum,bib,lineno,debug]{tabfigures} +\usepackage[fleqn]{mathtools} +\usepackage{array} +\usepackage{hyperref} +\usepackage{microtype} + +\hypersetup{ + bookmarksnumbered, + colorlinks=false, + pdfborder={0 0 0}, + pdftitle={Using tabular figures with LaTeX}, + pdfauthor={Andreas B\"uhmann, Michael Ummels} +} + +% markup +\newcommand*\pkg[1]{\textsf{#1}} +\let\cls\pkg +\let\bst\pkg + +\makeatletter +\let\Tf\tabfig@font +\makeatother + +\newenvironment{sample}{% + \begin{trivlist}% + \item +}{% + \end{trivlist}% +} + +\begin{document} +\DocInput{tabfigures.dtx} +\end{document} +%</driver> +%<*doc> +%\fi +% +% \CheckSum{184} +% \CharacterTable +% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z +% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z +% Digits \0\1\2\3\4\5\6\7\8\9 +% Exclamation \! Double quote \" Hash (number) \# +% Dollar \$ Percent \% Ampersand \& +% Acute accent \' Left paren \( Right paren \) +% Asterisk \* Plus \+ Comma \, +% Minus \- Point \. Solidus \/ +% Colon \: Semicolon \; Less than \< +% Equals \= Greater than \> Question mark \? +% Commercial at \@ Left bracket \[ Backslash \\ +% Right bracket \] Circumflex \^ Underscore \_ +% Grave accent \` Left brace \{ Vertical bar \| +% Right brace \} Tilde \~} +% +% \GetFileInfo{tabfigures.dtx} +% +% \title{Using tabular figures with \LaTeX} +% \author{Andreas B\"uhmann \and Michael Ummels} +% \date{\fileversion\ -- \filedate} +% \maketitle +% +% \begin{abstract} +% The \pkg{tabfigures} package is a collection of patches for using +% tabular figures in some LaTeX environments where numbers should +% line up vertically such as the table of contents and enumerations. +% \end{abstract} +% +% +% \section{Introduction} +% +% Traditionally, there has been no distinction between proportional +% figures (\proportionalfigures{0123456789}) and tabular figures% +% \marginpar{% +% \raggedleft\LARGE +% \begin{tabular}[t]{r>{\Tf}r} +% 51 & 51 \\ +% 60 & 60 \\ +% \end{tabular} +% } ({\Tf 0123456789}) in \LaTeX. Effectively, the fonts commonly in use +% with \LaTeX\ only include figures of uniform width. This is why, with fonts +% like Minion Pro, which use proportional figures by default, you +% have to specifically adapt your document class or even the \LaTeX\ +% kernel to employ tabular figures in the right places: +% the table of contents, enumerations and other material where +% numbers should line up vertically. The \pkg{tabfigures} package tries +% to assist you in the most common situations. +% Throughout this document, tabular figures are colored +% \textcolor{green!50!black}{green}. +% +% \section{Usage} +% +% This package is a collection of patches that inject +% |\tbfigures| into the involved formatting commands in +% the right places. You can load this package by putting +% \begin{quote} +% |\usepackage|\oarg{options}|{tabfigures}| +% \end{quote} +% in the preamble of your document. The options, which are described +% in the next sections, control which patches are used. (If no options are +% specified, the package has no effect.) +% +% To have any effect, this package relies on the existence of a command +% |\tbfigures| to switch to tabular figures. For instance, the +% \pkg{MinionPro} package defines this command. (More precisely, +% the \pkg{fontaxes} package, which is included by \pkg{MinionPro}, +% defines this command). +% +% \section{Options} +% +% \DescribeMacro{toc} +% The \hyperdef{sample}{toc}{|toc|} option controls whether +% tabular figures are used for the numbering and page numbers in the +% table of contents, the list of tables/figures, and similar lists. +% \begin{sample} +% \contentsline{section}{% +% \numberline{4}Moving Information Around}{65}{sample.toc} % +% \contentsline{subsection}{% +% \numberline{4.1}The Table of Contents}{66}{sample.toc} % +% \contentsline{subsection}{% +% \numberline{4.2}Cross-References}{67}{sample.toc} % +% \end{sample} +% +% \noindent\DescribeMacro{eqno} +% The |eqno| option enables tabular figures in equation numbers. +% \begin{sample} +% \setlength{\abovedisplayskip}{0pt}% +% \setlength{\belowdisplayskip}{0pt}% +% \setcounter{equation}{18}% +% \begin{align} +% x&=y & X&=Y & a&=b+c\\ +% x'&=y' & X'&=Y' & a'&=b\\ +% x+x'&=y+y' & X+X'&=Y+Y' & a'b&=c'b +% \end{align} +% \end{sample} +% +% \noindent\DescribeMacro{enum} +% The |enum| option turns on tabular figures in enumerations. +% \begin{sample} +% \begin{enumerate} \setcounter{enumi}{38} +% \item The world's fastest supercomputer will have its speed +% measured in ``petaflops'', which represent 1,000 trillion +% calculations per second. +% \item The medical name for the part of the brain associated with +% teenage sulking is ``superior temporal sulcus''. +% \item Some Royal Mail stamps, which of course carry the Queen's +% image, are printed in Holland. +% \end{enumerate} +% \end{sample} +% +% \noindent\DescribeMacro{bib} +% The |bib| option activates tabular figures for the labels in the bibliography. +% \begin{sample} +% \renewcommand\section[2]{}% +% \begin{thebibliography}{99} +% \bibitem[19]{b19} Leslie Lamport. \LaTeX: A Document Preparation +% System. Addison-Wesley, Reading, MA, 2nd Edition, 1994. +% \bibitem[20]{b20} American Mathematical Society. User's Guide +% for the \pkg{amsmath} Package (Version 2.0). Revised, 2002. +% \bibitem[21]{b21} BBC News. +% \href{http://www.bbc.co.uk/blogs/magazinemonitor/2006/12/100_things_we_didnt_know_last_2.shtml}% +% {100 Things We Didn't Know Last Year.} 28 December 2006. +% \end{thebibliography} +% \end{sample} +% (The previous examples have been taken from these sources.) +% \medskip +% +% \noindent\DescribeMacro{lineno} +% The |lineno| option enables tabular figures for line numbers. +% Only the \pkg{doc} package is supported for now; support for other +% line-numbering packages is planned. +% \setcounter{CodelineNo}{48}% +% \begin{macrocode} +\DeclareOption{eqno}{% + \AtBeginDocument{% + \@ifpackageloaded{amsmath}{% +% \end{macrocode} +% +% \section{Compatibility} +% +% This package has been designed to work with the default settings of +% the standard document classes \cls{article}, \cls{report} and +% \cls{book}, their \pkg{KOMA-Script} counterparts, the \cls{memoir} +% class, the \pkg{amsmath} package, and the standard bibliographic +% styles \bst{numeric} and \bst{alphabetic} of \pkg{biblatex} v0.6a. +% +% \StopEventually +% +% \iffalse +%</doc> +% \fi +% +% \section{Implementation} +% +% \global\setcounter{CodelineNo}{0} +% Ease patching of commands. We store the original meaning of |\cmd| +% in a safe place and access it later (in the redefinition) with +% |\tabfig@\cmd|. +% \begin{macrocode} +%<*package> +\newcommand*\tabfig@@[1]{tabfig@@\expandafter\@cdr\string #1\@nil} +\newcommand*\tabfig@[1]{\csname \tabfig@@{#1}\endcsname} +\newcommand*\tabfig@name{} +\newcommand*\tabfig@save[1]{% + \edef\tabfig@name{\expandafter\expandafter\expandafter + \noexpand\tabfig@{#1}}% + \expandafter\newcommand\tabfig@name{}% + \expandafter\let\tabfig@name #1% +} +% \end{macrocode} +% Just a shorthand. +% \begin{macrocode} +\newcommand*\tabfig@def[1]{% + \tabfig@save{#1}% + \def#1% +} +% \end{macrocode} +% Patch |\l@|\meta{level} commands. These commands always take two +% arguments, the second of which is the page number. +% \begin{macrocode} +\newcommand*\tabfig@pname{} +\newcommand*\tabfig@patch@l[1]{% + \@ifundefined{l@#1}{}{% + \edef\tabfig@pname{\expandafter\noexpand\csname l@#1\endcsname}% + \expandafter\tabfig@save\tabfig@pname + \expandafter\edef\tabfig@pname##1##2{% + \noexpand\tabfig@ + \expandafter\noexpand\tabfig@pname + {##1}{\noexpand\tabfig@font ##2}% + }% + }% +} +% \end{macrocode} +% Debugging. +% \begin{macrocode} +\newif\iftabfig@debug \tabfig@debugfalse +\DeclareOption{debug}{\tabfig@debugtrue} +% \end{macrocode} +% +% \subsection{Equation numbers} +% We distinguish between the two most frequent cases: \pkg{amsmath} +% and standard \LaTeX. All of the following patches work by injecting +% |\tabfig@font| in the right place. They try to do this as robustly as +% possible by reusing the original definition. +% \begin{macrocode} +\DeclareOption{eqno}{% + \AtBeginDocument{% + \@ifpackageloaded{amsmath}{% + \tabfig@def\maketag@@@#1{\tabfig@\maketag@@@{\tabfig@font #1}}% + }{% + \CheckCommand*\@eqnnum{{\normalfont \normalcolor (\theequation)}}% + \def\@eqnnum{{\normalfont \tabfig@font \normalcolor (\theequation)}}% + }% + }% +} +% \end{macrocode} +% +% \subsection{Table of contents} +% And similar lists such as list of figures and list of tables. +% \begin{macrocode} +\DeclareOption{toc}{% + \AtBeginDocument{% +% \end{macrocode} +% Generic. First two command that are using in formatting the lists by +% default. +% \begin{macrocode} + \tabfig@def\@dottedtocline#1#2#3#4#5{% + \tabfig@\@dottedtocline{#1}{#2}{#3}{#4}{\tabfig@font #5}% + }% + \tabfig@def\numberline#1{% + \tabfig@\numberline{\tabfig@font #1}% + }% +% \end{macrocode} +% Then a bunch of |\l@|\meta{level} commands for usually available +% entry types, which might not use the commands from above. +% \begin{macrocode} + \tabfig@patch@l{part}% + \tabfig@patch@l{chapter}% + \tabfig@patch@l{section}% + \tabfig@patch@l{subsection}% + \tabfig@patch@l{subsubsection}% + \tabfig@patch@l{paragraph}% + \tabfig@patch@l{subparagraph}% + \tabfig@patch@l{figure}% + \tabfig@patch@l{table}% +% \end{macrocode} +% Special support for parts and chapters in \pkg{memoir}. +% \begin{macrocode} + \@ifclassloaded{memoir}{% + \tabfig@def\cftchapterpresnum{\tabfig@font \tabfig@\cftchapterpresnum}% + \tabfig@def\cftpartpresnum{\tabfig@font \tabfig@\cftpartpresnum}% + }{}% + }% +} +% \end{macrocode} +% +% \subsection{Enumerations} +% Labels in enumerations. +% \begin{macrocode} +\DeclareOption{enum}{% + \AtBeginDocument{% + \tabfig@def\labelenumi{\tabfig@font \tabfig@\labelenumi}% + \tabfig@def\labelenumii{\tabfig@font \tabfig@\labelenumii}% + \tabfig@def\labelenumiii{\tabfig@font \tabfig@\labelenumiii}% + \tabfig@def\labelenumiv{\tabfig@font \tabfig@\labelenumiv}% + }% +} +% \end{macrocode} +% +% \subsection{Bibliography} +% Labels in the bibliography. +% \begin{macrocode} +\DeclareOption{bib}{% + \AtBeginDocument{% + \tabfig@def\@biblabel{\tabfig@font \tabfig@\@biblabel}% + \@ifpackageloaded{biblatex}{% + \DeclareFieldFormat{labelnumberwidth}{\mkbibbrackets{\tabfig@font #1}}% + \DeclareFieldFormat{labelalphawidth}{\mkbibbrackets{\tabfig@font #1}}% + }{}% + }% +} +% \end{macrocode} +% +% \subsection{Line numbers} +% \begin{macrocode} +\DeclareOption{lineno}{% + \AtBeginDocument{% + \@ifpackageloaded{doc}{% + \CheckCommand*\theCodelineNo{% + \reset@font\scriptsize\arabic{CodelineNo}}% + \def\theCodelineNo{% + \reset@font\tabfig@font\scriptsize\arabic{CodelineNo}}% + }{}% + }% +} +\ProcessOptions\relax +% \end{macrocode} +% +% \subsection{Auxiliary macros} +% This command is used for switching to tabular figures. This can be +% redefined to allow debugging, disabling, etc. +% \begin{macrocode} +\newcommand*\tabfig@font{\tbfigures} +% \end{macrocode} +% Visual debugging: Set tabular figures (produced by this package) in +% green. +% \begin{macrocode} +\iftabfig@debug + \RequirePackage{xcolor}% + \colorlet{tabfig@debug}{green!50!black}% + \renewcommand\tabfig@font{\tbfigures\color{tabfig@debug}}% +\fi +% \end{macrocode} +% Check if figure versions are supported at all. If not, we cannot do +% anything useful. +% \begin{macrocode} +\AtBeginDocument{% + \@ifundefined{tbfigures}{% + \PackageWarning{tabfigures}{There is no command + \string\tbfigures\space to support tabular figures}% + \let\tabfig@font\@empty + }{}% +} +%</package> +% \end{macrocode} +% +% \Finale +\endinput |