summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2021-03-14 22:59:07 +0000
committerKarl Berry <karl@freefriends.org>2021-03-14 22:59:07 +0000
commit5a35b45a4a9e7b682c58fd1d7d543ff42d5acb82 (patch)
treec7cf51f96b2a0c35e98cf326980bb4245f4d589e
parent75950fa8823761cb77373f180d48f5c2b52c9870 (diff)
unitipa (14mar21)
git-svn-id: svn://tug.org/texlive/trunk@58360 c570f23f-e606-0410-a88d-b1316a301751
-rw-r--r--Master/texmf-dist/doc/lualatex/unitipa/README.txt3
-rw-r--r--Master/texmf-dist/doc/lualatex/unitipa/unitipa.pdfbin178561 -> 191050 bytes
-rw-r--r--Master/texmf-dist/source/lualatex/unitipa/unitipa.dtx256
-rw-r--r--Master/texmf-dist/tex/lualatex/unitipa/unitipa.sty183
4 files changed, 244 insertions, 198 deletions
diff --git a/Master/texmf-dist/doc/lualatex/unitipa/README.txt b/Master/texmf-dist/doc/lualatex/unitipa/README.txt
index b68d0b4fdba..2d9bc5ba024 100644
--- a/Master/texmf-dist/doc/lualatex/unitipa/README.txt
+++ b/Master/texmf-dist/doc/lualatex/unitipa/README.txt
@@ -1,10 +1,9 @@
--------------------------------------------------------------------------
Package: unitipa
Author: Niranjan
-Version: 0.1 (21 September, 2020)
+Version: 0.2 (13 March, 2021)
Description: TIPA typefaces with Unicode characters.
Repository: https://gitlab.com/niranjanvikastambe/unitipa
Bug tracker: https://gitlab.com/niranjanvikastambe/unitipa/-/issues
License: The LaTeX Project Public License v1.3c or later.
--------------------------------------------------------------------------
-
diff --git a/Master/texmf-dist/doc/lualatex/unitipa/unitipa.pdf b/Master/texmf-dist/doc/lualatex/unitipa/unitipa.pdf
index d74cb5403ac..c6b795dae1d 100644
--- a/Master/texmf-dist/doc/lualatex/unitipa/unitipa.pdf
+++ b/Master/texmf-dist/doc/lualatex/unitipa/unitipa.pdf
Binary files differ
diff --git a/Master/texmf-dist/source/lualatex/unitipa/unitipa.dtx b/Master/texmf-dist/source/lualatex/unitipa/unitipa.dtx
index 4437f73253c..e834a96c026 100644
--- a/Master/texmf-dist/source/lualatex/unitipa/unitipa.dtx
+++ b/Master/texmf-dist/source/lualatex/unitipa/unitipa.dtx
@@ -2,8 +2,9 @@
%
% File: unitipa.dtx
% ---------------------------------------------------------------------------
-% Package: unitipa
-% Author: Niranjan
+% Package: unitipa
+% Author: Niranjan
+% Version: 0.2 (13 March, 2021)
% Description: TIPA typefaces with Unicode characters.
% Repository: https://gitlab.com/niranjanvikastambe/unitipa
% Bug tracker: https://gitlab.com/niranjanvikastambe/unitipa/-/issues
@@ -33,7 +34,7 @@
--------------------------------------------------------------------------
Package: unitipa
Author: Niranjan
-Version: 0.1 (21 September, 2020)
+Version: 0.2 (13 March, 2021)
Description: TIPA typefaces with Unicode characters.
Repository: https://gitlab.com/niranjanvikastambe/unitipa
Bug tracker: https://gitlab.com/niranjanvikastambe/unitipa/-/issues
@@ -44,10 +45,10 @@ License: The LaTeX Project Public License v1.3c or later.
\fi
%</internal>
%<*driver|package>
-\def\unitipaPackageName{unitipa}
-\def\unitipaPackageVersion{0.1}
-\def\unitipaPackageDate{2020/21/09}
-\def\unitipaPackageDescription{TIPA typefaces with Unicode characters.}
+\def\unitipaname{unitipa}
+\def\unitipaversion{0.2}
+\def\unitipadate{2021/03/13}
+\def\unitipadescription{TIPA typefaces with Unicode characters.}
%</driver|package>
%<*driver>
\documentclass{l3doc}
@@ -56,32 +57,41 @@ License: The LaTeX Project Public License v1.3c or later.
\usepackage{unitipa}
\usepackage{hyperref}
\usepackage{xcolor}
-\hypersetup{
-colorlinks,
-linkcolor=red!60!black,
-citecolor=green!60!black,
-urlcolor=blue!60!black
-}
+\hypersetup{%
+colorlinks,%
+linkcolor=red!60!black,%
+citecolor=green!60!black,%
+urlcolor=blue!60!black%
+}%
\usepackage{fontawesome5}
\begin{document}
- \DocInput{\unitipaPackageName.dtx}
+ \DocInput{\unitipaname.dtx}
\end{document}
%</driver>
% \fi
-% \title{The \pkg{\unitipaPackageName} package}
+% \title{The \pkg{\unitipaname} package}
% \author{Niranjan}
% \date^^A
% {^^A
-% Version \unitipaPackageVersion\ --- \unitipaPackageDate\\[1ex]^^A
+% Version \unitipaversion\ --- \unitipadate\\[1ex]^^A
% {\small\faIcon{link}\quad\url{https://ctan.org/pkg/unitipa}}\\^^A
% {\small\faIcon{gitlab}\quad\url{https://gitlab.com/niranjanvikastambe/unitipa}}^^A
% }
% \maketitle
-
-% This package converts Unicode characters into TIPA commands, which gives us \pkg{tipa} typefaces, without actually learning the \pkg{tipa} commands in much details. This package needs Lua\LaTeX\ as the compiler for correctly typesetting the IPA diacritics. TIPA was designed to match with the Computer Modern design, no other IPA font matches with traditional \LaTeX\ font. This package is helpful for getting the beautiful \pkg{tipa} shapes with Unicode characters. This package assumes that the user knows how to type IPA Unicode. Following is the list of symbols that \textit{cannot} be used with the traditional \LaTeX\ font. Every other symbol in the IPA chart is present in the current \LaTeX\ font.
+%
+% This package converts Unicode characters into TIPA commands, which gives us
+% \pkg{tipa} typefaces, without actually learning the \pkg{tipa} commands in
+% much details. This package needs Lua\LaTeX\ as the compiler for correctly
+% typesetting the IPA diacritics. TIPA was designed to match with the Computer
+% Modern design, no other IPA font matches with traditional \LaTeX\ font. This
+% package is helpful for getting the beautiful \pkg{tipa} shapes with Unicode
+% characters. This package assumes that the user knows how to type IPA
+% Unicode. Following is the list of symbols that \textit{cannot} be used with
+% the traditional \LaTeX\ font. Every other symbol in the IPA chart is present
+% in the current \LaTeX\ font.
% \begin{description}
% \item[Plosives] ʈ ɖ ɟ ɢ ʔ
-% \item[Nasals] ɱ ɳ ɴ
+% \item[Nasals] ɱ ɳ ɲ\footnote{Added in v0.2} ɴ
% \item[Trills] ʙ ʀ
% \item[Taps or flaps] ⱱ ɾ ɽ
% \item[Fricatives] ɸ β θ ʃ ʒ ʂ ʐ ɣ χ ʁ ʕ ɦ
@@ -94,6 +104,13 @@ urlcolor=blue!60!black
% \item[Close-mid vowels] ɵ ɤ
% \item[Open-mid vowels] ɛ ɜ ɞ ʌ ɔ
% \item[Near-open vowels] ɐ ɶ ɒ
+% \item[Open vowels] ɑ\footnote{Reported \textit{\&} added by Heller, Thomas in
+% v0.2.
+%
+% Bug report - \url{https://gitlab.com/niranjanvikastambe/unitipa/-/issues/1}
+%
+% MR - \url{https://gitlab.com/niranjanvikastambe/unitipa/-/merge_requests/1}
+% }
% \item[Clicks] ʘ ǀ ǃ ǂ ǁ
% \item[Voiced Implosives] ɓ ɗ ʄ ɠ ʛ
% \item[Ejective] ʼ
@@ -107,10 +124,19 @@ urlcolor=blue!60!black
% \begin{documentation}
% \section{Package options}
% \begin{function}{nodiacritics}
-% If you are very sure that you don't need any IPA diacritics in your document, you can load the package with this option. If this option is loaded, package can be compiled with other compilers too, but no IPA diacritic will be printed.
+% If you are very sure that you don't need any IPA diacritics in your document,
+% you can load the package with this option. If this option is loaded, package
+% can be compiled with other compilers too, but no IPA diacritic will be
+% printed.
% \end{function}
% \begin{function}{ipafont}
-% IPA character [ⱱ] is not available in \pkg{tipa}, but for the convenience of users, this character is coded with Doulos SIL as it seemed to me the closest match to \pkg{tipa} typeface. If you don't have this font, please install package \pkg{\href{https://ctan.org/pkg/doulossil}{doulossil}} or download the font from \href{https://software.sil.org/doulos/}{here}. If users want to change the font used for this character, they can simply add the font name as the value to this option.
+% IPA character [ⱱ] is not available in \pkg{tipa}, but for the convenience of
+% users, this character is coded with Doulos SIL as it seemed to me the closest
+% match to \pkg{tipa} typeface. If you don't have this font, please install
+% package \pkg{\href{https://ctan.org/pkg/doulossil}{doulossil}} or download the
+% font from \href{https://software.sil.org/doulos/}{here}. If users want to
+% change the font used for this character, they can simply add the font name as
+% the value to this option.
% \begin{syntax}
% ipafont=\meta{font name}
% \end{syntax}
@@ -123,7 +149,7 @@ urlcolor=blue!60!black
%<*package>
% \end{macrocode}
% \begin{macrocode}
-\ProvidesPackage{unitipa}[2020/21/09 v0.1
+\ProvidesPackage{unitipa}[2021/03/13 v0.2
TIPA typefaces with unicode characters]
\RequirePackage{tipa}
% \end{macrocode}
@@ -131,16 +157,17 @@ TIPA typefaces with unicode characters]
% \begin{macrocode}
\RequirePackage{graphicx}
% \end{macrocode}
-% Package \pkg{graphicx} is needed for printing [ɞ] correctly. See line no.\ 295.
+% Package \pkg{graphicx} is needed for printing [ɞ] correctly. See line no.\
+% 295.
% \begin{macrocode}
\RequirePackage{newunicodechar}
\RequirePackage{fontspec}
\RequirePackage{pgfkeys}
-\pgfkeys{
- unitipa/.is family, unitipa/.cd,
- ipafont/.code={\setfontfamily{\ipa}{#1}},
- ipafont=DoulosSIL,
-}
+\pgfkeys{%
+ unitipa/.is family, unitipa/.cd,%
+ ipafont/.code={\setfontfamily{\ipa}{#1}},%
+ ipafont=DoulosSIL%
+}%
\DeclareTextFontCommand{\ipatext}{\ipa}
\def\unitipa@ipafont#1{\pgfkeys{unitipa/.cd,#1}}
\DeclareOption*{\expandafter\unitipa@ipafont\expandafter{\CurrentOption}}
@@ -179,189 +206,194 @@ TIPA typefaces with unicode characters]
s = unicode.utf8.gsub ( s , '(%a)̹', '\\textsubrhalfring{%1}' )
return s
end
-\end{luacode}
-\directlua{luatexbase.add_to_callback("process_input_buffer",
+ \end{luacode}
+ \directlua{luatexbase.add_to_callback("process_input_buffer",
morerounded, "morerounded")}
-\begin{luacode}
+ \begin{luacode}
function lessrounded ( s )
s = unicode.utf8.gsub ( s , '(%a)̜', '\\textsublhalfring{%1}' )
return s
end
-\end{luacode}
-\directlua{luatexbase.add_to_callback("process_input_buffer",
+ \end{luacode}
+ \directlua{luatexbase.add_to_callback("process_input_buffer",
lessrounded, "lessrounded")}
-\begin{luacode}
+ \begin{luacode}
function advanced ( s )
s = unicode.utf8.gsub ( s , '(%a)̟', '\\textsubplus{%1}' )
return s
end
-\end{luacode}
-\directlua{luatexbase.add_to_callback("process_input_buffer",
+ \end{luacode}
+ \directlua{luatexbase.add_to_callback("process_input_buffer",
advanced, "advanced")}
-\begin{luacode}
+ \begin{luacode}
function retracted ( s )
s = unicode.utf8.gsub ( s , '(%a)̠', '\\textsubbar{%1}' )
return s
end
-\end{luacode}
-\directlua{luatexbase.add_to_callback("process_input_buffer",
+ \end{luacode}
+ \directlua{luatexbase.add_to_callback("process_input_buffer",
retracted, "retracted")}
-\begin{luacode}
+ \begin{luacode}
function midcentralized ( s )
s = unicode.utf8.gsub ( s , '(%a)̽', '\\textovercross{%1}' )
return s
end
-\end{luacode}
-\directlua{luatexbase.add_to_callback("process_input_buffer",
+ \end{luacode}
+ \directlua{luatexbase.add_to_callback("process_input_buffer",
midcentralized, "midcentralized")}
-\begin{luacode}
+ \begin{luacode}
function syllabic ( s )
s = unicode.utf8.gsub ( s , '(%a)̩', '\\textsyllabic{%1}' )
return s
end
-\end{luacode}
-\directlua{luatexbase.add_to_callback("process_input_buffer",
+ \end{luacode}
+ \directlua{luatexbase.add_to_callback("process_input_buffer",
syllabic, "syllabic")}
-\begin{luacode}
+ \begin{luacode}
function nonsyllabic ( s )
s = unicode.utf8.gsub ( s , '(%a)̯', '\\textsubarch{%1}' )
return s
end
-\end{luacode}
-\directlua{luatexbase.add_to_callback("process_input_buffer",
+ \end{luacode}
+ \directlua{luatexbase.add_to_callback("process_input_buffer",
nonsyllabic, "nonsyllabic")}
-\begin{luacode}
+ \begin{luacode}
function breathyvoiced ( s )
s = unicode.utf8.gsub ( s , '(%a)̤', '\\textsubumlaut{%1}' )
return s
end
-\end{luacode}
-\directlua{luatexbase.add_to_callback("process_input_buffer",
+ \end{luacode}
+ \directlua{luatexbase.add_to_callback("process_input_buffer",
breathyvoiced, "breathyvoiced")}
-\begin{luacode}
+ \begin{luacode}
function linguolabial ( s )
s = unicode.utf8.gsub ( s , '(%a)̼', '\\textseagull{%1}' )
return s
end
-\end{luacode}
-\directlua{luatexbase.add_to_callback("process_input_buffer",
+ \end{luacode}
+ \directlua{luatexbase.add_to_callback("process_input_buffer",
linguolabial, "linguolabial")}
-\begin{luacode}
+ \begin{luacode}
function velarized ( s )
s = unicode.utf8.gsub ( s , '(%a)̴', '\\textsuperimposetilde{%1}' )
return s
end
-\end{luacode}
-\directlua{luatexbase.add_to_callback("process_input_buffer",
+ \end{luacode}
+ \directlua{luatexbase.add_to_callback("process_input_buffer",
velarized, "velarized")}
-\begin{luacode}
+ \begin{luacode}
function raised ( s )
s = unicode.utf8.gsub ( s , '(%a)̝', '\\textraising{%1}' )
return s
end
-\end{luacode}
-\directlua{luatexbase.add_to_callback("process_input_buffer",
+ \end{luacode}
+ \directlua{luatexbase.add_to_callback("process_input_buffer",
raised, "raised")}
-\begin{luacode}
+ \begin{luacode}
function lowered ( s )
s = unicode.utf8.gsub ( s , '(%a)̞', '\\textlowering{%1}' )
return s
end
-\end{luacode}
-\directlua{luatexbase.add_to_callback("process_input_buffer",
+ \end{luacode}
+ \directlua{luatexbase.add_to_callback("process_input_buffer",
lowered, "lowered")}
-\begin{luacode}
+ \begin{luacode}
function advancedtr ( s )
s = unicode.utf8.gsub ( s , '(%a)̘', '\\textadvancing{%1}' )
return s
end
-\end{luacode}
-\directlua{luatexbase.add_to_callback("process_input_buffer",
+ \end{luacode}
+ \directlua{luatexbase.add_to_callback("process_input_buffer",
advancedtr, "advancedtr")}
-\begin{luacode}
+ \begin{luacode}
function retractedtr ( s )
s = unicode.utf8.gsub ( s , '(%a)̙', '\\textretracting{%1}' )
return s
end
-\end{luacode}
-\directlua{luatexbase.add_to_callback("process_input_buffer",
+ \end{luacode}
+ \directlua{luatexbase.add_to_callback("process_input_buffer",
retractedtr, "retractedtr")}
-\begin{luacode}
+ \begin{luacode}
function dental ( s )
s = unicode.utf8.gsub ( s , '(%a)̪', '\\textsubbridge{%1}' )
return s
end
-\end{luacode}
-\directlua{luatexbase.add_to_callback("process_input_buffer",
+ \end{luacode}
+ \directlua{luatexbase.add_to_callback("process_input_buffer",
dental, "dental")}
-\begin{luacode}
+ \begin{luacode}
function apical ( s )
s = unicode.utf8.gsub ( s , '(%a)̺', '\\textinvsubbridge{%1}' )
return s
end
-\end{luacode}
-\directlua{luatexbase.add_to_callback("process_input_buffer",
+ \end{luacode}
+ \directlua{luatexbase.add_to_callback("process_input_buffer",
apical, "apical")}
-\begin{luacode}
+ \begin{luacode}
function laminal ( s )
s = unicode.utf8.gsub ( s , '(%a)̻', '\\textsubsquare{%1}' )
return s
end
-\end{luacode}
-\directlua{luatexbase.add_to_callback("process_input_buffer",
+ \end{luacode}
+ \directlua{luatexbase.add_to_callback("process_input_buffer",
laminal, "laminal")}
-\begin{luacode}
+ \begin{luacode}
function unaudible ( s )
s = unicode.utf8.gsub ( s , '(%a)̚', '%1\\textcorner' )
return s
end
-\end{luacode}
-\directlua{luatexbase.add_to_callback("process_input_buffer",
+ \end{luacode}
+ \directlua{luatexbase.add_to_callback("process_input_buffer",
unaudible, "unaudible")}
%% Tie bars
\begin{luacode}
- function tiebarup ( s )
- s = unicode.utf8.gsub ( s , '(%a)͡(%a)', '\\texttoptiebar{%1%2}' )
- return s
- end
+ function tiebarup ( s )
+ s = unicode.utf8.gsub ( s , '(%a)͡(%a)', '\\texttoptiebar{%1%2}' )
+ return s
+ end
\end{luacode}
\directlua{luatexbase.add_to_callback("process_input_buffer",
- tiebarup, "tiebarup")}
+ tiebarup, "tiebarup")}
\begin{luacode}
- function tiebardown ( s )
- s = unicode.utf8.gsub ( s , '(%a)͜(%a)', '\\textbottomtiebar{%1%2}' )
- return s
- end
+ function tiebardown ( s )
+ s = unicode.utf8.gsub ( s , '(%a)͜(%a)', '\\textbottomtiebar{%1%2}' )
+ return s
+ end
\end{luacode}
\directlua{luatexbase.add_to_callback("process_input_buffer",
- tiebardown, "tiebardown")}
+ tiebardown, "tiebardown")}
\begin{luacode}
- function risefall ( s )
- s = unicode.utf8.gsub ( s , '(%a)᷈', '\\textrisefall{%1}' )
- return s
- end
+ function risefall ( s )
+ s = unicode.utf8.gsub ( s , '(%a)᷈', '\\textrisefall{%1}' )
+ return s
+ end
\end{luacode}
\directlua{luatexbase.add_to_callback("process_input_buffer",
- risefall, "risefall")}
+ risefall, "risefall")}
\begin{luacode}
- function rising ( s )
- s = unicode.utf8.gsub ( s , '(%a)᷄', '\\texthighrise{%1}' )
- return s
- end
+ function rising ( s )
+ s = unicode.utf8.gsub ( s , '(%a)᷄', '\\texthighrise{%1}' )
+ return s
+ end
\end{luacode}
\directlua{luatexbase.add_to_callback("process_input_buffer",
- rising, "rising")}
+ rising, "rising")}
\begin{luacode}
- function falling ( s )
- s = unicode.utf8.gsub ( s , '(%a)᷅', '\\textlowrise{%1}' )
- return s
- end
+ function falling ( s )
+ s = unicode.utf8.gsub ( s , '(%a)᷅', '\\textlowrise{%1}' )
+ return s
+ end
\end{luacode}
\directlua{luatexbase.add_to_callback("process_input_buffer",
- falling, "falling")}
+ falling, "falling")}
\fi
% \end{macrocode}
-% Option \verb|nodiacritics| provided for using the package without Lua\LaTeX. Enabling this option won't print any diacritics. Help from Samcarter and Mico Loretan on different platforms\footnote{Samcarter's \href{https://topanswers.xyz/tex?q=1332\#a1577}{answer} on TopAnswer \& Mico Loretan's \href{https://tex.stackexchange.com/a/563447/174620}{answer} on TeX.SE.} gave a right direction to this code.
+% Option \verb|nodiacritics| provided for using the package without
+% Lua\LaTeX. Enabling this option won't print any diacritics. Help from
+% Samcarter and Mico Loretan on different platforms\footnote{Samcarter's
+% \href{https://topanswers.xyz/tex?q=1332\#a1577}{answer} on TopAnswer \& Mico
+% Loretan's \href{https://tex.stackexchange.com/a/563447/174620}{answer} on
+% TeX.SE.} gave a right direction to this code.
% \begin{macrocode}
%% Pulmonic Consonants
%% Plosives
@@ -373,6 +405,7 @@ TIPA typefaces with unicode characters]
%% Nasals
\newunicodechar{ɱ}{\textltailm}
\newunicodechar{ɳ}{\textrtailn}
+\newunicodechar{ɲ}{\textltailn} %% Added in v0.2
\newunicodechar{ɴ}{\textscn}
%% Trills
\newunicodechar{ʙ}{\textscb}
@@ -434,6 +467,11 @@ TIPA typefaces with unicode characters]
\newunicodechar{ɐ}{\textturna}
\newunicodechar{ɶ}{\textscoelig}
\newunicodechar{ɒ}{\textturnscripta}
+%% Open
+%% Reported and added by Heller, Thomas on 2021/03/13
+%% Bug report - https://gitlab.com/niranjanvikastambe/unitipa/-/issues/1
+%% MR - https://gitlab.com/niranjanvikastambe/unitipa/-/merge_requests/1
+\newunicodechar{ɑ}{\textscripta}
%% Non-Pulmonic
\newunicodechar{ʘ}{\textbullseye}
\newunicodechar{ǀ}{\textpipe}
@@ -478,4 +516,8 @@ TIPA typefaces with unicode characters]
%</package>
% \end{macrocode}
% \end{implementation}
+% \RecordChanges
+% \changes{v0.1}{2020/09/21}{Initial version}
+% \changes{v0.2}{2021/03/13}{Added characters `ɑ' and `ɲ'}
+% \PrintChanges
% \Finale \ No newline at end of file
diff --git a/Master/texmf-dist/tex/lualatex/unitipa/unitipa.sty b/Master/texmf-dist/tex/lualatex/unitipa/unitipa.sty
index a6a8a4fd211..b9a3bc9e1f6 100644
--- a/Master/texmf-dist/tex/lualatex/unitipa/unitipa.sty
+++ b/Master/texmf-dist/tex/lualatex/unitipa/unitipa.sty
@@ -31,23 +31,22 @@
%% and the derived file unitipa.sty.
%% ---------------------------------------------------------------------------
%%
-\def\unitipaPackageName{unitipa}
-\def\unitipaPackageVersion{0.1}
-\def\unitipaPackageDate{2020/21/09}
-\def\unitipaPackageDescription{TIPA typefaces with Unicode characters.}
-
-\ProvidesPackage{unitipa}[2020/21/09 v0.1
+\def\unitipaname{unitipa}
+\def\unitipaversion{0.2}
+\def\unitipadate{2021/03/13}
+\def\unitipadescription{TIPA typefaces with Unicode characters.}
+\ProvidesPackage{unitipa}[2021/03/13 v0.2
TIPA typefaces with unicode characters]
\RequirePackage{tipa}
\RequirePackage{graphicx}
\RequirePackage{newunicodechar}
\RequirePackage{fontspec}
\RequirePackage{pgfkeys}
-\pgfkeys{
- unitipa/.is family, unitipa/.cd,
- ipafont/.code={\setfontfamily{\ipa}{#1}},
- ipafont=DoulosSIL,
-}
+\pgfkeys{%
+ unitipa/.is family, unitipa/.cd,%
+ ipafont/.code={\setfontfamily{\ipa}{#1}},%
+ ipafont=DoulosSIL%
+}%
\DeclareTextFontCommand{\ipatext}{\ipa}
\def\unitipa@ipafont#1{\pgfkeys{unitipa/.cd,#1}}
\DeclareOption*{\expandafter\unitipa@ipafont\expandafter{\CurrentOption}}
@@ -83,186 +82,186 @@ TIPA typefaces with unicode characters]
s = unicode.utf8.gsub ( s , '(%a)̹', '\\textsubrhalfring{%1}' )
return s
end
-\end{luacode}
-\directlua{luatexbase.add_to_callback("process_input_buffer",
+ \end{luacode}
+ \directlua{luatexbase.add_to_callback("process_input_buffer",
morerounded, "morerounded")}
-\begin{luacode}
+ \begin{luacode}
function lessrounded ( s )
s = unicode.utf8.gsub ( s , '(%a)̜', '\\textsublhalfring{%1}' )
return s
end
-\end{luacode}
-\directlua{luatexbase.add_to_callback("process_input_buffer",
+ \end{luacode}
+ \directlua{luatexbase.add_to_callback("process_input_buffer",
lessrounded, "lessrounded")}
-\begin{luacode}
+ \begin{luacode}
function advanced ( s )
s = unicode.utf8.gsub ( s , '(%a)̟', '\\textsubplus{%1}' )
return s
end
-\end{luacode}
-\directlua{luatexbase.add_to_callback("process_input_buffer",
+ \end{luacode}
+ \directlua{luatexbase.add_to_callback("process_input_buffer",
advanced, "advanced")}
-\begin{luacode}
+ \begin{luacode}
function retracted ( s )
s = unicode.utf8.gsub ( s , '(%a)̠', '\\textsubbar{%1}' )
return s
end
-\end{luacode}
-\directlua{luatexbase.add_to_callback("process_input_buffer",
+ \end{luacode}
+ \directlua{luatexbase.add_to_callback("process_input_buffer",
retracted, "retracted")}
-\begin{luacode}
+ \begin{luacode}
function midcentralized ( s )
s = unicode.utf8.gsub ( s , '(%a)̽', '\\textovercross{%1}' )
return s
end
-\end{luacode}
-\directlua{luatexbase.add_to_callback("process_input_buffer",
+ \end{luacode}
+ \directlua{luatexbase.add_to_callback("process_input_buffer",
midcentralized, "midcentralized")}
-\begin{luacode}
+ \begin{luacode}
function syllabic ( s )
s = unicode.utf8.gsub ( s , '(%a)̩', '\\textsyllabic{%1}' )
return s
end
-\end{luacode}
-\directlua{luatexbase.add_to_callback("process_input_buffer",
+ \end{luacode}
+ \directlua{luatexbase.add_to_callback("process_input_buffer",
syllabic, "syllabic")}
-\begin{luacode}
+ \begin{luacode}
function nonsyllabic ( s )
s = unicode.utf8.gsub ( s , '(%a)̯', '\\textsubarch{%1}' )
return s
end
-\end{luacode}
-\directlua{luatexbase.add_to_callback("process_input_buffer",
+ \end{luacode}
+ \directlua{luatexbase.add_to_callback("process_input_buffer",
nonsyllabic, "nonsyllabic")}
-\begin{luacode}
+ \begin{luacode}
function breathyvoiced ( s )
s = unicode.utf8.gsub ( s , '(%a)̤', '\\textsubumlaut{%1}' )
return s
end
-\end{luacode}
-\directlua{luatexbase.add_to_callback("process_input_buffer",
+ \end{luacode}
+ \directlua{luatexbase.add_to_callback("process_input_buffer",
breathyvoiced, "breathyvoiced")}
-\begin{luacode}
+ \begin{luacode}
function linguolabial ( s )
s = unicode.utf8.gsub ( s , '(%a)̼', '\\textseagull{%1}' )
return s
end
-\end{luacode}
-\directlua{luatexbase.add_to_callback("process_input_buffer",
+ \end{luacode}
+ \directlua{luatexbase.add_to_callback("process_input_buffer",
linguolabial, "linguolabial")}
-\begin{luacode}
+ \begin{luacode}
function velarized ( s )
s = unicode.utf8.gsub ( s , '(%a)̴', '\\textsuperimposetilde{%1}' )
return s
end
-\end{luacode}
-\directlua{luatexbase.add_to_callback("process_input_buffer",
+ \end{luacode}
+ \directlua{luatexbase.add_to_callback("process_input_buffer",
velarized, "velarized")}
-\begin{luacode}
+ \begin{luacode}
function raised ( s )
s = unicode.utf8.gsub ( s , '(%a)̝', '\\textraising{%1}' )
return s
end
-\end{luacode}
-\directlua{luatexbase.add_to_callback("process_input_buffer",
+ \end{luacode}
+ \directlua{luatexbase.add_to_callback("process_input_buffer",
raised, "raised")}
-\begin{luacode}
+ \begin{luacode}
function lowered ( s )
s = unicode.utf8.gsub ( s , '(%a)̞', '\\textlowering{%1}' )
return s
end
-\end{luacode}
-\directlua{luatexbase.add_to_callback("process_input_buffer",
+ \end{luacode}
+ \directlua{luatexbase.add_to_callback("process_input_buffer",
lowered, "lowered")}
-\begin{luacode}
+ \begin{luacode}
function advancedtr ( s )
s = unicode.utf8.gsub ( s , '(%a)̘', '\\textadvancing{%1}' )
return s
end
-\end{luacode}
-\directlua{luatexbase.add_to_callback("process_input_buffer",
+ \end{luacode}
+ \directlua{luatexbase.add_to_callback("process_input_buffer",
advancedtr, "advancedtr")}
-\begin{luacode}
+ \begin{luacode}
function retractedtr ( s )
s = unicode.utf8.gsub ( s , '(%a)̙', '\\textretracting{%1}' )
return s
end
-\end{luacode}
-\directlua{luatexbase.add_to_callback("process_input_buffer",
+ \end{luacode}
+ \directlua{luatexbase.add_to_callback("process_input_buffer",
retractedtr, "retractedtr")}
-\begin{luacode}
+ \begin{luacode}
function dental ( s )
s = unicode.utf8.gsub ( s , '(%a)̪', '\\textsubbridge{%1}' )
return s
end
-\end{luacode}
-\directlua{luatexbase.add_to_callback("process_input_buffer",
+ \end{luacode}
+ \directlua{luatexbase.add_to_callback("process_input_buffer",
dental, "dental")}
-\begin{luacode}
+ \begin{luacode}
function apical ( s )
s = unicode.utf8.gsub ( s , '(%a)̺', '\\textinvsubbridge{%1}' )
return s
end
-\end{luacode}
-\directlua{luatexbase.add_to_callback("process_input_buffer",
+ \end{luacode}
+ \directlua{luatexbase.add_to_callback("process_input_buffer",
apical, "apical")}
-\begin{luacode}
+ \begin{luacode}
function laminal ( s )
s = unicode.utf8.gsub ( s , '(%a)̻', '\\textsubsquare{%1}' )
return s
end
-\end{luacode}
-\directlua{luatexbase.add_to_callback("process_input_buffer",
+ \end{luacode}
+ \directlua{luatexbase.add_to_callback("process_input_buffer",
laminal, "laminal")}
-\begin{luacode}
+ \begin{luacode}
function unaudible ( s )
s = unicode.utf8.gsub ( s , '(%a)̚', '%1\\textcorner' )
return s
end
-\end{luacode}
-\directlua{luatexbase.add_to_callback("process_input_buffer",
+ \end{luacode}
+ \directlua{luatexbase.add_to_callback("process_input_buffer",
unaudible, "unaudible")}
%% Tie bars
\begin{luacode}
- function tiebarup ( s )
- s = unicode.utf8.gsub ( s , '(%a)͡(%a)', '\\texttoptiebar{%1%2}' )
- return s
- end
+ function tiebarup ( s )
+ s = unicode.utf8.gsub ( s , '(%a)͡(%a)', '\\texttoptiebar{%1%2}' )
+ return s
+ end
\end{luacode}
\directlua{luatexbase.add_to_callback("process_input_buffer",
- tiebarup, "tiebarup")}
+ tiebarup, "tiebarup")}
\begin{luacode}
- function tiebardown ( s )
- s = unicode.utf8.gsub ( s , '(%a)͜(%a)', '\\textbottomtiebar{%1%2}' )
- return s
- end
+ function tiebardown ( s )
+ s = unicode.utf8.gsub ( s , '(%a)͜(%a)', '\\textbottomtiebar{%1%2}' )
+ return s
+ end
\end{luacode}
\directlua{luatexbase.add_to_callback("process_input_buffer",
- tiebardown, "tiebardown")}
+ tiebardown, "tiebardown")}
\begin{luacode}
- function risefall ( s )
- s = unicode.utf8.gsub ( s , '(%a)᷈', '\\textrisefall{%1}' )
- return s
- end
+ function risefall ( s )
+ s = unicode.utf8.gsub ( s , '(%a)᷈', '\\textrisefall{%1}' )
+ return s
+ end
\end{luacode}
\directlua{luatexbase.add_to_callback("process_input_buffer",
- risefall, "risefall")}
+ risefall, "risefall")}
\begin{luacode}
- function rising ( s )
- s = unicode.utf8.gsub ( s , '(%a)᷄', '\\texthighrise{%1}' )
- return s
- end
+ function rising ( s )
+ s = unicode.utf8.gsub ( s , '(%a)᷄', '\\texthighrise{%1}' )
+ return s
+ end
\end{luacode}
\directlua{luatexbase.add_to_callback("process_input_buffer",
- rising, "rising")}
+ rising, "rising")}
\begin{luacode}
- function falling ( s )
- s = unicode.utf8.gsub ( s , '(%a)᷅', '\\textlowrise{%1}' )
- return s
- end
+ function falling ( s )
+ s = unicode.utf8.gsub ( s , '(%a)᷅', '\\textlowrise{%1}' )
+ return s
+ end
\end{luacode}
\directlua{luatexbase.add_to_callback("process_input_buffer",
- falling, "falling")}
+ falling, "falling")}
\fi
%% Pulmonic Consonants
%% Plosives
@@ -274,6 +273,7 @@ TIPA typefaces with unicode characters]
%% Nasals
\newunicodechar{ɱ}{\textltailm}
\newunicodechar{ɳ}{\textrtailn}
+\newunicodechar{ɲ}{\textltailn} %% Added in v0.2
\newunicodechar{ɴ}{\textscn}
%% Trills
\newunicodechar{ʙ}{\textscb}
@@ -335,6 +335,11 @@ TIPA typefaces with unicode characters]
\newunicodechar{ɐ}{\textturna}
\newunicodechar{ɶ}{\textscoelig}
\newunicodechar{ɒ}{\textturnscripta}
+%% Open
+%% Reported and added by Heller, Thomas on 2021/03/13
+%% Bug report - https://gitlab.com/niranjanvikastambe/unitipa/-/issues/1
+%% MR - https://gitlab.com/niranjanvikastambe/unitipa/-/merge_requests/1
+\newunicodechar{ɑ}{\textscripta}
%% Non-Pulmonic
\newunicodechar{ʘ}{\textbullseye}
\newunicodechar{ǀ}{\textpipe}