summaryrefslogtreecommitdiff
path: root/fonts/stoneipa
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 /fonts/stoneipa
Initial commit
Diffstat (limited to 'fonts/stoneipa')
-rw-r--r--fonts/stoneipa/README.txt30
-rw-r--r--fonts/stoneipa/stoneipa.dtx295
-rw-r--r--fonts/stoneipa/stoneipa.ins40
-rw-r--r--fonts/stoneipa/stoneipa.pdfbin0 -> 94924 bytes
4 files changed, 365 insertions, 0 deletions
diff --git a/fonts/stoneipa/README.txt b/fonts/stoneipa/README.txt
new file mode 100644
index 0000000000..0d3afed367
--- /dev/null
+++ b/fonts/stoneipa/README.txt
@@ -0,0 +1,30 @@
+README for stoneipa
+
+DESCRIPTION
+===========
+Font setup for Stone Sans and Stone Sans Phonetic, allowing these
+beautiful pre-Unicode commercial fonts to be treated as if they were a single
+Unicode font with good support for the International Phonetic Alphabet.
+This package does not contain the fonts themselves, which may be purchased
+from Adobe.
+
+LICENSE AND WHATNOT
+===================
+Copyright (C) 2018 Leah Grace Velleman
+
+This material is subject to the LaTeX Project Public License.
+
+FILES AND INSTALLATION
+======================
+The main files here are these two, which should be installed
+in the usual way:
+ stoneipa.ins
+ stoneipa.dtx
+
+Documentation can be found here:
+ stoneipa.pdf
+
+CONTACT
+=======
+Leah Grace Velleman
+leahvelleman@gmail.com
diff --git a/fonts/stoneipa/stoneipa.dtx b/fonts/stoneipa/stoneipa.dtx
new file mode 100644
index 0000000000..7f07a891e7
--- /dev/null
+++ b/fonts/stoneipa/stoneipa.dtx
@@ -0,0 +1,295 @@
+% \iffalse meta-comment
+%
+% Copyright (C) 2018 by Leah Grace Velleman
+%
+% This file 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 2005/12/01 or later.
+%
+% \fi
+
+% \iffalse
+%<package>\NeedsTeXFormat{LaTeX2e}[2018/01/01]
+%<package>\ProvidesPackage{stoneipa}
+%<package> [2018/07/07 v0.8 Stone Sans Phonetic font support]
+%
+%<*driver>
+\documentclass{ltxdoc}
+\usepackage{stoneipa}
+\setromanfont[Scale=MatchLowercase]{Cambria}
+\setmonofont[Scale=MatchLowercase]{Consolas}
+\EnableCrossrefs
+\CodelineIndex
+\RecordChanges
+\begin{document}
+\DocInput{stoneipa.dtx}
+\end{document}
+%</driver>
+%\fi
+
+
+% \title{The \textsf{StoneIPA} package}
+% \author{Leah Grace Velleman \\ leahvelleman@gmail.com}
+% \maketitle
+%
+% \section{About}
+% Stone Sans Phonetic is an excellent IPA font designed by Sumner Stone in the
+% 1980s. It harmonizes well with its companions Stone Serif and Stone Sans, and
+% also with a number of other popular text fonts.
+%
+% It remains commercially available, but in an idiosyncratic
+% pre-Unicode encoding.
+%
+% This package --- designed for use with XeLaTeX --- sets
+% up Stone Sans as the sans-serif document font, and sets up the Unicode
+% characters in the IPA range so that they will produce the correct glyphs from
+% Stone Sans Phonetic. It does not include the fonts themselves, which must be
+% purchased separately.
+%
+%\begin{figure}
+% \sffamily
+%\begin{center}
+%\begin{tabular}{lllllllllllllllllllll}
+% p & b & & & & & t & d & & & ʈ & ɖ & c & ɟ & k & g & q & ɢ & & ʔ \\
+% ƥ & ɓ & & & & & ƭ & ɗ & & & & & ƈ & ʄ & ƙ & ɠ & ʠ & ʛ \\
+% & m & & ɱ & & & & n & & & & ɳ & & ɲ & & ŋ & & ɴ \\
+% & ʙ & & & & & & r & & & & & & & & & & ʀ \\
+% & & & & & & & ɾ & & & & ɽ \\
+% ɸ & β & f & v & θ & ð & s & z & ʃ & ʒ & ʂ & ʐ & ç & ʝ & x & ɣ & χ & ʁ & ħ ʕ & h ɦ \\
+% & & & & & & ɬ & ɮ \\
+% & & & ʋ & & & & ɹ & & & & ɻ & & j & & ɰ \\
+% & & & & & & & l & & & & ɭ & & ʎ & & ʟ\\
+%\end{tabular}
+%\caption{The IPA consonants in Stone Sans Phonetic}
+%\end{center}
+%\end{figure}
+%\begin{figure}
+%\sffamily
+%\begin{center}
+%\begin{tabular}{llllll}
+% i & y & ɨ & ʉ & ɯ & u \\
+% ɪ & ʏ & & & & ʊ \\
+% e & ø & ɘ & ɵ & ɤ & o \\
+% & & ə \\
+% ɛ & œ & ɜ & ɞ & ʌ & ɔ \\
+% æ & & ɐ \\
+% a & ɶ & & & ɑ & ɒ\\
+%\end{tabular}
+%\caption{The IPA vowels in Stone Sans Phonetic and Stone Sans Phonetic Alternates}
+%\end{center}
+%\end{figure}
+%\begin{figure}
+%\sffamily
+%\begin{center}
+%\begin{tabular}{lllll}
+% ƥ & ƭ & ƙ & ʠ & ˀ \\
+% š & č & ž \\
+% λ & ƛ
+%\end{tabular}
+%\caption{Non-IPA characters from Stone Sans Phonetic and Stone Sans Phonetic Alternates}
+%\end{center}
+%\end{figure}
+%
+%\section{Requirements}
+% \textsf{StoneIPA} requires XeLaTeX, \textsf{fontspec}, \textsf{newunicodechar}, and \textsf{pdftexcmds}. It also requires the fonts Stone Sans, Stone Sans Phonetic
+% and Stone Sans Phonetic Alternates.
+%
+%\section{Package options}
+% \textsf{StoneIPA} uses your system installed versions of Stone Sans, Stone Sans
+% Phonetic, and Stone Sans Phonetic Alternates. By default, it expects these
+% fonts to be installed under the names |StoneSans|, |StoneSans-PhoneticIPA|, and
+% |StoneSans-PhoneticAlternate|. If yours are installed under different names,
+% specify those names using the |sansfontname|, |phoneticfontname|, and
+% |alternatefontname| options.
+%
+%\begin{verbatim}
+%\usepackage[phoneticfontname=StoneSansIPA,
+% alternatefontname=StoneSansAlt]{stoneipa}
+%\end{verbatim}
+%
+% If some characters appear too small, use the |noalternatescaling| option. As
+% of this writing, the version of Stone Sans Phonetic Alternates that is for sale
+% on Adobe's website has characters about 10\% too large, and the \textsf{StoneIPA}
+% package attempts to compensate for this. The |noalternatescaling| option
+% turns off this compensation.
+%\begin{verbatim}
+%\usepackage[noalternatescaling]{stoneipa}
+%\end{verbatim}
+
+% \StopEventually{}
+% \section{Implementation}
+% \subsection{Option handling}
+% \begin{macrocode}
+\NeedsTeXFormat{LaTeX2e}[1994/06/01]
+
+\RequirePackage{fontspec}
+\RequirePackage{newunicodechar}
+\RequirePackage{pdftexcmds}
+\RequirePackage{kvoptions}
+\SetupKeyvalOptions{family=sipa, prefix=sipa@}
+\DeclareStringOption[StoneSans]{fontname}
+\DeclareStringOption[StoneSansSCITCTTMedium]{scfontname}
+\DeclareStringOption[StoneSans-PhoneticIPA]{phoneticfontname}
+\DeclareStringOption[StoneSans-PhoneticAlternate]{alternatefontname}
+\DeclareBoolOption{noalternatescaling}
+\ProcessKeyvalOptions*
+% \end{macrocode}
+% \subsection{Font declarations}
+% \begin{macrocode}
+\setsansfont{\sipa@fontname}[Scale=MatchLowercase,
+ SmallCapsFont=\sipa@scfontname]
+
+\newfontfamily{\sipafont}{\sipa@phoneticfontname}[Scale=MatchLowercase]
+
+\ifsipa@noalternatescaling
+ \newfontfamily{\sipaalternatefont}{\sipa@alternatefontname}[Scale=1.0]
+\else
+ \newfontfamily{\sipaalternatefont}{\sipa@alternatefontname}[Scale=0.9]
+\fi
+% \end{macrocode}
+% \subsection{Character macros}
+% \DescribeMacro{\sipachoosephoneticchar}
+% \DescribeMacro{\sipachoosealternatechar}
+% The Stone Sans Phonetic font is weirdly encoded. For instance, a symbol that
+% looks like \textsf{ʷ} is stored at the code point normally used for |+|. This means that
+% sometimes, the Unicode in our |.tex| file will need to be translated. For
+% instance, if we encounter a \textsf{ʷ} character when the current font family is Roman,
+% we can print it as usual; but if we encounter the same character when the
+% font family is sans serif, we should translate it to a |+| and print it in
+% Stone Sans Phonetic. The |\sipachoosephoneticchar| and |\sipachoosealternatechar|% macros do this conditional translation:
+% given two characters, when the current family is sans serif, they print the
+% first in Stone Sans Phonetic; and when the current family is anything else,
+% they print the second.
+% \begin{macrocode}
+\def\sipachoosephoneticchar#1#2{%
+ \ifnum\pdf@strcmp{\f@family}{\sfdefault}=\z@
+ {\sipafont #1}%
+ \else
+ #2%
+ \fi
+}
+
+\def\sipachoosealternatechar#1#2{%
+ \ifnum\pdf@strcmp{\f@family}{\sfdefault}=\z@
+ {\sipaalternatefont #1}%
+ \else
+ #2%
+ \fi
+}
+% \end{macrocode}
+% \subsection{Character setup}
+% \DescribeMacro{\sipasetup}\DescribeMacro{\sipaalternatesetup}
+% Now we define two convenience functions that we will use to set up Unicode
+% characters. The macro |\sipasetup#1#2| declares that the Stone Sans Phonetic glyph
+% stored at |#1| should be used when the TeX source contains the Unicode character
+% |#2|. The macro |\sipaalternatesetup| does the same, but for Stone Sans Phonetic
+% Alternates.
+% \begin{macrocode}
+
+\def\sipasetup#1#2{\newunicodechar{#2}{{\sipachoosephoneticchar{#1}{#2}}}}
+\def\sipaalternatesetup#1#2{\newunicodechar{#2}{{\sipachoosealternatechar{#1}{#2}}}}
+
+\sipasetup{a\$}{ā}
+\sipasetup{e\$}{ē}
+\sipasetup{i\$}{ī}
+\sipasetup{o\$}{ō}
+\sipasetup{u\$}{ū}
+\sipasetup{y\$}{ȳ}
+\sipasetup{+}{ʷ}
+\sipasetup{:}{ː}
+\sipasetup{?}{ʔ}
+\sipasetup{@}{ə}
+\sipasetup{A}{ɑ}
+\sipasetup{B}{ʙ}
+\sipasetup{C}{ç}
+\sipasetup{D}{ð}
+\sipasetup{E}{ɛ}
+\sipasetup{F}{ɸ}
+\sipasetup{G}{ɢ}
+\sipasetup{H}{ʜ}
+\sipasetup{I}{ɪ}
+\sipasetup{J}{ɟ}
+%\sipasetup{K}{ɨ}
+\sipasetup{L}{ʟ}
+\sipasetup{M}{ɰ}
+\sipasetup{N}{ɴ}
+\sipasetup{O}{ɔ}
+\sipasetup{Q}{ɾ}
+\sipasetup{R}{ʀ}
+\sipasetup{S}{ʃ}
+\sipasetup{T}{θ}
+\sipasetup{U}{ʊ}
+\sipasetup{V}{ʋ}
+\sipasetup{W}{ɺ}
+\sipasetup{X}{χ}
+\sipasetup{Y}{ʏ}
+\sipasetup{Z}{ʒ}
+\sipasetup{\ }{ʘ}
+\sipasetup{\{}{æ}
+\sipasetup{®}{ɲ}
+\sipasetup{¿}{ʕ}
+\sipasetup{Á}{ɒ}
+\sipasetup{Â}{β}
+\sipasetup{Ã}{ɕ}
+\sipasetup{Ä}{ɖ}
+\sipasetup{Æ}{ɜ}
+\sipasetup{Ç}{ʛ}
+\sipasetup{È}{ɦ}
+\sipasetup{É}{ħ}
+\sipasetup{Ë}{ɬ}
+\sipasetup{Ì}{ɮ}
+\sipasetup{Í}{ɱ}
+\sipasetup{Î}{ŋ}
+\sipasetup{Ï}{ɶ}
+\sipasetup{Ð}{ɻ}
+\sipasetup{Ñ}{ɽ}
+\sipasetup{Ò}{ʁ}
+\sipasetup{Ô}{ʈ}
+\sipasetup{Õ}{ɵ}
+\sipasetup{×}{ʄ}
+\sipasetup{Ø}{ɧ}
+\sipasetup{Ú}{ʑ}
+\sipasetup{Þ}{ʢ}
+\sipasetup{à}{ɫ}
+\sipasetup{á}{ɐ}
+\sipasetup{â}{ɓ}
+\sipasetup{ã}{ƈ}
+\sipasetup{ä}{ɗ}
+\sipasetup{å}{ɣ}
+\sipasetup{\ae}{ɤ}
+\sipasetup{Ç}{ɠ}
+\sipasetup{è}{ɥ}
+\sipasetup{é}{ɨ}
+\sipasetup{ê}{ʝ}
+\sipasetup{ë}{ƙ}
+\sipasetup{ì}{ɭ}
+\sipasetup{í}{ɯ}
+\sipasetup{î}{ɳ}
+\sipasetup{ï}{ø}
+\sipasetup{\dh}{ƥ}
+\sipasetup{ñ}{ʠ}
+\sipasetup{ò}{ɹ}
+\sipasetup{ó}{ʂ}
+\sipasetup{ô}{ƭ}
+\sipasetup{õ}{ʉ}
+\sipasetup{ö}{ʌ}
+\sipasetup{÷}{ʍ}
+\sipasetup{ù}{ʎ}
+\sipasetup{ú}{ʐ}
+\sipasetup{û}{œ}
+\sipaalternatesetup{?}{ˀ}
+\sipaalternatesetup{e}{ɘ}
+\sipaalternatesetup{å}{ɞ}
+\sipaalternatesetup{c}{č}
+\sipaalternatesetup{s}{š}
+\sipaalternatesetup{z}{ž}
+\sipaalternatesetup{l}{λ}
+\sipaalternatesetup{ì}{ƛ}
+% \end{macrocode}
+% \Finale
diff --git a/fonts/stoneipa/stoneipa.ins b/fonts/stoneipa/stoneipa.ins
new file mode 100644
index 0000000000..9d0da34bfd
--- /dev/null
+++ b/fonts/stoneipa/stoneipa.ins
@@ -0,0 +1,40 @@
+Copyright (C) 2018 by Leah Grace Velleman
+%%
+%% This file 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 2005/12/01 or later.
+%%
+\input docstrip.tex
+\keepsilent
+\usedir{tex/latex/stoneipa}
+\preamble
+This is a generated file.
+Copyright (C) 2018 by Leah Grace Velleman
+This file 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 2005/12/01 or later.
+\endpreamble
+\generate{\file{stoneipa.sty}{\from{stoneipa.dtx}{package}}}
+\Msg{*********************************************************}
+\Msg{*}
+\Msg{* To finish the installation you have to move the}
+\Msg{* following file into a directory searched by TeX:}
+\Msg{*}
+\Msg{* \space\space stoneipa.sty}
+\Msg{*}
+\Msg{* To produce the documentation run the file stoneipa.dtx}
+\Msg{* through LaTeX.}
+\Msg{*}
+\Msg{* Happy TeXing!}
+\Msg{*********************************************************}
+\endbatchfile
diff --git a/fonts/stoneipa/stoneipa.pdf b/fonts/stoneipa/stoneipa.pdf
new file mode 100644
index 0000000000..c5b6f346ce
--- /dev/null
+++ b/fonts/stoneipa/stoneipa.pdf
Binary files differ