diff options
author | Karl Berry <karl@freefriends.org> | 2007-10-07 21:14:14 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2007-10-07 21:14:14 +0000 |
commit | e25f78fe7772a0cd5edebd70d299ba5239451f98 (patch) | |
tree | 106ed83ab8ef14b2355e1db371cfc69c810e1d19 /Master/texmf-dist/source | |
parent | 405dcbdf3bacec10202779d05bd5db22db168c13 (diff) |
rm xfrac, per morten
git-svn-id: svn://tug.org/texlive/trunk@5134 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source')
-rw-r--r-- | Master/texmf-dist/source/latex/xfrac/xfrac.dtx | 955 | ||||
-rw-r--r-- | Master/texmf-dist/source/latex/xfrac/xfrac.ins | 55 |
2 files changed, 0 insertions, 1010 deletions
diff --git a/Master/texmf-dist/source/latex/xfrac/xfrac.dtx b/Master/texmf-dist/source/latex/xfrac/xfrac.dtx deleted file mode 100644 index 72c2105d2ec..00000000000 --- a/Master/texmf-dist/source/latex/xfrac/xfrac.dtx +++ /dev/null @@ -1,955 +0,0 @@ -%\iffalse meta-comment -% File `xfrac.dtx'. -% Copyright 2004 Morten H\o gholm. -% moho01ab@student.cbs.dk -% -% It 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 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 2003/12/01 or later. -% -% This work has the LPPL maintenance status "maintained". -% -% The Current Maintainer of this work is Morten H\o gholm. -% -% This work consists of the files xfrac.dtx, xfrac.ins and the -% derived file xfrac.sty. -% -%<package>\NeedsTeXFormat{LaTeX2e}[2003/12/01] -%<package>\ProvidesPackage{xfrac} -%<package> [2004/10/10 v0.11b Slashed Fractions (MH)] -% -%<*driver> -\RequirePackage{fix-cm} -\documentclass{ltxdoc} -\usepackage{xfrac} -\usepackage{nicefrac} -\usepackage[latin1]{inputenc} -\usepackage[T1]{fontenc} -\makeatletter -\newenvironment{TemplateInterfaceDescription}[1] - {\subsection{The Template Type `#1'}% - \begingroup - \@beginparpenalty\@M - \description - \def\TemplateArgument##1##2{\item[Arg: ##1]##2\par}% - \def\TemplateSemantics{\enddescription\endgroup - \subsubsection*{Semantics:}}% - } - {\par\bigskip} - -\newenvironment{TemplateDescription}[2] - {\subsection{The Template `#2' (type #1)}% - \subsubsection*{Attributes:}% - \begingroup - \@beginparpenalty\@M - \description - \def\TemplateKey##1##2##3##4{\item[##1 (##2)]##3% - \ifx\TemplateKey##4\TemplateKey\else -% \hskip0ptplus3em\penalty-500\hskip 0pt plus 1filll Default:~##4% - \hfill\penalty500\relax\qquad \hbox{}\hfill Default:~##4% - \nobreak\hskip-\parfillskip\hskip0pt\relax - \fi - \par}% - \def\TemplateSemantics{\enddescription\endgroup - \subsubsection*{Semantics \& Comments:}}% - } - {\par\bigskip} - -\renewcommand*\MakePrivateLetters{\makeatletter\catcode`\_=11\relax} -\makeatother - -\providecommand*\eTeX{\ensuremath{\varepsilon}-\kern-.125em\TeX} -\providecommand*\LaTeXplus{\LaTeXe$*$} -\providecommand*\key[1]{\textbf{#1}} -\providecommand*\package[1]{\textsf{#1}} -\newcommand*\switch[2]{{\fontfamily{#1}\selectfont #2}} - - -\begin{document} - \DocInput{xfrac.dtx} -\end{document} -%</driver> -% \fi -% -% \GetFileInfo{xfrac.sty} -% \CheckSum{320} -% -% \changes{v0.11}{2004/05/08}{Consistent naming} -% -% \changes{v0.10a}{2004/04/06}{Added a dependency of the latest -% \LaTeX{} release} -% \changes{v0.10a}{2004/04/06}{First version on \textsc{ctan}} -% -% \changes{v0.10}{2004/04/05}{First publicly available prototype -% implementation} -% -% \title{The \package{xfrac} package\thanks{This file has version number -% \fileversion, last revised \filedate.}} -% -% \author{Morten H\o gholm} -% \date{\filedate} -% -% \maketitle -% -% \begin{abstract} -% This package uses a template interface to produce nicely looking -% \emph{split level} fractions like \nicefrac{7}{9}\ldots{} -% ehrm\ldots{} I mean \sfrac{7}{9}. -% \end{abstract} -% -% \tableofcontents -% -% \section{A Bit of History} -% -% \subsection{The Past} -% -% One of the first exercises in \emph{The \TeX Book} is to design a -% macro for split level fractions. The solution shows a level of -% simplicity only rivaled by its fundamental design flaws: It can -% only be used when the text font and the math font are the same and -% worse still it uses a \emph{virgule} (a slash) for separating the -% two components. The proper symbol for that is a \emph{solidus} -% which sadly is absent from Computer Modern. It is however -% available in the European Computer Modern fonts, but I'll get back -% to that. -% -% \subsection{The Present} -% -% So how does people produce split level fractions nowadays? The -% answer is that they use the \package{nicefrac} package. For text -% it gives you \nicefrac{1}{2}, while the built-in -% \package{textcomp} symbol is \textonehalf. Hmmm, bad example due -% to the strange design of the EC fonts. Lets try Palatino instead. -% Then |\nicefrac{1}{2}| produces \switch{ppl}{\nicefrac{1}{2}} -% while the built-in symbol is \switch{ppl}{\textonehalf}, and it's -% plain to see the problems; a)~it uses the virgule instead of the -% solidus and b)~the font size of the numerator and the denominator -% is bigger than in the built-in symbol. We'll have to take care of -% this somehow. -% -% Another problem arises when the font has old style figures as the -% \package{eco} package provides for Computer Modern. Here we get -% results like \switch{cmor}{\nicefrac{1}{2}} and -% \switch{cmor}{\nicefrac{8}{9}}. We'll have to do better than that. -% -% That was text mode. I wonder what happens in math mode? -% \begin{verbatim} -% \[ -% \mathbf{ 2 \times \nicefrac{1}{2} } -% \times \mathit{2\times \nicefrac{1}{2}} -% \] -% \end{verbatim} -% \[ -% \mathbf{ 2 \times \nicefrac{1}{2} } -% \times \mathit{2\times \nicefrac{1}{2}} -% \] -% Whoops! Didn't see that coming, did you? I certainly didn't. -% -% -% This section sounds very much like me tearing the -% \package{nicefrac} package apart and well, yes, that's precisely -% what I'm doing. It \emph{is} simple and it \emph{does} produce -% somewhat acceptable results for Computer Modern, but if we want a -% single package for producing such fractions we need a radical new -% approach. -% -% -% -% -% \subsection{The Future} -% -% Fonts are wildly different; one macro that works fine for Computer -% Modern obviously doesn't work well at all in Palatino. For one we -% have to make the separator symbol configurable, and we need to -% take care of several details as well: font scaling of the -% numerator/denominator pair (ND), font selection of ND etc. If we -% are to have a single package for this in the future\footnote{As -% this is intended to be about the future, the \package{xfrac} package -% requires the \eTeX{} extensions.} we have to define a totally -% generic interface for the fraction commands and then adjust -% parameters depending on the current font. What you see in this -% prototype implementation of \package{xfrac} is just that. -% -% -% \section{The User Interface} -% -% The \package{xfrac} package defines a document command \cs{sfrac} -% with the following syntax: -% \begin{quote} -% \cs{sfrac}\oarg{instance}\marg{num}\oarg{sep}\marg{denom} -% \end{quote} -% Lets show a few examples: -% \begin{verbatim} -% \sfrac{1}{2}, $\sfrac{1}{2}$, -% $\mathbf{3\times\sfrac{1}{2}}$ -% \quad \fontfamily{ppl}\selectfont Palatino: \sfrac{1}{2} -% \quad \fontfamily{ptm}\selectfont Times: \sfrac{1}{2} -% \end{verbatim} -% \begin{quote} -% \sfrac{1}{2}, $\sfrac{1}{2}$, $\mathbf{3\times\sfrac{1}{2}}$ -% \quad \fontfamily{ppl}\selectfont Palatino: \sfrac{1}{2} -% \quad \fontfamily{ptm}\selectfont Times: \sfrac{1}{2} -% \end{quote} -% You'll notice something interesting: Not only does the \cs{sfrac} -% command work as it should in math mode, it also gets the job done -% for other fonts as well. -% -% \subsection{Text mode} -% -% The usual problem in text mode has a name: Computer Modern. The -% solidi of all the Computer Modern fonts leave a lot to be desired, -% although things are potentially looking better as the Latin Modern -% fonts are becoming more stable and widespread. As long as the -% default fonts are Computer Modern variants we must however work -% around this. One idea that comes to mind is to see what happens -% when you use a solidus from another font instead. Lets try with -% Times: -% \begin{quote} -% \DeclareInstance{xfrac}{cmr2}{text}{ -% slash-symbol-font = ptm, -% } -% ``You take \sfrac[cmr2]{1}{2} cup of sugar, \ldots'' -% \end{quote} -% That looks quite good actually, so it was probably very difficult -% to obtain that result. Nope, it was extremely easy---if you happen -% to know about \emph{instances}: -% \begin{verbatim} -% \DeclareInstance{xfrac}{cmr}{text}{ -% slash-symbol-font = ptm, -% } -% \end{verbatim} -% So we define an instance with the name `cmr' from the template -% `text' which in turn is of template type `xfrac'. You'll notice -% the `cmr' is also the name of the font family for Computer Modern -% Roman and the reasoning behind is that every font family should -% have it's own settings, and if a document command is to work well -% in that scheme, letting it use the name of the current font family -% seems like a good idea. Thus the \cs{sfrac} command checks to see -% whether an instance with same name as the current font family -% exists and uses it if the test is true; otherwise the default -% setting is used. Here we defined the instance to be used for the -% font family `cmr' and just told it to use the Times font for -% typesetting the slash symbol which turns out to be a solidus by -% default. -% -% The option \texttt{cm-recommended} which is loaded by default uses -% the Times solidus for Computer Modern Roman and Computer Modern -% Sans Serif and the Palatino solidus for Computer Modern Typewriter -% Type. This looks quite good. Should you however not want this you -% can use the option \texttt{cm-standard} which produces somewhat -% acceptable results using Computer Modern exclusively. -% -% So what about old style figures? If you use the \package{eco} -% package you might define an instance similar to this (`cmor' is -% the name of the roman font activated by \package{eco}): -% \DeclareInstance{xfrac}{cmor}{text}{ -% slash-symbol-font = ptm, -% numerator-font = cmr, -% denominator-font = cmr, -% } -% \begin{verbatim} -% \DeclareInstance{xfrac}{cmor}{text}{ -% slash-symbol-font = ptm, -% numerator-font = cmr, -% denominator-font = cmr, -% } -% \end{verbatim} -% We also use regular Computer Modern Roman for typesetting ND, so -% we end up with \switch{cmor}{\sfrac{1}{2}} and -% \switch{cmor}{\sfrac{8}{9}} instead of -% \switch{cmor}{\nicefrac{1}{2}} and \switch{cmor}{\nicefrac{8}{9}}. -% Much better. -% -% There are also situations where other tricks are useful. If you -% don't have the inferior and superior figures available in a font, -% or the font doesn't have a wider design for small font sizes, you -% can cheat by manually scaling the ND-pair. I got nice results for -% Adobe's Stempel Garamond (with small caps and old style figures) -% with the following setup: -% \begin{verbatim} -% \DeclareInstance{xfrac}{pegj}{text}{ -% numerator-font = pegx, -% denominator-font = pegx, -% scale-factor = .9, -% h-scale = 1.1, -% } -% \end{verbatim} -% We use the font family `pegx' (Stempel Garamond with real small -% caps) for typesetting the ND-pair. Additionally the key -% \key{scale-factor} specifies that the font size used for the -% ND-pair should be $0.9$ of the height of the solidus, and the key -% \key{h-scale} specifies that the ND-pair should be scaled an extra -% 10\% horizontally. -% -% Should you be so fortunate the have a font with inferior and -% superior figures like in the Monotype Janson example from Philipp -% Lehman's excellent \emph{The Font Installation Guide}. In that -% example Philipp defines the font families `mjn0' for the inferior -% figures and `mjn1' for the superior. Thus to get the \cs{sfrac} -% command to use them on the fly for the font family `mjnj' (Janson, -% old style figures) we would say -% \begin{verbatim} -% \DeclareInstance{xfrac}{mjnj}{text}{ -% numerator-font = mjn1, -% denominator-font = mjn0, -% scaling = false, -% numerator-bot-sep = 0pt, -% denominator-bot-sep = 0pt, -% } -% \end{verbatim} -% I think this example is a very clean way to do it. An alternative -% approach could be to use the keys \key{numerator-format} and -% \key{denominator-format} to process the arguments and let them -% determine what to do. -% -% As a side note Harald Harders was so kind to test it, and it -% \emph{does} actually work---I hadn't tested it myself. -% -% \subsection{Math Mode} -% -% In math mode the choices are a lot fewer because first of all -% \TeX{} comes with a built-in limitation of 16 math families. -% Additionally we will not need a solidus for typesetting split -% fractions in math, as tradition is to use a virgule instead. We -% define the basic `mathdefault' instance to simply use the math -% family in use when the instance is run. So if we're in normal math -% like |$\sfrac{7}{9}$| we simply get family~$-1$. If we're inside a -% \cs{mathbf} we're in family~$4$ (in the standard setup at least), -% and so the fraction is typeset with the same math family. Simple, -% isn't? -% -% You can also declare instances for the math families, but I really -% don't see why you would. If you do then name them according to the -% scheme `mathfam\meta{N}', where \meta{N} is the family number, and -% only do it if you \emph{really} know how to set up math fonts. -% That is, if \cs{DeclareMathAlphabet} is unbeknownst to you, then -% just don't go there. -% -% -% Another example: If we want \cs{sfrac} to produce split fractions -% without doing anything at all, we can choose the collection -% `plainmath', which is defined as -% \begin{verbatim} -% \DeclareCollectionInstance{plainmath}{xfrac}{mathdefault}{math}{ -% denominator-bot-sep = 0pt, -% numerator-bot-sep = 0pt, -% numerator-top-sep = \maxdimen, -% scaling = false, -% slash-right-mkern = 0mu, -% slash-left-mkern = 0mu, -% } -% \end{verbatim} -% This creates an alternative version of the instance `mathdefault' -% with settings as specified by the keys. In the default math setup -% \key{numerator-top-sep} is set to 0~pt, and here we set -% \key{numerator-bot-sep} to 0~pt as well, so in order to avoid -% over-specification (and an error message) we must set -% \key{numerator-top-sep} to \cs{maxdimen}. We activate (obeying -% normal scoping rules) it with: -% \begin{verbatim} -% \UseCollection{xfrac}{plainmath} -% \end{verbatim} -% Then |$\sfrac{8}{13}$| produces\begingroup -% \UseCollection{xfrac}{plainmath} -% $\sfrac{8}{13}$ and just typing |$8/13$| gives the same result: -% $8/13$. -% \endgroup -% -% -% \section{The Template Interface} -% -% \begin{TemplateInterfaceDescription}{xfrac} -% -% \TemplateArgument{1} -% {The numerator} -% -% \TemplateArgument{2} -% {The separator} -% -% \TemplateArgument{3} -% {The denominator} -% -% \TemplateSemantics -% -% Typesets arguments 1 and 3 separated by argument 2, which in text -% mode by default is a \emph{solidus}. This is taken from -% \package{textcomp} where it is denoted \cs{textfractionsolidus}. -% This is the character used for the ready made split level -% fractions such as \textonehalf---except in the (European) Computer -% Modern fonts. In math mode a \emph{virgule} is used instead as -% this is more appropriate and it is always available in the math -% fonts. The solidus is a text symbol only. -% -% \end{TemplateInterfaceDescription} -% -% \begin{TemplateDescription}{xfrac}{text} -% -% \TemplateKey{numerator-font}{n} -% {Font family specification to use for the numerator.} -% {\cs{f@family}} -% -% \TemplateKey{numerator-format}{f1} -% {Action to be taken on the numerator.} -% {Process argument unchanged} -% -% \TemplateKey{slash-symbol}{n} -% {The separator symbol. If not specified the default value will be -% used instead.} -% {Solidus (\cs{textfractionsolidus})} -% -% \TemplateKey{slash-symbol-font}{n} -% {Font family specification to use for the separator symbol.} -% {\cs{f@family}} -% -% \TemplateKey{slash-symbol-format}{f1} -% {Action to be taken on the separator symbol.} -% {Process argument unchanged} -% -% \TemplateKey{denominator-font}{n} -% {Font family specification to use for the denominator.} -% {\cs{f@family}} -% -% \TemplateKey{denominator-format}{f1} -% {Action to be taken on the denominator.} -% {Process argument unchanged} -% -% \TemplateKey{h-scale}{n} -% {Factor by which the numerator and denominator should be -% horizontally scaled. It should only be used if the real superior -% and inferior fonts are not available. For instance Stempel -% Garamond looks excellent if scaled 10\% extra horizontally, i.e., -% by a factor of 1.1.} -% {1} -% -% \TemplateKey{v-scale}{n} -% {Same as \key{h-scale} only vertically. Probably not of much use -% but added for completetion.} -% {1} -% -% \TemplateKey{scale-factor}{n} -% {Fraction of the size of \key{slash-symbol}. Used for setting the -% font size of numerator and denominator. Usually a value of app.\ -% \sfrac{5}{6} produces fine results. It should only be used if the -% real superior and inferior fonts are not available. As an example -% Stempel Garamond looks better if the factor is 0.9.} -% {0.83333} -% -% \TemplateKey{scale-relative}{s} -% {If set to `true' the font size of the numerator and denominator -% is scaled with respect to the height of the \key{slash-symbol}. If -% set to `false' the font is scaled with respect to the total height -% of the \key{slash-symbol}.} -% {true} -% -% \TemplateKey{scaling}{s} -% {If set to `true' the fonts are allowed to scale. If set to -% `false' they are not. See the `Janson' example for an application.} -% {true} -% -% \TemplateKey{numerator-top-sep}{L} -% {Dimension specifying the space between the top of the -% \key{slash-symbol} and the top of the numerator. If not specified, -% the depth of the solidus will be used, because this value will -% make the fraction look even.} -% {Unspecified} -% -% \TemplateKey{numerator-bot-sep}{L} -% {Dimension specifying the lift of the numerator from the -% baseline.} -% {Unspecified} -% -% \TemplateKey{denominator-bot-sep}{L} -% {Dimension specifying the lift of the denominator from the -% baseline.} -% {Unspecified} -% -% \TemplateKey{slash-right-kern}{L} -% {Dimension specifying the kerning between the \key{slash-symbol} -% and the numerator. If specified in terms of font specific -% dimensions such as \texttt{em} it is better to use -% \cs{DelayEvaluation}.} -% {\texttt{0pt}} -% -% \TemplateKey{slash-left-kern}{L} -% {Dimension specifying the kerning between the \key{slash-symbol} -% and the denominator. If specified in terms of font specific -% dimensions such as \texttt{em} it is better to use -% \cs{DelayEvaluation}.} -% {\texttt{0pt}} -% -% \TemplateKey{math-mode}{s} -% {Are we in math mode or not?} -% {false} -% -% \TemplateKey{phantom}{n} -% {A character that suits the common cases. As we would mostly want -% to use numbers in text mode we choose a `tall' number, while in -% math it is somewhat different.} -% {8} -% -% \TemplateSemantics -% -% This template is also the foundation for the `math' template. The -% keys \key{slash-right-mkern} and \key{slash-left-mkern} can only -% be used in math mode and are not shown here. -% -% \end{TemplateDescription} -% -% -% \begin{TemplateDescription}{xfrac}{math} -% -% \TemplateKey{numerator-font}{n} -% {Font family specification to use for the numerator.} -% {\cs{number}\cs{fam}} -% -% \TemplateKey{slash-symbol}{n} -% {The separator symbol. If not specified the default value will be -% used instead.} -% {Virgule ($/$)} -% -% \TemplateKey{slash-symbol-font}{n} -% {Font family specification to use for the separator symbol.} -% {\cs{number}\cs{fam}} -% -% \TemplateKey{denominator-font}{n} -% {Font family specification to use for the denominator.} -% {\cs{number}\cs{fam}} -% -% \TemplateKey{scale-factor}{n} -% {Fraction of the size of \key{slash-symbol}. In math mode we -% cannot rely on the fonts to be able to scale, but giving a default -% scale of 0.7 fits into the regular size changing scheme---the -% default scheme has values $(D,T,S,SS)=(1,1,0.7,0.5)$ whereas we -% with a default \key{scale-factor} of 0.7 get $(1,1,0.7,0.49)$. -% That's close enough.} -% {0.7} -% -% \TemplateKey{scale-relative}{s} -% {If set to `true' the font size of the numerator and denominator -% is scaled with respect to the height of the \key{slash-symbol}. If -% set to `false' the font is scaled with respect to the total height -% of the \key{slash-symbol}.} -% {false} -% -% \TemplateKey{scaling}{s} -% {If set to `true' the fonts are allowed to scale. If set to -% `false' they are not. See the `plainmath' example for an application.} -% {true} -% -% \TemplateKey{numerator-top-sep}{L} -% {Dimension specifying the space between the top of the -% \key{slash-symbol} and the top of the numerator. If not specified, -% the depth of the virgule will be used, because this value will -% make the fraction look even.} -% {\texttt{0pt}} -% -% \TemplateKey{denominator-bot-sep}{L} -% {Dimension specifying the lift of the denominator from the -% baseline.} -% {\texttt{0pt}} -% -% \TemplateKey{slash-right-mkern}{n} -% {Same as \key{slash-right-kern} but for math mode only and should -% be specified in \texttt{mu} units. This is because \package{calc} -% can't use mu-expressions.} -% {\texttt{-2mu}} -% -% \TemplateKey{slash-left-mkern}{n} -% {Same as \key{slash-left-kern} but for math mode only and should -% be specified in \texttt{mu} units. This is because \package{calc} -% can't use mu-expressions.} -% {\texttt{-1mu}} -% -% \TemplateKey{math-mode}{s} -% {Are we in math mode or not?} -% {true} -% -% \TemplateKey{phantom}{n} -% {A character that suits the common cases. In math we have a high -% risk of using a parenthesis, so we choose that. Text mode is -% another story.} -% {(} -% -% \TemplateSemantics -% -% This template is a restricted version of the `text' template. Only -% the keys that are different from the `text' template are shown -% here. Also bear in mind that the attributes \key{slash-left-kern} -% and \key{slash-right-kern} have no meaning in this template. -% -% \end{TemplateDescription} -% -% -% -% \StopEventually{} -% -% \section{Implementation} -% -% We set up the programming interface. We need the -% \package{template} and \package{xparse} packages from the -% experimental code, more precisely from the `xbase' bundle. The -% other packages are well-known. -% \begin{macrocode} -\RequirePackage{textcomp,graphicx,amstext} -\RequirePackage{template}[2001/07/25] -\RequirePackage{xparse}[2000/01/29] -% \end{macrocode} -% \changes{v0.10b}{2004/04/07}{Now uses \cs{InternalSyntaxOn}} With -% v0.10b I introduced the new internal syntax using |_| and |:|. -% White space is ignored as well, so any |@|-signs in the code are -% remnants of old \LaTeX{} coding conventions. -% \begin{macrocode} -\InternalSyntaxOn -% \end{macrocode} -% Some programming tools which will probably be included in the -% \LaTeX3 API. -% \begin{macrocode} -\@ifundefined{else:}{\let\else:=\else}{} -\@ifundefined{fi:}{\let\fi:=\fi}{} -\@ifundefined{if_dim:w}{\let\if_dim:w =\ifdim}{} -\@ifundefined{if_mathmode:}{\let\if_mathmode: =\ifmmode}{} -\def\xfrac_namelet:cN #1#2{% - \expandafter\let\csname#1\endcsname#2} -% \end{macrocode} -% Boolean data type. No error checking! -% \begin{macrocode} -\def\xfrac_new_boolean:c #1{ - \expandafter\@ifdefinable\csname if_boolean_#1:\endcsname{ - \@namedef{boolean_#1_true:} - {\xfrac_namelet:cN{if_boolean_#1:}\iftrue}% - \@namedef{boolean_#1_false:} - {\xfrac_namelet:cN{if_boolean_#1:}\iffalse}% - \@nameuse{boolean_#1_false:}% - } -} -\def\xfrac_set_boolean:cc #1#2{ \@nameuse{boolean_#1_#2:}} -\def\if_boolean:cTF #1{ - \@nameuse{if_boolean_#1:} - \expandafter\@firstoftwo - \else: - \expandafter\@secondoftwo - \fi: -} -\def\if_boolean:cT #1#2{ \if_boolean:cTF {#1}{#2}{} } -\def\if_boolean:cF #1#2{ \if_boolean:cTF {#1}{}{#2} } -% \end{macrocode} -% -% An option: -% \begin{macrocode} -\xfrac_new_boolean:c {cm_recommended} -\DeclareOption{cm-recommended} - { \xfrac_set_boolean:cc {cm_recommended}{true} } -\DeclareOption{cm-standard} - { \xfrac_set_boolean:cc {cm_recommended}{false} } -\ExecuteOptions{cm-recommended} -\ProcessOptions\relax -% \end{macrocode} -% -% \begin{macro}{\l_xfrac_temp_box} -% \begin{macro}{\l_xfrac_slash_box} -% We use two box registers. We could probably get away with using -% scratch boxes, but this feels safer. Anyway we're all using -% \eTeX{} now so why not? -% \begin{macrocode} -\newsavebox\l_xfrac_temp_box -\newsavebox\l_xfrac_slash_box -% \end{macrocode} -% \end{macro} -% \end{macro} -% -% \subsection{The Templates} -% Then we declare the template. -% \begin{macrocode} -\DeclareTemplateType{xfrac}{3} -% \end{macrocode} -% The template type `text'. -% \begin{macrocode} -\DeclareTemplate{xfrac}{text}{3}{ - numerator-font = n [\f@family] \xfrac_numeratorfont:, - numerator-format = f1 [#1] \xfrac_numeratorformat:n, - slash-symbol = n [\textfractionsolidus] - \xfrac_slashsymbol:, - slash-symbol-font = n [\f@family] \xfrac_slashsymbolfont:, - slash-symbol-format = f1 [#1] \xfrac_slashsymbolformat:n, - denominator-font = n [\f@family] \xfrac_denominatorfont:, - denominator-format = f1 [#1] \xfrac_denominatorformat:n, - h-scale = n [1] \xfrac_hscale:, - v-scale = n [1] \xfrac_vscale:, - scale-factor = n [.83333] \xfrac_scalefactor:, - scale-relative = s [true] - { \def \xfrac_relscale: {\ht\l_xfrac_slash_box}} - { \def \xfrac_relscale: { - \dimexpr \ht\l_xfrac_temp_box + \dp\l_xfrac_temp_box\relax} }, - scaling = s [true] - {\def\xfrac_fontscale: { - \fontsize{\xfrac_scalefactor: \xfrac_relscale:}{\z@}\selectfont}} - { \let\xfrac_fontscale: \relax }, -% \end{macrocode} -% Here comes some fake lengths. I've decided to call them with the -% suffix |_fdim|, so that I will remember to use them right. -% \begin{macrocode} - numerator-top-sep = L [\maxdimen] \l_xfrac_numeratortopsep_fdim, - numerator-bot-sep = L [\maxdimen] \l_xfrac_numeratorbotsep_fdim, - denominator-bot-sep = L [\maxdimen] \l_xfrac_denominatorbotsep_fdim, - slash-right-kern = L [0pt] \l_xfrac_slashrightsep_fdim, - slash-left-kern = L [0pt] \l_xfrac_slashleftsep_fdim, -% \end{macrocode} -% As calc can't handle |\muskip|s, I've made them of type `n' and -% added the suffix |_fmu| to indicate `fake mu skip'. -% \begin{macrocode} - slash-right-mkern = n [-2mu] \l_xfrac_slashrightmsep_fmu, - slash-left-mkern = n [-1mu] \l_xfrac_slashleftmsep_fmu, - math-mode = s [false] { \let\xfrac_math: \ensuremath } - { \let\xfrac_math: \@firstofone }, - phantom = n [8] \xfrac_phantom:, -}{ - \DoParameterAssignments - \if_mathmode: - \let\xfrac_textormath: \text - \edef\xfrac_slashfontchange: {\fam\xfrac_slashsymbolfont: } - \edef\xfrac_numeratorfontchange: {\fam\xfrac_numeratorfont: } - \edef\xfrac_denominatorfontchange: {\fam\xfrac_denominatorfont: } - \else: - \let\xfrac_textormath: \mbox - \def\xfrac_slashfontchange: { - \fontfamily{\xfrac_slashsymbolfont: }\selectfont} - \def\xfrac_numeratorfontchange: { - \fontfamily{\xfrac_numeratorfont: }\selectfont} - \def\xfrac_denominatorfontchange: { - \fontfamily{\xfrac_denominatorfont: }\selectfont} - \fi: - \xfrac_textormath: { -% \end{macrocode} -% \changes{v0.11a}{2004/08/24}{Added \cs{m@th}} -% \begin{macrocode} - \m@th - \sbox\l_xfrac_temp_box {\xfrac_math: {\vphantom{(}}} - \sbox\l_xfrac_slash_box { - \xfrac_math: { - \xfrac_slashsymbolformat:n { - \xfrac_math: { - \xfrac_slashfontchange: - \IfValueTF{#2}{#2}{\xfrac_slashsymbol: } - } - } - } - } - \if_dim:w \l_xfrac_numeratortopsep_fdim = \maxdimen - \if_dim:w \l_xfrac_numeratorbotsep_fdim = \maxdimen -% \end{macrocode} -% Both unspecified. -% \begin{macrocode} - \def\xfrac_next: {\raisebox{\ht\l_xfrac_slash_box - -\dp\l_xfrac_slash_box-\height}} - \else: -% \end{macrocode} -% Use only bottom specification. -% \begin{macrocode} - \def\xfrac_next: {\raisebox{\l_xfrac_numeratorbotsep_fdim }} - \fi: - \else: -% \end{macrocode} -% Use only top specification. -% \begin{macrocode} - \if_dim:w \l_xfrac_numeratorbotsep_fdim = \maxdimen - \def\xfrac_next: { - \raisebox{ - \ht\l_xfrac_slash_box - \l_xfrac_numeratortopsep_fdim - - \height - } - } - \else: -% \end{macrocode} -% Over-specification. -% \begin{macrocode} - \PackageError{xfrac} - {You~ have~ specified~ both~ numerator-top-sep~ and~ - numerator-bot-sep} - {I~ will~ pretend~ you~ didn't~ specify~ any~ of ~them} - \def\xfrac_next: {\raisebox{\ht\l_xfrac_slash_box - -\dp\l_xfrac_slash_box-\height}} - \fi: - \fi: -% \end{macrocode} -% Typeset the numerator -% \begin{macrocode} - \xfrac_next: { - \xfrac_fontscale: - \xfrac_numeratorformat:n { - \scalebox{\xfrac_hscale: }[\xfrac_vscale: ] - { \xfrac_math:{ \xfrac_numeratorfontchange: - {\vphantom{\xfrac_phantom: }#1} } } - } - } - \xfrac_math: { - \if_mathmode: - \mskip \l_xfrac_slashrightmsep_fmu - \else: - \hskip \l_xfrac_slashrightsep_fdim - \fi: } -% \end{macrocode} -% Typeset the separator -% \begin{macrocode} - \usebox\l_xfrac_slash_box - \xfrac_math: { - \if_mathmode: - \mskip \l_xfrac_slashleftmsep_fmu - \else: - \hskip \l_xfrac_slashleftsep_fdim - \fi: } -% \end{macrocode} -% Typeset the denominator -% \begin{macrocode} - \if_dim:w \l_xfrac_denominatorbotsep_fdim=\maxdimen\relax - \def\xfrac_next: {\raisebox{-\dp\l_xfrac_slash_box}} - \else: - \def\xfrac_next: {\raisebox{\l_xfrac_denominatorbotsep_fdim}} - \fi: - \xfrac_next: { - \xfrac_fontscale: - \xfrac_denominatorformat:n { - \scalebox{\xfrac_hscale:}[\xfrac_vscale:] - { \xfrac_math: { \xfrac_denominatorfontchange: - {\vphantom{\xfrac_phantom: }#3} } } - } - } - } -} -% \end{macrocode} -% -% Since math and text mode are wildly different entities we define a -% separate template for each. You already saw the `text' template, -% and here is the `math' template. -% \begin{macrocode} -\DeclareRestrictedTemplate{xfrac}{math}{text}{ - numerator-font = \number\fam, - slash-symbol = /, - slash-symbol-font = \number\fam, - denominator-font = \number\fam, - scale-factor = 0.7, - scale-relative = false, - scaling = true, - numerator-top-sep = 0pt, - denominator-bot-sep = 0pt, - math-mode = true, - phantom = (, -} -% \end{macrocode} -% -% \subsection{The Default Instances} -% -% For the default instances we just use the relevant templates with -% the default settings. -% -% The default `text' instance. -% \begin{macrocode} -\DeclareInstance{xfrac}{default}{text}{ } -% \end{macrocode} -% The default `math' instance. -% \begin{macrocode} -\DeclareInstance{xfrac}{mathdefault}{math}{ } -% \end{macrocode} -% \begin{macrocode} -\DeclareCollectionInstance{plainmath}{xfrac}{mathdefault}{math}{ - denominator-bot-sep=0pt, - numerator-bot-sep=0pt, - numerator-top-sep=\maxdimen, - scale-factor = 1, - scale-relative = false, - scaling = true, - slash-right-mkern=0mu, - slash-left-mkern=0mu, -} -% \end{macrocode} -% Default Computer Modern setup. Far from optimal, but better than -% nothing. -% \begin{macrocode} -\DeclareInstance{xfrac}{cmr}{text}{ - denominator-bot-sep=0pt, - numerator-top-sep=\DelayEvaluation{.2ex}, - slash-left-kern=\DelayEvaluation{-.1em}, - slash-right-kern=\DelayEvaluation{-.1em}, -} -\DeclareInstance{xfrac}{cmss}{text}{ - denominator-bot-sep=0pt, - numerator-top-sep=\DelayEvaluation{.2ex}, - slash-left-kern=\DelayEvaluation{-.1em}, - slash-right-kern=\DelayEvaluation{-.1em}, -} -\DeclareInstance{xfrac}{cmtt}{text}{ - denominator-bot-sep=0pt, - numerator-top-sep=\DelayEvaluation{.2ex}, - slash-left-kern=\DelayEvaluation{-.1em}, - slash-right-kern=\DelayEvaluation{-.1em}, -} -% \end{macrocode} -% We can do better for the Computer Modern fonts. For the roman -% family we choose Times. -% \begin{macrocode} -\DeclareCollectionInstance{cm-recommended}{xfrac}{cmr}{text}{ - slash-symbol-font = ptm, -} -% \end{macrocode} -% Times also blends well with `cmss'. -% \begin{macrocode} -\DeclareCollectionInstance{cm-recommended}{xfrac}{cmss}{text}{ - slash-symbol-font = ptm, -} -% \end{macrocode} -% For `cmtt' we choose the Palatino solidus as it is slightly -% thicker than Times. -% \begin{macrocode} -\DeclareCollectionInstance{cm-recommended}{xfrac}{cmtt}{text}{ - slash-symbol-font = ppl, -} -% \end{macrocode} -% If we used the \texttt{cm-recommended} setup we activate it. -% \begin{macrocode} -\if_boolean:cT {cm_recommended} - {\UseCollection{xfrac}{cm-recommended}} -% \end{macrocode} -% -% \subsection{The User Command} -% -% Currently there is just a single user command. \cs{sfrac} takes -% two mandatory arguments: numerator and denominator. It can take an -% optional argument between the mandatory specifying the separator -% like this: -% \begin{verbatim} -% \sfrac{7}[/]{12} -% \end{verbatim} -% It also has an optional argument that comes before the first -% mandatory argument. If used it will use that instance instead of -% the auto-detected one, so a user who has defined the instance -% `cmr2' may use -% \begin{verbatim} -% \sfrac[cmr2]{7}{12} -% \end{verbatim} -% and get the settings from `cmr2' instead of the settings of the -% current font family. -% \begin{macrocode} -\DeclareDocumentCommand \sfrac {o mom}{ - \if_mathmode: - \edef\xfrac_next: {mathfam\number\fam} - \IfExistsInstanceTF{xfrac}{\xfrac_next: } - {\UseInstance{xfrac}{\xfrac_next: }} - {\UseInstance{xfrac}{mathdefault}} - {#2}{#3}{#4} - \else: - \IfExistsInstanceTF{xfrac}{#1} - {\UseInstance{xfrac}{#1}{#2}{#3}{#4}} - {\IfExistsInstanceTF{xfrac}{\f@family} - {\UseInstance{xfrac}{\f@family}} - {\UseInstance{xfrac}{default}} - {#2}{#3}{#4} - } - \fi: -} -% \end{macrocode} -% -% \Finale -\endinput diff --git a/Master/texmf-dist/source/latex/xfrac/xfrac.ins b/Master/texmf-dist/source/latex/xfrac/xfrac.ins deleted file mode 100644 index 430932b4263..00000000000 --- a/Master/texmf-dist/source/latex/xfrac/xfrac.ins +++ /dev/null @@ -1,55 +0,0 @@ -%% -%% This file will generate fast loadable files and documentation -%% driver files from the doc files in this package when run through -%% LaTeX or TeX. -%% -%% File `xfrac.ins'. -%% Copyright 2004 Morten H\o gholm. -%% moho01ab@student.cbs.dk -%% -%% It 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 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 2003/12/01 or later. -%% -%% This work has the LPPL maintenance status "maintained". -%% -%% The Current Maintainer of this work is Morten H\o gholm. -%% -%% This work consists of the files xfrac.dtx, xfrac.ins and the -%% derived file xfrac.sty. -%% -%% --------------- start of docstrip commands ------------------ -%% -\input docstrip - -\keepsilent - -\preamble - -It 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 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 2003/12/01 or later. - -This work has the LPPL maintenance status "maintained". - -The Current Maintainer of this work is Morten H\string\o gholm. - -This work consists of the files xfrac.dtx, xfrac.ins and the -derived file xfrac.sty. - -\endpreamble - -%%%%%%%%%%%%%%% -\generate{% - \file{xfrac.sty}{\from{xfrac.dtx}{package}}% -} - -\endbatchfile |