summaryrefslogtreecommitdiff
path: root/macros/generic/ofs/latex
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /macros/generic/ofs/latex
Initial commit
Diffstat (limited to 'macros/generic/ofs/latex')
-rw-r--r--macros/generic/ofs/latex/decl/a35.sty25
-rw-r--r--macros/generic/ofs/latex/decl/allfonts.sty20
-rw-r--r--macros/generic/ofs/latex/ofs.sty301
3 files changed, 346 insertions, 0 deletions
diff --git a/macros/generic/ofs/latex/decl/a35.sty b/macros/generic/ofs/latex/decl/a35.sty
new file mode 100644
index 0000000000..1e7d8edc5c
--- /dev/null
+++ b/macros/generic/ofs/latex/decl/a35.sty
@@ -0,0 +1,25 @@
+%%% OSF-style file, see ofsdoc.tex for more details
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%% Jul 2001 Petr Olsak
+
+% See ofsdoc.tex manual for more details.
+% This file is a part of OFS macro package by Petr Olsak.
+
+\ifx\OFSprocessoptions\undefined
+ \ProvidesPackage {a35}
+ \RequirePackage {ofs}
+\fi
+
+\OFSputfamlist {a35.sty:}
+
+\OFSdeclarefamily [AvantGarde] {pag} \OFSnormalvariants
+\OFSdeclarefamily [Bookman] {pbk} \OFSnormalvariants
+\OFSdeclarefamily [NewCentury] {pnc} \OFSnormalvariants
+\OFSdeclarefamily [Palatino] {ppl} \OFSnormalvariants
+\OFSdeclarefamily [ZapfChancery] {pzc}
+\OFSputfamlist {\string\rm, \space- , \string\it, \space -}
+\OFSdeclarefamily [ZapfDingbats] {pzd}
+\OFSputfamlist {\string\rm, \space- , \space- , \space -}
+\OFSdeclarefamily [Symbol] {psy}
+\OFSputfamlist {\string\rm, \space- , \string\it, \space -}
+
diff --git a/macros/generic/ofs/latex/decl/allfonts.sty b/macros/generic/ofs/latex/decl/allfonts.sty
new file mode 100644
index 0000000000..a18d554ae7
--- /dev/null
+++ b/macros/generic/ofs/latex/decl/allfonts.sty
@@ -0,0 +1,20 @@
+% This file may be used by OFS (Olsak Font System)
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\ifx\OFSprocessoptions\undefined
+ \ProvidesPackage {allfonts}
+ \RequirePackage {ofs}
+\fi
+
+% The contents of this file is depend on the fonts installed in your TeX
+% system. If you install some fonts supported by OFS (or you write
+% the OFS support yourself), add the \RequirePackage {<package>}
+% in the following list:
+
+\RequirePackage{a35}
+
+% example:
+% \RequirePackage {skatalog}
+% after you install the fonts from Storm Type Foundry.
+%
+% See ofsdoc.tex for more information about OFS.
diff --git a/macros/generic/ofs/latex/ofs.sty b/macros/generic/ofs/latex/ofs.sty
new file mode 100644
index 0000000000..6bac96bbc5
--- /dev/null
+++ b/macros/generic/ofs/latex/ofs.sty
@@ -0,0 +1,301 @@
+
+%%% OFS: Olsak's Font System based on NFSS + LaTeX macros
+%%% Jul 2001 Petr Olsak
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%%% see ofsdoc.tex for more details
+
+\NeedsTeXFormat{LaTeX2e} % I don't like LaTeX, the plain macro is more clean.
+ % See the variant of my macros ofs.tex for plain.
+ % But, some users ask for LaTeX style files :-((
+
+%\ProvidesPackage{ofs}[2001/07/01 OFS based on NFSS]
+%\ProvidesPackage{ofs}[2002/10/24 OFS based on NFSS]
+% \addcmd added
+\ProvidesPackage{ofs}[2003/02/25 OFS based on NFSS]
+% \setfonts {\bgroup \catcode`\-=12 ... by Z. Wagner added
+
+\def\OFSversion{Oct. 2002}
+\typeout{OFS (Olsak's Font System) based on NFSS initialized.
+ <\OFSversion>}
+
+%%%% \fontusage %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\bgroup \catcode`\#=12
+ \catcode`\{=12 \catcode`}=12 \catcode`\X=1 \catcode`\Z=2
+ \catcode`\^^M=14 \catcode`\ =12 \catcode`\|=0\catcode`\\=12%
+|gdef|fontusageX
+|begingroup
+|typeoutX%---------------------------------------------------------------
+\fontusage: ============ Olsak's Font System, usage: ===============^^J
+\usepackage [sjannon, sdynamo] {ofs} ... for example^^J
+\showfonts ... shows all loaded font families (by previous \usepackage)^^J
+\setfonts [Family/] ... local switch to the new family, after this, the^^J
+ \rm, \bf, \it, bi will switch to the variants. The current size is used.^^J
+\setfonts [/size] ... local switch to the new size of fonts, the family is^^J
+ not changed. The "size" has the following possible formats:^^J
+ at<dimen> ... the same as \font\something=file at<dimen>^^J
+ <dimen> ... the same as at<dimen>^^J
+ <number> ... the same as at<number>pt^^J
+ scaled<number> ... the same as \font\something=file scaled<number>^^J
+ mag<decimal-number> fonts will be magnified by given coefficient^^J
+ depend on current size of the fonts.^^J
+\setfonts [Family/size] ... switch to the new family at given size^^J
+\setfonts [Family-vr/] ... switch to the specified font, the current size^^J
+ is used. The "vr" is two-letter acronym for variants: rm, bf, it, bi.^^J
+\setfonts [Family-vr/size] ... switch to the specified font.^^J
+\fontdef\name [Family/size] ... same as \gdef\name{\setfonts[Family/size]}^^J
+ The "Family" or "size" parameter may be empty.^^J
+\OFSfamily [Family] ... expands to internal NFSS family name.^^J
+\OFSfamilydefault [Family] ... same as \edef\familydefault{\OFSfamily[Family]}
+Z%-----------------------------------------------------------------------
+|endgroup
+Z
+|egroup
+
+
+%%%% \rm, \bf, \it, bi %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def\bi{\fontseries{b}\fontshape{it}\selectfont}
+\def\bf{\fontseries{b}\fontshape{n}\selectfont}
+\def\it{\fontseries{m}\fontshape{it}\selectfont}
+\def\rm{\fontseries{m}\fontshape{n}\selectfont}
+\def\bfdefault{b}
+
+%%%% Macros used in declaration files %%%%%%%%%%%%%%%%%%
+
+\def\ofs@listfamilies{}
+\def\ofs@messageheader{OFS (l.\the\inputlineno): }
+\def\ofs@unknownfam{undefined}
+
+\def\OFSdeclarefamily [#1] #2{%
+ \OFSputfamlist {^^J \space\space[#1/]}%
+ \expandafter \gdef\csname ofs-fam:#1\endcsname {#2}%
+ \expandafter \gdef\csname ofs-fam:#2\endcsname {#2}%
+ \bgroup
+ \count2=18
+ \def\tmpa ##1{\if:##1\let\tmpa=\relax
+ \else\advance\count2 by-1 \fi\tmpa}\tmpa #1:%
+ \def\tmpa {\ifnum\count2>0 \advance\count2 by-1 \OFSputfamlist{ }%
+ \else\let\tmpa=\relax \fi\tmpa}\tmpa
+ \egroup
+}
+\def\OFSfamily [#1]{%
+ \expandafter \ifx\csname ofs-fam:#1\endcsname \relax
+ \ofs@unknownfam
+ \else \csname ofs-fam:#1\endcsname
+ \fi
+}
+\def\OFSfamilydefault [#1]{%
+ \edef\tmpa{\OFSfamily[#1]}%
+ \ifx\tmpa\ofs@unknownfam
+ \typeout{\ofs@messageheader WARNING. The family is not set.^^J
+ The family name [#1] is not known in the list:
+ \ofs@listfamilies}%
+ \else
+ \edef\familydefault{\tmpa}%
+ \fi
+}
+\def\OFSputfamlist #1{%
+ \xdef\ofs@listfamilies {\ofs@listfamilies #1}%
+}
+\def\OFSextraencoding #1{%
+ \expandafter \ifx \csname ofs-enc:#1\endcsname \relax
+ \edef\ofs@extraencoding{#1}%
+ \lowercase{\input{#1ini.def}}\relax
+ \expandafter \def \csname ofs-enc:#1\endcsname {}%
+ \fi
+}
+\def\OFSnormalvariants{\OFSputfamlist{%
+ \string\rm, \string\bf, \string\it, \string\bi}}
+
+%%%% Defaults %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+\OFSputfamlist {^^Jdefaults:}
+\OFSdeclarefamily [CMRoman] {cmr} \OFSnormalvariants
+\OFSputfamlist {, \string\sl}
+
+\OFSdeclarefamily [CMSans] {cmss}
+\OFSputfamlist {\string\rm, \string\bf, \string\it, \space-}
+
+\OFSdeclarefamily [CMTypewriter] {cmtt}
+\OFSputfamlist {\string\rm, \space- , \string\it, \space- , \string\sl}
+
+\OFSdeclarefamily [Times] {ptm} \OFSnormalvariants
+
+\OFSdeclarefamily [Helvetica] {phv} \OFSnormalvariants
+\OFSputfamlist{, \string\nrm, \string\nbf, \string\nit, \string\nbi}
+
+\OFSdeclarefamily [Courier] {pcr} \OFSnormalvariants
+
+\def\sl{\fontseries{m}\fontshape{sl}\selectfont}
+\def\nrm{\fontseries{mc}\fontshape{n}\selectfont}
+\def\nbf{\fontseries{bc}\fontshape{n}\selectfont}
+\def\nit{\fontseries{mc}\fontshape{it}\selectfont}
+\def\nbi{\fontseries{bc}\fontshape{it}\selectfont}
+
+
+%%%% \showfonts %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def\showfonts{\typeout{\ofs@messageheader
+ The list of known font families:\ofs@listfamilies}}
+
+%%%% \setfonts %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def\setfonts {\bgroup \catcode`\-=12 \ofs@setfonts}
+\def\ofs@setfonts [#1/#2]{\egroup \OFSsetfonts{#1}{#2}}
+\DeclareRobustCommand \OFSsetfonts [2]{%
+ \edef\tmpa{#1}\expandafter \ofs@readfamvariant\tmpa--:%
+ \ifx\famvariant\empty
+ \ofs@setfontfamily [#1/#2]%
+ \else
+ \ofs@setsinglefont [#1/#2]%
+ \fi
+ \ignorespaces
+}
+\def\ofs@readfamvariant #1-#2-#3:{\def\tmpb{#1}\def\famvariant{#2}}
+
+\def\ofs@setfontfamily [#1/#2]{%
+ \if |#1|\else
+ \edef\tmpa{\OFSfamily[#1]}%
+ \ifx\tmpa\ofs@unknownfam
+ \typeout{\ofs@messageheader WARNING. The family is not set.^^J
+ The family name [#1/] is not known in the list:
+ \ofs@listfamilies}%
+ \else
+ \fontfamily{\tmpa}%
+ \fi
+ \fi
+ \if |#2|\else
+ \edef\tmpa{#2}\expandafter\ofs@readfontsize \tmpa:%
+ \fontsize{\tmpa}{\f@baselineskip}%
+ \fi
+ \ofs@selectfont
+}
+\let\ofs@selectfont=\selectfont
+
+\def\ofs@setsinglefont [#1-#2/#3]{%
+ \let\ofs@selectfont=\relax
+ \ofs@setfontfamily [#1/#3]\let\ofs@selectfont=\selectfont
+ \csname #2\endcsname
+}
+\def\ofs@readfontsize #1#2:{\if a#1\ofs@readfontsizeat #1#2:%
+ \else \if s#1\ofs@readfontsizescaled #1#2:%
+ \else \if m#1\ofs@readfontsizemag #1#2..:%
+ \fi\fi\fi
+}
+\def\ofs@readfontsizeat at#1:{\def\tmpa{#1}}
+\def\ofs@readfontsizescaled scaled#1:{\dimen0=0.01pt \dimen0=#1\dimen0
+ \edef\tmpa{\the\dimen0}}
+\def\ofs@readfontsizemag mag#1.#2.#3:{\dimen0=\f@size pt
+ \if|#2|\if|#3|%
+ \errmessage{OFS: "mag" need the decimal parameter with decimal point}%
+ \fi\fi
+ \dimen0 =#1.#2 \dimen0
+ \advance\dimen0 by7sp % rounding to three digits after decimal point
+ \ifdim\dimen0<10pt \edef\tmpa{+\the\dimen0}\else \edef\tmpa{\the\dimen0}\fi
+ \dimen0 =\expandafter \ofs@readsixdigits \tmpa :::::|pt
+ \edef\tmpa{\the\dimen0}%
+}
+\def\ofs@readsixdigits #1#2#3#4#5#6#7#8#9|{%
+ \if:#5#1#2\else\if:#6#1#2#3\else\if:#7#1#2#3#4\else
+ \if:#8#1#2#3#4#5\else#1#2#3#4#5#6\fi\fi\fi\fi
+}
+
+%%%% \fontdef %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def\fontdef #1[#2/#3]{\def\tmpc{!}%
+ \edef\tmpa{#3}\ifx \tmpa\tmpc \edef\tmpa{\f@size}\fi
+ \edef\tmpb{#2}\expandafter \ofs@readfamvariant\tmpb--:%
+ \ifx \tmpb\tmpc
+ \ifx\famvariant\empty
+ \xdef #1{\noexpand\setfonts [\f@family/\tmpa]}%
+ \else
+ \xdef #1{\noexpand\setfonts [\f@family-\famvariant/\tmpa]}%
+ \fi
+ \else
+ \xdef #1{\noexpand\setfonts [#2/\tmpa]}%
+ \fi
+}
+
+%%%% \ifknownfam %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\newif \ifofs@familypresent
+
+\def\ifknownfam [#1]{%
+ \expandafter \ifx\csname ofs-fam:#1\endcsname \relax
+ \expandafter \ofs@familypresentfalse
+ \else
+ \expandafter \ofs@familypresenttrue
+ \fi
+ \ifofs@familypresent
+}
+
+%%%% \addcmd %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def\addcmd #1#2{\expandafter\def\expandafter\tmpa\expandafter{#1}%
+ \def\tmpb{#1}%
+ \ifx\tmpa\tmpb % the #1 is not a macro
+ \expandafter\let\csname \string#1-original\endcsname =#1%
+ \expandafter\def\expandafter #1\expandafter{%
+ \csname\string#1-original\endcsname #2}%
+ \else % the #1 is a macro
+ \expandafter\def\expandafter #1\expandafter{#1#2}%
+ \fi
+}
+
+%%%% Extra encoding %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def\setextrafont{\ifx\ofs@extraencoding\undefined
+ \typeout{\ofs@messageheader WARNING. Extra encoding is no declared by
+ \string\OFSextraencoding.}%
+ \else \fontencoding{\ofs@extraencoding}\selectfont \fi
+}
+\def\extchar{\afterassignment\ofs@doextchar \chardef\tmpa=}
+\def\ofs@doextchar{{\setextrafont\tmpa}}
+
+
+%%%% Accents %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\DeclareRobustCommand \accentabove [3]{%
+ \def\tmpa{#3}%
+ \ifx \tmpa\empty #1\else
+ \leavevmode\vbox{%
+ \setbox0=\hbox{#3}\setbox2=\hbox{#1}%
+ \dimen0=\ht0 \advance\dimen0 by\dp2 \advance\dimen0 by#2\relax
+ \offinterlineskip
+ \halign {##\cr
+ \hidewidth\slantcorrection{\dimen0}\box2 \hidewidth\cr
+ \noalign{\kern#2}\box0 \cr}}%
+ \fi
+}
+\DeclareRobustCommand \accentbelow [3]{%
+ \def\tmpa{#3}%
+ \ifx \tmpa\empty #1\else
+ \leavevmode\vtop{%
+ \setbox0=\hbox{#3}\setbox2=\hbox{#1}%
+ \dimen0=-\dp0 \advance\dimen0 by-\ht2 \advance\dimen0 by-#2\relax
+ \offinterlineskip
+ \halign {##\cr \box0 \cr\noalign{\kern#2}%
+ \hidewidth \slantcorrection{\dimen0}%
+ \dimen0=\dp2 \ifdim\dimen0<.2ex \dimen0=.2ex \fi
+ \vbox to\dimen0{\hbox{\box2}\vss}\hidewidth\cr}}%
+ \fi
+}
+\def\slantcorrection #1{\dimen0=#1\relax
+ \dimen0 =\strip@pt \fontdimen1\the\font \dimen0
+ \kern 2\dimen0
+}
+
+
+%%%% Options = OFS-style files %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\let\OFSprocessoptions=\relax
+\DeclareOption *{\input{\CurrentOption.sty}}
+\ProcessOptions\relax
+\let\OFSprocessoptions=\undefined
+
+
+
+