From e0c6872cf40896c7be36b11dcc744620f10adf1d Mon Sep 17 00:00:00 2001 From: Norbert Preining Date: Mon, 2 Sep 2019 13:46:59 +0900 Subject: Initial commit --- macros/latex/contrib/tabfigures/README | 55 +++ macros/latex/contrib/tabfigures/tabfigures.dtx | 447 +++++++++++++++++++++++++ macros/latex/contrib/tabfigures/tabfigures.ins | 55 +++ macros/latex/contrib/tabfigures/tabfigures.pdf | Bin 0 -> 245630 bytes 4 files changed, 557 insertions(+) create mode 100644 macros/latex/contrib/tabfigures/README create mode 100644 macros/latex/contrib/tabfigures/tabfigures.dtx create mode 100644 macros/latex/contrib/tabfigures/tabfigures.ins create mode 100644 macros/latex/contrib/tabfigures/tabfigures.pdf (limited to 'macros/latex/contrib/tabfigures') diff --git a/macros/latex/contrib/tabfigures/README b/macros/latex/contrib/tabfigures/README new file mode 100644 index 0000000000..96cefd5f2e --- /dev/null +++ b/macros/latex/contrib/tabfigures/README @@ -0,0 +1,55 @@ +tabfigures - Using tabular figures with LaTeX +============================================= + +The 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. + +Usage +----- + +To use this package, include + + \usepackage[]{tabfigures} + +in the preamble of your LaTeX document. See the PDF documentation for +the available options and other details. + +Installation +------------ + +1. Run `latex tabfigures.ins` to generate the LaTeX package. + +2. Create the following directories in a local texmf tree: + + - doc/latex/tabfigures + - tex/latex/tabfigures + +3. Copy all necessary files into the texmf tree: + + - tabfigures.pdf goes to doc/latex/tabfigures + - tabfigures.sty goes to tex/latex/tabfigures + +4. Afterwards, you may need to regenerate the file database: + + texhash + +License +------- + +Copyright (c) 2007 by Andreas Bühmann +Copyright (c) 2012 by Michael Ummels + +This work may be distributed and modified under the terms and conditions of the +LaTeX Project Public License, version 1.3c or greater (your choice). +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. diff --git a/macros/latex/contrib/tabfigures/tabfigures.dtx b/macros/latex/contrib/tabfigures/tabfigures.dtx new file mode 100644 index 0000000000..41271b742e --- /dev/null +++ b/macros/latex/contrib/tabfigures/tabfigures.dtx @@ -0,0 +1,447 @@ +% \iffalse meta-comment +% +% Copyright (c) 2007 by Andreas B\"uhmann +% Copyright (c) 2012 by Michael Ummels +% +% 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}[2012/01/24 v1.1 Patches for using tabular figures] +% +%\NeedsTeXFormat{LaTeX2e} +%\ProvidesPackage{tabfigures}[2012/01/24 v1.1 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{hologo} +\usepackage{array} +\usepackage{hypdoc} +\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@tbf +\makeatother + +\newenvironment{sample}{% + \begin{trivlist}% + \item +}{% + \end{trivlist}% +} + +\begin{document} +\DocInput{tabfigures.dtx} +\end{document} +% +%<*doc> +%\fi +% +% \CheckSum{242} +% \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} +% +% The current version of this package requires \eTeX\ and the +% \pkg{etoolbox} package (version 2.0a or later). 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 in which parts of your document +% tabular figures 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). However, this package can also be used as a +% companion to the \pkg{fontspec} package: if \pkg{fontspec} is +% loaded (and |\tbfigures| is not defined), this package defines +% |\tbfigures| as an alias for |\addfontfeatures{Numbers=Monospaced}|. +% In this way, \pkg{tabfigures} can also be used with \hologo{XeTeX} and +% \hologo{LuaTeX} (provided a suitable OpenType font is loaded with +% \pkg{fontspec}). +% +% \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 +% in conjunction with the \pkg{doc}, \pkg{hypdoc}, \pkg{listings} or +% \pkg{fancyvrb} package. +% \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 +% +% \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> +\RequirePackage{etoolbox} +\newcommand*\tabfig@warning[1]{% + \PackageWarningNoLine{tabfigures}{Command \string#1 could not be patched}} +% \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@tbf| 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}{% + \let\tabfig@maketag@@@\maketag@@@ + \def\maketag@@@#1{\tabfig@maketag@@@{\tabfig@ttbf{#1}}}% + }{% + \expandafter\def\expandafter\tabfig@eqnnum\@eqnnum + \patchcmd{\tabfig@eqnnum}% + {\theequation}{\tabfig@ttbf{\theequation}}% + {\def\@eqnnum{{\tabfig@eqnnum}}}% + {\tabfig@warning{\@eqnnum}}% + }% + }% +} +% \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 used in formatting the lists by +% default. +% \begin{macrocode} + \let\tabfig@@dottedtocline\@dottedtocline + \def\@dottedtocline#1#2#3#4#5{% + \tabfig@@dottedtocline{#1}{#2}{#3}{#4}{\tabfig@ttbf{#5}}% + }% + \let\tabfig@numberline\numberline + \def\numberline#1{\tabfig@numberline{\tabfig@ttbf{#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} + \let\tabfig@l@part\l@part + \def\l@part#1#2{\tabfig@l@part{#1}{\tabfig@ttbf{#2}}} + \let\tabfig@l@chapter\l@chapter + \def\l@chapter#1#2{\tabfig@l@chapter{#1}{\tabfig@ttbf{#2}}} + \let\tabfig@l@section\l@section + \def\l@section#1#2{\tabfig@l@section{#1}{\tabfig@ttbf{#2}}} + \let\tabfig@l@subsection\l@subsection + \def\l@subsection#1#2{\tabfig@l@subsection{#1}{\tabfig@ttbf{#2}}} + \let\tabfig@l@subsubsection\l@subsubsection + \def\l@subsubsection#1#2{\tabfig@l@subsubsection{#1}{\tabfig@ttbf{#2}}} + \let\tabfig@l@paragraph\l@paragraph + \def\l@paragraph#1#2{\tabfig@l@paragraph{#1}{\tabfig@ttbf{#2}}} + \let\tabfig@l@subparagraph\l@subparagraph + \def\l@subparagraph#1#2{\tabfig@l@subparagraph{#1}{\tabfig@ttbf{#2}}} + \let\tabfig@l@figure\l@figure + \def\l@figure#1#2{\tabfig@l@figure{#1}{\tabfig@ttbf{#2}}} + \let\tabfig@l@table\l@table + \def\l@table#1#2{\tabfig@l@table{#1}{\tabfig@ttbf{#2}}} +% \end{macrocode} +% Special support for parts and chapters in \pkg{memoir}. +% \begin{macrocode} + \@ifclassloaded{memoir}{% + \apptocmd{\cftpartpresnum}% + {\tabfig@tbf}{}{\tabfig@warning{\cftpartpresnum}}% + \apptocmd{\cftchapterpresnum}% + {\tabfig@tbf}{}{\tabfig@warning{\cftchapterpresnum}}% + }{}% + }% +} +% \end{macrocode} +% +% \subsection{Enumerations} +% Labels in enumerations. +% \begin{macrocode} +\DeclareOption{enum}{% + \AtBeginDocument{% + \patchcmd{\labelenumi}% + {\theenumi}{\tabfig@ttbf{\theenumi}}% + {}{\tabfig@warning{\labelenumi}}% + \patchcmd{\labelenumii}% + {\theenumii}{\tabfig@ttbf{\theenumii}}% + {}{\tabfig@warning{\labelenumii}}% + \patchcmd{\labelenumiii}% + {\theenumiii}{\tabfig@ttbf{\theenumiii}}% + {}{\tabfig@warning{\labelenumiii}}% + \patchcmd{\labelenumiv}% + {\theenumiv}{\tabfig@ttbf{\theenumiv}}% + {}{\tabfig@warning{\labelenumiv}}% + }% +} +% \end{macrocode} +% +% \subsection{Bibliography} +% Labels in the bibliography. +% \begin{macrocode} +\DeclareOption{bib}{% + \AtBeginDocument{% + \let\tabfig@@biblabel\@biblabel + \def\@biblabel#1{\tabfig@@biblabel{\tabfig@ttbf{#1}}}% + \@ifpackageloaded{biblatex}{% + \DeclareFieldFormat{labelnumberwidth}{\mkbibbrackets{\tabfig@ttbf{#1}}}% + \DeclareFieldFormat{labelalphawidth}{\mkbibbrackets{\tabfig@ttbf{#1}}}% + }{}% + }% +} +% \end{macrocode} +% +% \subsection{Line numbers} +% \begin{macrocode} +\DeclareOption{lineno}{% + \AtBeginDocument{% +% \end{macrocode} +% Support for the \pkg{doc} and \pkg{hypdoc} packages. +% \begin{macrocode} + \@ifpackageloaded{hypdoc}{% + \ifpatchable{\theCodelineNo}{\HDorg@theCodelineNo}{% + \patchcmd{\HDorg@theCodelineNo}% + {\arabic{CodelineNo}}% + {\tabfig@ttbf{\arabic{CodelineNo}}}% + {}{\tabfig@warning{\HDorg@theCodelineNo}}% + }{% + \patchcmd{\theCodelineNo}% + {\arabic{CodelineNo}}% + {\tabfig@ttbf{\arabic{CodelineNo}}}% + {}{\tabfig@warning{\theCodelineNo}}% + }% + }{% + \@ifpackageloaded{doc}{% + \patchcmd{\theCodelineNo}% + {\arabic{CodelineNo}}% + {\tabfig@ttbf{\arabic{CodelineNo}}}% + {}{\tabfig@warning{\theCodelineNo}}% + }{}% + }% +% \end{macrocode} +% Support for the \pkg{listings} package. +% \begin{macrocode} + \@ifpackageloaded{listings}{% + \apptocmd{\lst@numberstyle}{\tabfig@tbf}% + {}{\tabfig@warning{\lst@numberstyle}}% + }{}% +% \end{macrocode} +% Support for the \pkg{fancyvrb} package. +% \begin{macrocode} + \@ifpackageloaded{fancyvrb}{% + \patchcmd{\theFancyVerbLine}% + {\arabic{FancyVerbLine}}% + {\tabfig@ttbf{\arabic{FancyVerbLine}}}% + {}{\tabfig@warning{\theFancyVerbLine}}% + }{} + }% +} +\ProcessOptions\relax +% \end{macrocode} +% +% \subsection{Auxiliary macros} +% These commands are used for switching to tabular figures. This can be +% redefined to allow debugging, disabling, etc. +% \begin{macrocode} +\newcommand*\tabfig@tbf{\tbfigures} +\DeclareTextFontCommand{\tabfig@ttbf}{\tabfig@tbf} +% \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@tbf{\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}{% + \@ifpackageloaded{fontspec}{% + \def\tbfigures{\addfontfeatures{Numbers=Monospaced}}% + }{% + \PackageWarningNoLine{tabfigures}{There is no command + \string\tbfigures\space to support tabular figures}% + \let\tabfig@tbf\@empty + }% + }{}% +} +% +% \end{macrocode} +% +% \Finale +\endinput diff --git a/macros/latex/contrib/tabfigures/tabfigures.ins b/macros/latex/contrib/tabfigures/tabfigures.ins new file mode 100644 index 0000000000..7ab08ea270 --- /dev/null +++ b/macros/latex/contrib/tabfigures/tabfigures.ins @@ -0,0 +1,55 @@ +% +% Copyright (c) 2007 by Andreas B\"uhmann +% Copyright (c) 2012 by Michael Ummels +% +% 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. +% + +\input docstrip + +\preamble + +Copyright (c) 2007 by Andreas Buehmann +Copyright (c) 2012 by Michael Ummels + +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. + +\endpreamble + +\postamble +\endpostamble + +\keepsilent +\askforoverwritefalse + +\generate{ + \file{tabfigures.sty}{\from{tabfigures.dtx}{package}} +} + +\endbatchfile diff --git a/macros/latex/contrib/tabfigures/tabfigures.pdf b/macros/latex/contrib/tabfigures/tabfigures.pdf new file mode 100644 index 0000000000..10ba67674e Binary files /dev/null and b/macros/latex/contrib/tabfigures/tabfigures.pdf differ -- cgit v1.2.3