diff options
Diffstat (limited to 'Master/texmf-dist/tex/fontinst/latinmtx/lsfake.mtx')
-rw-r--r-- | Master/texmf-dist/tex/fontinst/latinmtx/lsfake.mtx | 409 |
1 files changed, 409 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/fontinst/latinmtx/lsfake.mtx b/Master/texmf-dist/tex/fontinst/latinmtx/lsfake.mtx new file mode 100644 index 00000000000..ad942a87a7e --- /dev/null +++ b/Master/texmf-dist/tex/fontinst/latinmtx/lsfake.mtx @@ -0,0 +1,409 @@ +%%% ==================================================================== +%%% @TeX-font-metrics-file{ +%%% author = "Lars Hellstr{\"o}m", +%%% version = "1.923", +%%% date = "2003-03-29", +%%% time = "16:17:30 +01:00", +%%% filename = "lsfake.mtx", +%%% email = "fontinst@tug.org", +%%% URL = "http://www.tug.org/applications/fontinst/", +%%% checksum = "", +%%% codetable = "ISO/ASCII", +%%% keywords = "metrics, TeX, PostScript", +%%% supported = "yes", +%%% abstract = "This is a font metrics file, for use with the +%%% fontinst utility. It fakes latin smallcaps.", +%%% package = "fontinst", +%%% dependencies = "fontinst.sty, fontdoc.sty, lubuild.mtx", +%%% } +%%% ==================================================================== + +\relax + +\documentclass[twocolumn]{article} + +\usepackage{fontdoc}[2002/03/01] +\showbranches + +\newcommand{\IEint}[1]{\ensuremath{\TypesetIntegerExpression{\int{#1}}}} + +\title{Faking smallcaps} +\author{Lars Hellstr\"om} +\date{5 January 2003\\Version 1.923} + +\begin{document} +\maketitle + +\section{Introduction} + +This file is used to fake small capitals (the \texttt{s} case) for a +font by shrinking the full capitals (the \texttt{u} case) by a +certain factor (\IEint{smallcapsscale}). This effectively changes the +weight of the font so that it becomes lighter, but that effect is +(for scaling factors near the default value) not too large, even +though it is quite visible. + +Optimal distance between two letters generally grows slower than the +dimensions of the letters themself. Conversely, to linearly shrink a +line of text usually places the letters a bit too close. To counteract +that, the \textbf{Small glyph} commands used below insert a bit of +extra space (\IEint{smallcapsextraspace}) before and after the actual +glyph. + +Besides the letters, there is also manufactured a special set of +diacritical marks (skrunk by the same factor as the letters), with +names such as \texttt{Acutesmall}. These are meant to be used as +accent characters in a font where the fake small capitals are used as +small letters, so that clashes within a single character when \TeX's +\verb|\accent| primitive is used can be less pronounced. + + +\metrics + +\needsfontinstversion{1.910} +\usemtxpackage{lubuild} + +\ProvidesMtxPackage{lsfake} + + +\begincomment +\section{Some commands and default values} + +\endcomment + + + +% A c&sc glyph is created by shrinking the cap glyph, and adding extra +% space. + +\setcommand\cscglyph#1{ + \movert{\int{smallcapsextraspace}} + \glyph{#1}{\int{smallcapsscale}} + \movert{\int{smallcapsextraspace}} +} +\begincomment +A \textbf{Small glyph} is mainly the special case of a \textbf{Glyph} +when the glyph is scaled +$\TypesetIntegerExpression{\int{smallcapsscale}}$. This is used to +fake smallcaps from full capitals. The exact meaning of +``\textbf{Small glyph} `\#1'\,'' is +\begin{quotation}\cscglyph{\macroparameter{1}}\end{quotation} + +\resetcommand\cscglyph#1{% + \Bheading{Small glyph} `\TypesetStringExpression{#1}'% +} +\endcomment + +\setcommand\fakecscglyph#1#2{ + \setglyph{#1small} + \cscglyph{#2} + \setleftrightkerning{#1small}{#2}{\int{smallcapskerning}} + \endsetglyph +} +% If you supply a definition of \fakecscglyph which has #1medium +% instead of #1small, then you can use this file to fake medium +% capitals instead of small capitals. + + +\setint{smallcapsscale}{800} +\setint{smallcapskerning}{900} + +\ifisint{monowidth}\then + \setint{smallcapsextraspace} + {\half{\scale{\width{x}}{\sub{1000}{\int{smallcapsscale}}}}} +\Else + \setint{smallcapsextraspace}{25} +\Fi + + + +\begincomment +\section{Unaccented letters} +\endcomment + +\fakecscglyph{A}{A} +\fakecscglyph{AE}{AE} +\fakecscglyph{B}{B} +\fakecscglyph{C}{C} +\fakecscglyph{D}{D} +\fakecscglyph{Eth}{Eth} +\fakecscglyph{E}{E} +\fakecscglyph{F}{F} +\fakecscglyph{G}{G} +\fakecscglyph{H}{H} +\fakecscglyph{I}{I} +\fakecscglyph{J}{J} +\fakecscglyph{K}{K} +\fakecscglyph{Lslash}{Lslash} +\fakecscglyph{L}{L} +\fakecscglyph{M}{M} +\fakecscglyph{N}{N} +\fakecscglyph{Ng}{Ng} +\fakecscglyph{O}{O} +\fakecscglyph{OE}{OE} +\fakecscglyph{Oslash}{Oslash} +\fakecscglyph{P}{P} +\fakecscglyph{Q}{Q} +\fakecscglyph{R}{R} +\fakecscglyph{S}{S} +\fakecscglyph{T}{T} +\fakecscglyph{Thorn}{Thorn} +\fakecscglyph{U}{U} +\fakecscglyph{V}{V} +\fakecscglyph{W}{W} +\fakecscglyph{X}{X} +\fakecscglyph{Y}{Y} +\fakecscglyph{Z}{Z} + +\setglyph{Dbarsmall} + \glyph{Ethsmall}{1000} + \setleftrightkerning{Dbarsmall}{Ethsmall}{1000} +\endsetglyph + + + + +\begincomment +\section{Accented letters} +\endcomment + + +\fakecscglyph{Aacute}{Aacute} +\fakecscglyph{Abreve}{Abreve} +\fakecscglyph{Acircumflex}{Acircumflex} +\fakecscglyph{Adieresis}{Adieresis} +\fakecscglyph{Agrave}{Agrave} +\fakecscglyph{Aogonek}{Aogonek} +\fakecscglyph{Aring}{Aring} +\fakecscglyph{Atilde}{Atilde} +\fakecscglyph{Cacute}{Cacute} +\fakecscglyph{Ccaron}{Ccaron} +\fakecscglyph{Ccedilla}{Ccedilla} +\fakecscglyph{Dcaron}{Dcaron} +\fakecscglyph{Eacute}{Eacute} +\fakecscglyph{Ecaron}{Ecaron} +\fakecscglyph{Ecircumflex}{Ecircumflex} +\fakecscglyph{Edieresis}{Edieresis} +\fakecscglyph{Egrave}{Egrave} +\fakecscglyph{Eogonek}{Eogonek} +\fakecscglyph{Gbreve}{Gbreve} +\fakecscglyph{Iacute}{Iacute} +\fakecscglyph{Icircumflex}{Icircumflex} +\fakecscglyph{Idieresis}{Idieresis} +\fakecscglyph{Idotaccent}{Idotaccent} +\fakecscglyph{Igrave}{Igrave} +\fakecscglyph{Lacute}{Lacute} +\fakecscglyph{Lcaron}{Lcaron} +\fakecscglyph{Nacute}{Nacute} +\fakecscglyph{Ncaron}{Ncaron} +\fakecscglyph{Ntilde}{Ntilde} +\fakecscglyph{Oacute}{Oacute} +\fakecscglyph{Ocircumflex}{Ocircumflex} +\fakecscglyph{Odieresis}{Odieresis} +\fakecscglyph{Ograve}{Ograve} +\fakecscglyph{Ohungarumlaut}{Ohungarumlaut} +\fakecscglyph{Otilde}{Otilde} +\fakecscglyph{Racute}{Racute} +\fakecscglyph{Rcaron}{Rcaron} +\fakecscglyph{Sacute}{Sacute} +\fakecscglyph{Scaron}{Scaron} +\fakecscglyph{Scedilla}{Scedilla} +\fakecscglyph{Tcaron}{Tcaron} +\fakecscglyph{Tcedilla}{Tcedilla} +\fakecscglyph{Uacute}{Uacute} +\fakecscglyph{Ucircumflex}{Ucircumflex} +\fakecscglyph{Udieresis}{Udieresis} +\fakecscglyph{Ugrave}{Ugrave} +\fakecscglyph{Uhungarumlaut}{Uhungarumlaut} +\fakecscglyph{Uring}{Uring} +\fakecscglyph{Yacute}{Yacute} +\fakecscglyph{Ydieresis}{Ydieresis} +\fakecscglyph{Zacute}{Zacute} +\fakecscglyph{Zcaron}{Zcaron} +\fakecscglyph{Zdotaccent}{Zdotaccent} + + +\begincomment +\section{Shrunk accents} +\endcomment + +% A c&sc accent is created by moving a shrunk accent up by the +% difference between a scaled x and a scaled X. + +\setcommand\cscaccent#1{ + \moveup{\scale{\int{xheight}}{\sub{1000}{\int{smallcapsscale}}}} + \cscglyph{#1} + \moveup{\scale{\int{xheight}}{\sub{\int{smallcapsscale}}{1000}}} +} +\begincomment\medskip +A \textbf{Shrunk accent} is a \textbf{Small glyph} whose vertical +position has been adjusted so that the +$\TypesetIntegerExpression{\int{xheight}}$ position of the original +accent coincides with that of the shrunk accent. Without this +adjustment, it would instead be the baselines that would coincide, +but such an accent would be too low. The exact meaning of +``\textbf{Shrunk accent} `\#1'\,'' is +\begin{quotation}\cscaccent{\macroparameter{1}}\end{quotation} + +\resetcommand\cscaccent#1{% + \Bheading{Shrunk accent} `\TypesetStringExpression{#1}'% +} +\endcomment + + +\setglyph{Acutesmall} + \cscaccent{Acute} +\endsetglyph + +\setglyph{Gravesmall} + \cscaccent{Grave} +\endsetglyph + +\setglyph{Circumflexsmall} + \cscaccent{Circumflex} +\endsetglyph + +\setglyph{Tildesmall} + \cscaccent{Tilde} +\endsetglyph + +\setglyph{Dieresissmall} + \cscaccent{Dieresis} +\endsetglyph + +\setglyph{Brevesmall} + \cscaccent{Breve} +\endsetglyph + +\setglyph{Dotaccentsmall} + \cscaccent{Dotaccent} +\endsetglyph + +\setglyph{Caronsmall} + \cscaccent{Caron} +\endsetglyph + +\setglyph{Hungarumlautsmall} + \cscaccent{Hungarumlaut} +\endsetglyph + +\setglyph{Ringsmall} + \cscaccent{Ring} +\endsetglyph + +\setglyph{Macronsmall} + \cscaccent{Macron} +\endsetglyph + +\setglyph{Cedillasmall} + \cscglyph{Cedilla} +\endsetglyph + +\setglyph{Ogoneksmall} + \cscglyph{Ogonek} +\endsetglyph + + + +\begincomment +\section{Miscellaneous glyphs} +\endcomment + + +\setglyph{dotlessIsmall} + \glyph{Ismall}{1000} +\endsetglyph +\setleftrightkerning{dotlessIsmall}{Ismall}{1000} + +\setglyph{dotlessJsmall} + \glyph{Jsmall}{1000} +\endsetglyph +\setleftrightkerning{dotlessJsmall}{Jsmall}{1000} + +\setglyph{FFsmall} + \glyph{Fsmall}{1000} + \movert{\kerning{Fsmall}{Fsmall}} + \glyph{Fsmall}{1000} +\endsetglyph + +\setglyph{FIsmall} + \glyph{Fsmall}{1000} + \movert{\kerning{Fsmall}{Ismall}} + \glyph{Ismall}{1000} +\endsetglyph + +\setglyph{FLsmall} + \glyph{Fsmall}{1000} + \movert{\kerning{Fsmall}{Lsmall}} + \glyph{Lsmall}{1000} +\endsetglyph + +\setglyph{FFIsmall} + \glyph{FFsmall}{1000} + \movert{\kerning{FFsmall}{Ismall}} + \glyph{Ismall}{1000} +\endsetglyph + +\setglyph{FFLsmall} + \glyph{FFsmall}{1000} + \movert{\kerning{FFsmall}{Lsmall}} + \glyph{Lsmall}{1000} +\endsetglyph + +\setglyph{IJsmall} + \glyph{Ismall}{1000} + \movert{\kerning{Ismall}{Jsmall}} + \glyph{Jsmall}{1000} +\endsetglyph + +\setglyph{SSsmall} + \glyph{Ssmall}{1000} + \movert{\kerning{Ssmall}{Ssmall}} + \glyph{Ssmall}{1000} +\endsetglyph + + + +\endmetrics + +\section{Notes} + +An important, but rather obscure, difference between what is done by +this file and what is done by the old \texttt{latin.mtx} concerns the +manner in which the letters are spaced. In this file, spacing of +smallcaps is consistently done using the \IEint{smallcapsextraspace} +parameter, but \texttt{latin.mtx} only uses this mechanism in +monowidth fonts. For proportional fonts, the default was instead to +use the \IEint{letterspacing} parameter to space the entire +font---the same amount for non-faked as for faked letters. + + +\section{Changes} + +1999/10/25: Added \verb|\setglyphs| for \texttt{Macronsmall} and +\texttt{macronsmall}. (LH) + +1999/10/25: Simplified definition of \verb|\unfakable|. (UV\&LH) +Rationale: It is thoroughly confusing if the size of the black box +created by \verb|\unfakable| depends on the metrics of an unencoded +glyph that isn't accessible and therefore unavailable for all pratical +purposes. + +2000/10/20: File split off from \texttt{latin.mtx}. + +2003/01/02--05: File heavily reorganised. (LH) + +\end{document} + +% Copyright 1993, 1994, 1995, 1996 Alan Jeffrey, +% hacked and maintained 1997, 1998 Sebastian Rahtz, +% copyright 1998, 1999 the fontinst maintenance team and any individual +% authors listed elsewhere in this file. All rights reserved. +% +% This file is part of the fontinst system version 1.9. +% ----------------------------------------------------- +% +% It may be distributed under the terms of the LaTeX Project Public +% License, as described in lppl.txt in the base LaTeX distribution. +% Either version 1.0 or, at your option, any later version. +% |