summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/fontinst/latinmtx/lsfake.mtx
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex/fontinst/latinmtx/lsfake.mtx')
-rw-r--r--Master/texmf-dist/tex/fontinst/latinmtx/lsfake.mtx409
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.
+%