diff options
author | Norbert Preining <preining@logic.at> | 2007-11-23 20:32:28 +0000 |
---|---|---|
committer | Norbert Preining <preining@logic.at> | 2007-11-23 20:32:28 +0000 |
commit | 2a880d217a7d88f43b934deb51e531751dc6335f (patch) | |
tree | dc4dca62361afe34bbfe39f42aa1c86beccefae6 /Master/texmf-dist/source | |
parent | 6416899c64e51b10d0c1ab30abe054491d2ee876 (diff) |
new package fonttable
git-svn-id: svn://tug.org/texlive/trunk@5575 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source')
-rw-r--r-- | Master/texmf-dist/source/latex/fonttable/fonttable.dtx | 720 | ||||
-rw-r--r-- | Master/texmf-dist/source/latex/fonttable/fonttable.ins | 72 |
2 files changed, 792 insertions, 0 deletions
diff --git a/Master/texmf-dist/source/latex/fonttable/fonttable.dtx b/Master/texmf-dist/source/latex/fonttable/fonttable.dtx new file mode 100644 index 00000000000..4336a9dfba9 --- /dev/null +++ b/Master/texmf-dist/source/latex/fonttable/fonttable.dtx @@ -0,0 +1,720 @@ +% \iffalse meta-comment +% +% fonttable.dtx +% +% Author: Peter Wilson (Herries Press) herries dot press at earthlink dot net +% Copyright 2005 Peter R. Wilson +% +% This work may be distributed and/or modified under the +% conditions of the Latex Project Public License, either +% version 1.3 of this license or (at your option) any +% later version. +% The latest version of the license is in +% http://www.latex-project.org/lppl.txt +% and version 1.3 or later is part of all distributions of +% LaTeX version 2003/06/01 or later. +% +% This work has the LPPL maintenance status "author-maintained". +% +% This work consists of the files listed in the README file. +% +% +%<*driver> +\documentclass[twoside]{ltxdoc} +\usepackage{url} +\usepackage[draft=false, + plainpages=false, + pdfpagelabels, + bookmarksnumbered, + hyperindex=false + ]{hyperref} +\providecommand{\phantomsection}{} +%%\OnlyDescription %% comment this out for the full glory +\EnableCrossrefs +\CodelineIndex +\setcounter{StandardModuleDepth}{1} +\makeatletter + \@mparswitchfalse +\makeatother +\renewcommand{\MakeUppercase}[1]{#1} +\pagestyle{headings} +\newenvironment{addtomargins}[1]{% + \begin{list}{}{% + \topsep 0pt% + \addtolength{\leftmargin}{#1}% + \addtolength{\rightmargin}{#1}% + \listparindent \parindent + \itemindent \parindent + \parsep \parskip}% + \item[]}{\end{list}} +\begin{document} + \raggedbottom + \DocInput{fonttable.dtx} +\end{document} +%</driver> +% +% \fi +% +% \CheckSum{580} +% +% \DoNotIndex{\',\.,\@M,\@@input,\@addtoreset,\@arabic,\@badmath} +% \DoNotIndex{\@centercr,\@cite} +% \DoNotIndex{\@dotsep,\@empty,\@float,\@gobble,\@gobbletwo,\@ignoretrue} +% \DoNotIndex{\@input,\@ixpt,\@m} +% \DoNotIndex{\@minus,\@mkboth,\@ne,\@nil,\@nomath,\@plus,\@set@topoint} +% \DoNotIndex{\@tempboxa,\@tempcnta,\@tempdima,\@tempdimb} +% \DoNotIndex{\@tempswafalse,\@tempswatrue,\@viipt,\@viiipt,\@vipt} +% \DoNotIndex{\@vpt,\@warning,\@xiipt,\@xipt,\@xivpt,\@xpt,\@xviipt} +% \DoNotIndex{\@xxpt,\@xxvpt,\\,\ ,\addpenalty,\addtolength,\addvspace} +% \DoNotIndex{\advance,\Alph,\alph} +% \DoNotIndex{\arabic,\ast,\begin,\begingroup,\bfseries,\bgroup,\box} +% \DoNotIndex{\bullet} +% \DoNotIndex{\cdot,\cite,\CodelineIndex,\cr,\day,\DeclareOption} +% \DoNotIndex{\def,\DisableCrossrefs,\divide,\DocInput,\documentclass} +% \DoNotIndex{\DoNotIndex,\egroup,\ifdim,\else,\fi,\em,\endtrivlist} +% \DoNotIndex{\EnableCrossrefs,\end,\end@dblfloat,\end@float,\endgroup} +% \DoNotIndex{\endlist,\everycr,\everypar,\ExecuteOptions,\expandafter} +% \DoNotIndex{\fbox} +% \DoNotIndex{\filedate,\filename,\fileversion,\fontsize,\framebox,\gdef} +% \DoNotIndex{\global,\halign,\hangindent,\hbox,\hfil,\hfill,\hrule} +% \DoNotIndex{\hsize,\hskip,\hspace,\hss,\if@tempswa,\ifcase,\or,\fi,\fi} +% \DoNotIndex{\ifhmode,\ifvmode,\ifnum,\iftrue,\ifx,\fi,\fi,\fi,\fi,\fi} +% \DoNotIndex{\input} +% \DoNotIndex{\jobname,\kern,\leavevmode,\let,\leftmark} +% \DoNotIndex{\list,\llap,\long,\m@ne,\m@th,\mark,\markboth,\markright} +% \DoNotIndex{\month,\newcommand,\newcounter,\newenvironment} +% \DoNotIndex{\NeedsTeXFormat,\newdimen} +% \DoNotIndex{\newlength,\newpage,\nobreak,\noindent,\null,\number} +% \DoNotIndex{\numberline,\OldMakeindex,\OnlyDescription,\p@} +% \DoNotIndex{\pagestyle,\par,\paragraph,\paragraphmark,\parfillskip} +% \DoNotIndex{\penalty,\PrintChanges,\PrintIndex,\ProcessOptions} +% \DoNotIndex{\protect,\ProvidesClass,\raggedbottom,\raggedright} +% \DoNotIndex{\refstepcounter,\relax,\renewcommand,\reset@font} +% \DoNotIndex{\rightmargin,\rightmark,\rightskip,\rlap,\rmfamily,\roman} +% \DoNotIndex{\roman,\secdef,\selectfont,\setbox,\setcounter,\setlength} +% \DoNotIndex{\settowidth,\sfcode,\skip,\sloppy,\slshape,\space} +% \DoNotIndex{\symbol,\the,\trivlist,\typeout,\tw@,\undefined,\uppercase} +% \DoNotIndex{\usecounter,\usefont,\usepackage,\vfil,\vfill,\viiipt} +% \DoNotIndex{\viipt,\vipt,\vskip,\vspace} +% \DoNotIndex{\wd,\xiipt,\year,\z@} +% +% \changes{v1.0}{2005/11/27}{First public release} +% \changes{v1.0a}{2005/12/06}{Minor bug fix} +% +% \def\fileversion{v1.0} \def\filedate{2005/11/27} +% \def\fileversion{v1.0a} \def\filedate{2005/12/06} +% \newcommand*{\Lpack}[1]{\textsf {#1}} ^^A typeset a package +% \newcommand*{\Lopt}[1]{\textsf {#1}} ^^A typeset an option +% \newcommand*{\file}[1]{\texttt {#1}} ^^A typeset a file +% \newcommand*{\Lcount}[1]{\textsl {\small#1}} ^^A typeset a counter +% \newcommand*{\pstyle}[1]{\textsl {#1}} ^^A typeset a pagestyle +% \newcommand*{\Lenv}[1]{\texttt {#1}} ^^A typeset an environment +% \newcommand*{\AD}{\textsc{ad}} +% \newcommand*{\thisfont}{OandS} +% +% \title{The \Lpack{fonttable} package\thanks{This +% file has version number \fileversion, last revised +% \filedate.}} +% +% \author{% +% Peter Wilson\thanks{\texttt{herries dot press at earthlink dot net}}\\ +% Herries Press +% } +% \date{\filedate} +% \maketitle +% \begin{abstract} +% The package lets you typeset the characters in a font in tabular and/or +% running text forms. +% \end{abstract} +% \tableofcontents +% +% \section{Introduction} +% +% The \Lpack{fonttable} package lets you typeset a font's character set +% in tabular and/or running text forms. +% +% This manual is typeset according to the conventions of the +% \LaTeX{} \textsc{docstrip} utility which enables the automatic +% extraction of the \LaTeX{} macro source files~\cite{COMPANION}. +% +% \section{The package} +% +% The package provides commands to typeset a table of all the glyphs in +% a given font and to typeset an example of regular text. +% +% \DescribeMacro{\fonttable} +% The command \cs{fonttable}\marg{testfont} typesets a table showing all the +% glyphs in the \meta{testfont}, where \meta{testfont} is the name of a font +% like \texttt{cmr10}. +% +% \DescribeMacro{\fontrange} +% The package attempts to populate the table with a maximum of 256 glyphs, +% numbered from 0 to 255. +% The \cs{fontrange}\marg{low}\marg{high} declaration changes this by reducing +% the range so that it extends from \meta{low} to \meta{high}, where \meta{low} +% should be at least 0 and \meta{high} at most 256, and \meta{low} less than +% \meta{high}. +% +% The table is composed of blocks of sixteen characters. If necessary the +% value of \meta{low} is adjusted lower and \meta{high} is adjusted higher +% to match this block structure. For example, if you wanted a table of the +% lower 128 characters then \verb?\fontrange{0}{127}? would do the job, +% while the upper half of a 256 character font could be tabulated via +% \verb?\fontrange{128}{255}?. +% +% \DescribeMacro{\decimals} +% \DescribeMacro{\nodecimals} +% Normally each cell in the table includes the decimal number of the position +% in the (256) character set. \cs{nodecimals} turns off this numbering and +% \cs{decimals} turns it on. The default is \cs{decimals}. +% +% \DescribeMacro{\hexoct} +% \DescribeMacro{\nohexoct} +% Normally the columns and rows in the table are numbered using hexadecimal +% and octal numbers. These can be turned off by \cs{nohexoct} and turned +% on again with \cs{hexoct}, which is the default. +% +% \DescribeMacro{\ftablewidth} +% The font table's width is the length \cs{ftablewidth}, which by default +% is set to the normal textwidth (or more exactly, to \cs{hsize}). The table +% itself is left aligned. However, if \cs{nohexoct} is in effect the width of +% the table is its natural width. +% +% \DescribeMacro{\fntcolwidth} +% When \cs{nohexoct} is in effect the minimum width of a table column +% is \cs{fntcolwidth}. This is initially declared as \\ +% \verb?\setwidth{\fntcolwidth}{0.08\ftablewidth}? +% +% \DescribeMacro{\fonttext} +% The command \cs{fonttext}\marg{testfont} typesets an example text using +% the \meta{testfont} (e.g. \texttt{cmr10}). +% +% \DescribeMacro{\simpletext} +% \DescribeMacro{\fulltext} +% The example text can be just a paragraph and a line of capitals, +% or include more complex accented +% words as well. Following the declaration \cs{fulltext} the complex words are +% included as well as the example paragraph. The default is \cs{simpletext} +% for just the paragraph. +% +% \DescribeMacro{\regulartext} +% The command \cs{regulartext}\marg{fontspec} typesets the example text +% using \meta{fontspec}, for example \verb?\rmfamily\itshape?. +% +% +% \StopEventually{ +% \bibliographystyle{alpha} +% \renewcommand{\refname}{Bibliography} +% \begin{thebibliography}{GMS94} +% \addcontentsline{toc}{section}{\refname} +% +% \bibitem[MG04]{COMPANION} +% Frank Mittelbach and Michel Goossens. +% \newblock \emph{The LaTeX Companion}. +% \newblock Second edition. +% \newblock Addison-Wesley Publishing Company, 2004. +% +% +% \end{thebibliography} +% +% \PrintIndex +% +% } +% +% +% +% \section{The code} \label{sec:mf} +% +% Most of the code below is an edited version of code used in +% \verb?nfssfont.tex? for displaying aspects of the set of glyphs in a font. +% +% \begin{macrocode} +%<*pack> +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{fonttable}[2005/12/06 v1.0a displays a font] + +% \end{macrocode} +% +% \begin{macro}{\sevenrm} +% A small fixed size roman font. +% \begin{macrocode} +\providecommand*{\sevenrm}{\fontsize{7}{9pt}\rmfamily} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\f@tm} +% \begin{macro}{\f@tn} +% \begin{macro}{\f@tp} +% \begin{macro}{\f@tdim} +% Counts and a dimen. +% \begin{macrocode} +\newcount\f@tm \newcount\f@tn \newcount\f@tp \newdimen\f@tdim + +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\fonttable} +% \cs{fonttable}\marg{font} typesets a table of all the glyphs in the +% \meta{font} (e.g., auncl10). +% \begin{macrocode} +\newcommand*{\fonttable}[1]{% + \def\f@tfontname{#1}% + \bgroup + \f@tstartfont + \ftable + \egroup} + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\f@tstartfont} +% Sets up for a font table. +% \begin{macrocode} +\newcommand*{\f@tstartfont}{\font\f@ttestfont=\f@tfontname + \f@ttestfont \f@tsetbaselineskip + \ifdim\fontdimen6\f@ttestfont<10pt \rightskip=0pt plus 20pt + \else\rightskip=0pt plus 2em \fi + \spaceskip=\fontdimen2\f@ttestfont % space between words (\raggedright) + \xspaceskip=\fontdimen2\f@ttestfont \advance\xspaceskip + by\fontdimen7\f@ttestfont} + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\f@tsetbaselineskip} +% \begin{macrocode} +\newcommand*{\f@tsetbaselineskip}{\setbox0=\hbox{\f@tn=0 + \loop\char\f@tn \ifnum \f@tn<255 \advance\f@tn 1 \repeat} + \baselineskip=6pt \advance\baselineskip\ht0 \advance\baselineskip\dp0 } + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\f@toct} +% \cs{f@toct}\marg{onum} typesets the octal constant \meta{onum}. +% \begin{macrocode} +\newcommand*{\f@toct}[1]{\hbox{\rmfamily\'{}\kern-.2em\itshape + #1\/\kern.05em}} % octal constant +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\f@thex} +% \cs{f@thex}\marg{hnum} typesets the hexadecimal constant \meta{hnum}. +% \begin{macrocode} +\newcommand*{\f@thex}[1]{\hbox{\rmfamily\H{}\ttfamily#1}} % hexadecimal constant +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\f@tsetdigs} +% \cs{f@tsetdigs} +% \begin{macrocode} +\def\f@tsetdigs#1"#2{\gdef\h{#2}% \h=hex prefix; \0\1=corresponding octal + \f@tm=\f@tn \divide\f@tm by 64 \xdef\0{\the\f@tm}% + \multiply\f@tm by-64 \advance\f@tm by\f@tn \divide\f@tm by 8 \xdef\1{\the\f@tm}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\f@ttestrow} +% \cs{f@ttestrow} checks if there are any characters in the next block of +% 16 slots. +% \begin{macrocode} +\newcommand*{\f@ttestrow}{\setbox0=\hbox{\penalty 1\def\\{\char"\h}% + \\0\\1\\2\\3\\4\\5\\6\\7\\8\\9\\A\\B\\C\\D\\E\\F% + \global\f@tp=\lastpenalty}} % \f@tp=1 if none of the characters exist + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\ifhexoct} +% \begin{macro}{\hexoct} +% \begin{macro}{\nohexoct} +% Flag for (not) setting hex and octal numbers. +% \begin{macrocode} +\newif\ifhexoct +\newcommand*{\hexoct}{\hexocttrue} +\newcommand*{\nohexoct}{\hexoctfalse} +\hexoct + +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% +% +% \begin{macro}{\f@toddlinenum} +% \cs{f@toddline} +% \begin{macrocode} +\newcommand*{\f@toddline}{\cr + \noalign{\nointerlineskip} + \multispan{19}\hrulefill& + \setbox0=\hbox{\lower 2.3pt\hbox{\f@thex{\h x}}}\smash{\box0} + \cr + \noalign{\nointerlineskip}} + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\iff@tskipping} +% \begin{macro}{\f@tskippingtrue} +% \begin{macro}{\f@tskippingfalse} +% \begin{macrocode} +\newif\iff@tskipping + +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\fontrange} +% \cs{fontrange}\marg{low}\marg{high} sets the character range to be +% output. +% \begin{macrocode} +\newcommand*{\fontrange}[2]{% + \ifnum#1<#2\relax +% \end{macrocode} +% Set \cs{f@tlow} to the nearest multiple of 16 that is at or below \meta{low}, +% but first make sure that it will be at least 0. +% \begin{macrocode} + \ifnum#1<\z@ + \f@tm=\z@ + \else + \f@tm=#1 + \divide \f@tm \sixt@@n + \multiply \f@tm \sixt@@n + \fi + \edef\f@tlow{\the\f@tm} +% \end{macrocode} +% Set \cs{f@thigh} to the nearest multiple of 16 at or above \meta{high}, +% finally making sure that its maximum is 256. +% \begin{macrocode} + \f@tm=#2 + \divide \f@tm \sixt@@n + \advance \f@tm \@ne + \multiply \f@tm \sixt@@n + \ifnum \f@tm > \@cclvi \f@tm=\@cclvi \fi + \edef\f@thigh{\the\f@tm} + \else + \PackageError{fonttable}{% + Improper values for fontrange. Default values substituted}{\@ehc} + \def\f@tlow{0} \def\f@thigh{256} + \fi} +\fontrange{0}{256} + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\f@tloopforsixteen} +% \cs{f@tloopforsixteen} sets up a block of sixteen character slots. +% \begin{macrocode} +\newcommand*{\f@tloopforsixteen}{% + \ifnum\f@tn<\f@tlow \global\f@tn=\f@tlow\fi + \loop\f@tskippingfalse + \ifnum\f@tn<\f@thigh \f@tm=\f@tn \divide\f@tm \sixt@@n \chardef\next=\f@tm + \expandafter\f@tsetdigs\meaning\next \f@ttestrow + \ifnum\f@tp=\@ne \f@tskippingtrue \fi\fi + \iff@tskipping \global\advance\f@tn \sixt@@n \repeat} + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\f@tevenline} +% \begin{macro}{\f@tevenlinenonum} +% \cs{f@tevenline} gets next non-empty set of a block of 16 characters. +% It either calls \cs{f@tmorechart} to print them, or \cs{f@tendchart} to +% finish off the table if all 256 potential characters have been processed. +% +% \cs{f@tevenlinenonum} does something similar when no external numbers +% are printed. +% \begin{macrocode} +\newcommand*{\f@tevenline}{% + \f@tloopforsixteen + \ifnum\f@tn=\f@thigh \let\next=\f@tendchart\else\let\next=\f@tmorechart\fi + \next} +\newcommand*{\f@tevenlinenonum}{% + \f@tloopforsixteen + \ifnum\f@tn=\f@thigh + \\\hline + \else + \\\hline + \f@tmorechartnonum + \fi} + +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\f@tmorechart} +% \begin{macro}{\f@tmorechartnonum} +% \cs{f@tmorechart} sets two lines of the table, and \cs{f@tmorechartnonum} +% does the same when there are no external numbers. +% \begin{macrocode} +\newcommand*{\f@tmorechart}{\cr\noalign{\hrule\penalty5000} + \f@tchartline \f@toddline \f@tm=\1 \advance\f@tm 1 \xdef\1{\the\f@tm} + \f@tchartline \f@tevenline} +\newcommand*{\f@tmorechartnonum}{% + \f@tsimpleline \\ \hline + \f@tsimpleline \f@tevenlinenonum} + +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\f@tchartline} +% \begin{macro}{\f@tsimpleline} +% \cs{f@tchartline} does a line of the table, including external numbers, +% and \cs{f@tsimpleline} does an unnumbered line. +% \begin{macrocode} +\newcommand*{\f@tchartline}{&\f@toct{\0\1x}&&\:&&\:&&\:&&\:&&\:&&\:&&\:&&\:&&} +\newcommand*{\f@tsimpleline}{% + \:\f@tchartstrut& \: & \: & \: & \: & \: & \: & \:} + +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\f@tchartstrut} +% \begin{macro}{\ftablewidth} +% \begin{macro}{\fntcolwidth} +% \cs{f@tchartstrut} is a strut used in each table line. \cs{ftablewidth} is +% width of an externally numbered table. \cs{fntcolwidth} is the minimum +% width of a column in an unnumbered table. +% \begin{macrocode} +\newcommand*{\f@tchartstrut}{\lower4.5pt\vbox to14pt{}} +\newdimen\ftablewidth + \ftablewidth=\hsize +\newdimen\fntcolwidth + \setlength{\fntcolwidth}{0.08\ftablewidth} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\f@tcol} +% \begin{macro}{\f@tstartchartnonum} +% \cs{f@tstartchartnonum} is a table line of spaces, with no verticals. +% \begin{macrocode} +\newcommand*{\f@tcol}{% + \multicolumn{1}{c}{\hspace*{\fntcolwidth}}} +\newcommand*{\f@tstartchartnonum}{% + \f@tcol &\f@tcol &\f@tcol &\f@tcol &\f@tcol &\f@tcol &\f@tcol &\f@tcol} + +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\ftable} +% \begin{macro}{\f@tftablenum} +% \begin{macro}{\f@tftablenonum} +% \cs{ftable} sets a complete character table. The actual code is in either +% \cs{f@tftablenum} or \cs{f@tftablenonum} for externally numbered or +% plain tables, respectively. +% \changes{v1.0a}{2005/12/06}{Added missing zeroing of \cs{f@tn} to \cs{f@tftablenonum}} +% \begin{macrocode} +\newcommand*{\f@tftablenum}{$$\global\f@tn=\z@ + \halign to\ftablewidth\bgroup + \f@tchartstrut##\tabskip0pt plus10pt& + &\hfil##\hfil&\vrule##\cr + \lower6.5pt\null + &&&\f@toct0&&\f@toct1&&\f@toct2&&\f@toct3&&\f@toct4&&\f@toct5&&\f@toct6&&\f@toct7&% + \f@tevenline} +\newcommand*{\f@tftablenonum}{% + \global\f@tn=\z@ + \begin{tabular}{|c|c|c|c|c|c|c|c|} + \f@tstartchartnonum + \f@tevenlinenonum + \end{tabular}} +\newcommand*{\ftable}{\ifhexoct\f@tftablenum\else\f@tftablenonum\fi} + +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\f@tendchart} +% \cs{f@tendchart} sets the last line of an externally numbered table with +% the relevant hex digits. +% \begin{macrocode} +\newcommand*{\f@tendchart}{\cr\noalign{\hrule} + \raise11.5pt\null&&&\f@thex 8&&\f@thex 9&&\f@thex A&&\f@thex B& + &\f@thex C&&\f@thex D&&\f@thex E&&\f@thex F&\cr + \egroup$$\par} + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\decimals} +% \begin{macro}{\nodecimals} +% \begin{macro}{\:} +% Following \cs{decimals}, which is the default, decimal numbers are +% printed in the table. Following \cs{nodecimals} they are not printed. +% +% \cs{:} typesets a single glyph, possibly with its decimal slot number. +% \begin{macrocode} +\newcommand*{\nodecimals}{% +%%% the original + \def\:{\setbox0=\hbox{\char\f@tn}% + \ifdim\ht0>7.5pt\f@treposition + \else\ifdim\dp0>2.5pt\f@treposition\fi\fi + \box0\global\advance\f@tn 1 }} +\newcommand{\decimals}{% +%%% mine + \def\:{\setbox0=\hbox{\char\f@tn\,\rlap{\tiny \the\f@tn}}% + \ifdim\ht0>7.5pt\f@treposition + \else\ifdim\dp0>2.5pt\f@treposition\fi\fi + \box0\global\advance\f@tn 1 }} +\decimals + +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\f@treposition} +% \cs{f@treposition} +% \begin{macrocode} +\newcommand*{\f@treposition}{\setbox0=\vbox{\kern2pt\box0}\f@tdim=\dp0 + \advance\f@tdim 2pt \dp0=\f@tdim} + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\fonttext} +% \cs{fonttext}\marg{font} typesets \cs{text} using \meta{font} (e.g. +% auncl10). +% \begin{macrocode} +\def\fonttext#1{% + \def\f@tfontname{#1}% + \bgroup + \f@tstartfont + \knutext + \egroup} + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\regulartext} +% \cs{regulartext}\marg{fontspec} typesets \cs{knutext} using \meta{fontspec} +% (e.g., \cs{aunclfamily}). +% \begin{macrocode} +\def\regulartext#1{% + \bgroup + #1 + \knutext + \egroup} + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\knutext} +% Deathless prose from Knuth for testing a font. It includes +% \cs{moreknutext}, \cs{capknutext}, and \cs{knunames}. +% \begin{macrocode} +\def\knutext{{ +On November 14, 1885, Senator \& Mrs.~Leland Stanford called together +at their San Francisco mansion the 24~prominent men who had been +chosen as the first trustees of The Leland Stanford Junior University. +They handed to the board the Founding Grant of the University, which +they had executed three days before. This document---with various +amendments, legislative acts, and court decrees---remains as the +University's charter. In bold, sweeping language it stipulates that +the objectives of the University are ``to qualify students for +personal success and direct usefulness in life; and to promote the +publick welfare by exercising an influence in behalf of humanity and +civilization, teaching the blessings of liberty regulated by law, and +inculcating love and reverence for the great principles of government +as derived from the inalienable rights of man to life, liberty, and +the pursuit of happiness.'' + +\moreknutext + +\capknutext + +\knunames +\par}} + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@moreknutext} +% Some more text with a variety of ligatures and accents. +% \begin{macrocode} +\def\@moreknutext{?`But aren't Kafka's Schlo{\ss} and {\AE}sop's +{\OE}uvres often na{\"\i}ve vis-\`a-vis the d{\ae}monic ph{\oe}nix's +official r\^ole in fluffy souffl\'es? } + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@capknutext} +% \begin{macro}{\capknutext} +% Text using only capital letters and some punctutation. +% \begin{macrocode} +\newcommand{\@capknutext}{% +(!`THE DAZED BROWN FOX QUICKLY GAVE 12345--67890 JUMPS!)} +\let\capknutext\@capknutext + +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\@knunames} +% Lots of accents masquerading in personal names. +% \begin{macrocode} +\def\@knunames{ {\AA}ngel\aa\ Beatrice Claire + Diana \'Erica Fran\c{c}oise Ginette H\'el\`ene Iris + Jackie K\=aren {\L}au\.ra Mar{\'\i}a N\H{a}ta{\l}{\u\i}e {\O}ctave + Pauline Qu\^eneau Roxanne Sabine T\~a{\'\j}a Ur\v{s}ula + Vivian Wendy Xanthippe Yv{\o}nne Z\"azilie\par} + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\simpletext} +% \begin{macro}{\fulltext} +% \begin{macro}{\moreknutext} +% \begin{macro}{\knunames} +% \cs{simpletext} kills off \cs{moreknutext} and \cs{knunames}. +% \cs{fulltext} restores \cs{moreknutext} and \cs{knunames}. +% Make \cs{fulltext} the default. +% \begin{macrocode} +\newcommand*{\simpletext}{\let\moreknutext\relax \let\knunames\relax} +\newcommand*{\fulltext}{\let\moreknutext\@moreknutext \let\knunames\@knunames} +\simpletext + +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% The end of the package. +% \begin{macrocode} +%</pack> +% \end{macrocode} +% +% +% +% +% \Finale +\endinput + +%% \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 \~} + + diff --git a/Master/texmf-dist/source/latex/fonttable/fonttable.ins b/Master/texmf-dist/source/latex/fonttable/fonttable.ins new file mode 100644 index 00000000000..eab35370c5b --- /dev/null +++ b/Master/texmf-dist/source/latex/fonttable/fonttable.ins @@ -0,0 +1,72 @@ +%% fonttable.ins +%% Author: Peter Wilson (Herries Press) herries dot press at earthlink dot net +%% Copyright 2005 Peter R. Wilson +%% +%% This work may be distributed and/or modified under the +%% conditions of the Latex Project Public License, either +%% version 1.3 of this license or (at your option) any +%% later version. +%% The latest version of the license is in +%% http://www.latex-project.org/lppl.txt +%% and version 1.3 or later is part of all distributions of +%% LaTeX version 2003/06/01 or later. +%% +%% This work has the LPPL maintenance status "author-maintained". +%% +%% This work consists of the files listed in the README file. +%% +%% This file will generate fast loadable files from the doc files +%% in this work when run through LaTeX +%% +%% --------------------- start of docstrip commands -------------- +%% +\def\batchfile{fonttable.ins} +\input docstrip.tex +\preamble +------------------------------------------------------------------ + Author: Peter Wilson (Herries Press) herries dot press at earthlink dot net + Copyright 2005 Peter R. Wilson + + This work may be distributed and/or modified under the + conditions of the Latex Project Public License, either + version 1.3 of this license or (at your option) any + later version. + The latest version of the license is in + http://www.latex-project.org/lppl.txt + and version 1.3 or later is part of all distributions of + LaTeX version 2003/06/01 or later. + + This work has the LPPL maintenance status "author-maintained". + + This work consists of the files listed in the README file. +------------------------------------------------------------------ +\endpreamble + +\keepsilent + +%%% \Msg{*** Generating the driver file ***} +%%% \generateFile{fonttable.drv}{t}{\from{fonttable.dtx}{driver}} + +\Msg{*** Generating the LaTeX2e package files ***} +\generateFile{fonttable.sty}{t}{\from{fonttable.dtx}{pack}} + + +\Msg{***********************************************************} +\Msg{*} +\Msg{* To finish the installation you have to move these files} +\Msg{* into the LaTeX macro area:} +\Msg{* \space\space fonttable.sty} +\Msg{*} +\Msg{* Further installation instructions are in the README} +\Msg{*} +\Msg{* To produce the documentation run the files ending with} +\Msg{* `.dtx' through LaTeX.} +\Msg{* Process any name.idx file by:} +\Msg{* \space\space\space\space makeindex -s gind.ist name} +\Msg{* Process any name.glo file by:} +\Msg{* \space\space\space\space makeindex -s gglo.ist -o name.gls name.glo} +\Msg{*} +\Msg{* Happy TeXing} +\Msg{***********************************************************} + +\endinput |