texlive[56408] Master: unitipa (21sep20)

commits+karl at tug.org commits+karl at tug.org
Wed Sep 23 00:00:28 CEST 2020


Revision: 56408
          http://tug.org/svn/texlive?view=revision&revision=56408
Author:   karl
Date:     2020-09-23 00:00:27 +0200 (Wed, 23 Sep 2020)
Log Message:
-----------
unitipa (21sep20)

Modified Paths:
--------------
    trunk/Master/tlpkg/tlpsrc/collection-latexextra.tlpsrc

Added Paths:
-----------
    trunk/Master/texmf-dist/doc/lualatex/unitipa/
    trunk/Master/texmf-dist/doc/lualatex/unitipa/README.txt
    trunk/Master/texmf-dist/doc/lualatex/unitipa/unitipa.pdf
    trunk/Master/texmf-dist/source/lualatex/unitipa/
    trunk/Master/texmf-dist/source/lualatex/unitipa/unitipa.dtx
    trunk/Master/texmf-dist/source/lualatex/unitipa/unitipa.ins
    trunk/Master/texmf-dist/tex/lualatex/unitipa/
    trunk/Master/texmf-dist/tex/lualatex/unitipa/unitipa.sty
    trunk/Master/tlpkg/tlpsrc/unitipa.tlpsrc

Added: trunk/Master/texmf-dist/doc/lualatex/unitipa/README.txt
===================================================================
--- trunk/Master/texmf-dist/doc/lualatex/unitipa/README.txt	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/lualatex/unitipa/README.txt	2020-09-22 22:00:27 UTC (rev 56408)
@@ -0,0 +1,10 @@
+--------------------------------------------------------------------------
+Package:      unitipa
+Author:       Niranjan
+Version:      0.1  (21 September, 2020)
+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.
+--------------------------------------------------------------------------
+


Property changes on: trunk/Master/texmf-dist/doc/lualatex/unitipa/README.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/lualatex/unitipa/unitipa.pdf
===================================================================
(Binary files differ)

Index: trunk/Master/texmf-dist/doc/lualatex/unitipa/unitipa.pdf
===================================================================
--- trunk/Master/texmf-dist/doc/lualatex/unitipa/unitipa.pdf	2020-09-22 21:58:57 UTC (rev 56407)
+++ trunk/Master/texmf-dist/doc/lualatex/unitipa/unitipa.pdf	2020-09-22 22:00:27 UTC (rev 56408)

Property changes on: trunk/Master/texmf-dist/doc/lualatex/unitipa/unitipa.pdf
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/pdf
\ No newline at end of property
Added: trunk/Master/texmf-dist/source/lualatex/unitipa/unitipa.dtx
===================================================================
--- trunk/Master/texmf-dist/source/lualatex/unitipa/unitipa.dtx	                        (rev 0)
+++ trunk/Master/texmf-dist/source/lualatex/unitipa/unitipa.dtx	2020-09-22 22:00:27 UTC (rev 56408)
@@ -0,0 +1,481 @@
+% \iffalse meta-comment
+%
+% File: unitipa.dtx
+% ---------------------------------------------------------------------------
+% Package:     unitipa
+% Author:      Niranjan
+% 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.
+% ---------------------------------------------------------------------------
+% This work may be distributed and/or modified under the conditions of the 
+% LaTeX Project Public License, either version 1.3c 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.
+% 
+% This work has the LPPL maintenance status `maintained'.
+% 
+% The Current Maintainer of this work is Niranjan.
+% 
+% This work consists of the files unitipa.dtx
+%                                 unitipa.ins
+% and the derived file            unitipa.sty.
+% \fi
+% \iffalse
+%<*internal>
+\iffalse
+%</internal>
+%<*readme>
+--------------------------------------------------------------------------
+Package:      unitipa
+Author:       Niranjan
+Version:      0.1  (21 September, 2020)
+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.
+--------------------------------------------------------------------------
+%</readme>
+%<*internal>
+\fi
+%</internal>
+%<*driver|package>
+\def\unitipaPackageName{unitipa}
+\def\unitipaPackageVersion{0.1}
+\def\unitipaPackageDate{2020/21/09}
+\def\unitipaPackageDescription{TIPA typefaces with Unicode characters.}
+%</driver|package>
+%<*driver>
+\documentclass{l3doc}
+\usepackage{tipa}
+\usepackage{graphicx}
+\usepackage{unitipa}
+\usepackage{hyperref}
+\usepackage{xcolor}
+\hypersetup{
+colorlinks,
+linkcolor=red!60!black,
+citecolor=green!60!black,
+urlcolor=blue!60!black
+}
+\usepackage{fontawesome5}
+\begin{document}
+    \DocInput{\unitipaPackageName.dtx}
+\end{document}
+%</driver>
+% \fi
+% \title{The \pkg{\unitipaPackageName} package}
+% \author{Niranjan}
+% \date^^A
+%   {^^A
+%     Version \unitipaPackageVersion\ --- \unitipaPackageDate\\[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.
+% \begin{description}
+% \item[Plosives] ʈ ɖ ɟ ɢ ʔ
+% \item[Nasals] ɱ ɳ ɴ
+% \item[Trills] ʙ ʀ
+% \item[Taps or flaps] ⱱ ɾ ɽ
+% \item[Fricatives] ɸ β θ ʃ ʒ ʂ ʐ ɣ χ ʁ ʕ ɦ
+% \item[Lateral fricatives] ɬ ɮ
+% \item[Approximants] ʋ ɹ ɻ ɰ
+% \item[Lateral approximants] ɭ ʎ ʟ
+% \item[Affricates] ʧ ʤ ʦ ʣ
+% \item[Close vowels] ɨ ʉ ɯ
+% \item[Near-close vowels] ɪ ʏ ʊ
+% \item[Close-mid vowels] ɵ ɤ
+% \item[Open-mid vowels] ɛ ɜ ɞ ʌ ɔ
+% \item[Near-open vowels] ɐ ɶ ɒ
+% \item[Clicks] ʘ ǀ ǃ ǂ ǁ
+% \item[Voiced Implosives] ɓ ɗ ʄ ɠ ʛ
+% \item[Ejective] ʼ
+% \item[Suprasegmentals] ˈ ˌ ː ˑ
+% \item[Other symbols] ʍ ɥ ʜ ʢ ʡ ɕ ʑ ɺ ɧ
+% \item[Dependent diacritics] k̥ e̬ o̹ o̜ u̟ l̠ e̽ m̩ a̯ b̤ t̼ l̴ ɛ̝ e̞ e̘ e̙ t̪ t̺ n̻ p̚
+% \item[Independent diacritics] kʰ gʱ kʷ cʲ kˠ pˤ
+% \item[Tie bars] t͜s k͡p
+% \item[Tones] ꜜ ꜛ a᷄ e᷅ e᷈
+% \end{description}
+% \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.
+% \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.
+% \begin{syntax}
+% ipafont=\meta{font name}
+% \end{syntax}
+% \end{function}
+% \end{documentation}
+% \begin{implementation}
+% \section{Implementation}
+%    \begin{macrocode}
+%<@@=unitipa>
+%<*package>
+%    \end{macrocode}
+%    \begin{macrocode}
+\ProvidesPackage{unitipa}[2020/21/09 v0.1
+TIPA typefaces with unicode characters]
+\RequirePackage{tipa}
+%    \end{macrocode}
+% Provide package with its basic information and load package \pkg{tipa}.
+%    \begin{macrocode}
+\RequirePackage{graphicx}
+%    \end{macrocode}
+% 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,
+}
+\DeclareTextFontCommand{\ipatext}{\ipa}
+\def\unitipa at ipafont#1{\pgfkeys{unitipa/.cd,#1}}
+\DeclareOption*{\expandafter\unitipa at ipafont\expandafter{\CurrentOption}}
+%    \end{macrocode}
+% Option \verb|ipafont| provided using \pkg{pgfkeys}.
+%    \begin{macrocode}
+\newif\ifnodiacritics
+\nodiacriticsfalse
+\DeclareOption{nodiacritics}{\nodiacriticstrue}
+\ProcessOptions\relax
+\ifnodiacritics
+\relax
+\else
+\RequirePackage{iftex}
+\RequirePackage{luacode}
+\RequireLuaTeX
+%% Dependent diacritic marks
+\begin{luacode}
+    function voiceless ( s )
+    s = unicode.utf8.gsub ( s , '(%a)̥', '\\textsubring{%1}' )
+    return s
+    end
+\end{luacode}
+\directlua{luatexbase.add_to_callback("process_input_buffer",
+    voiceless, "voiceless")}
+\begin{luacode}
+    function voiced ( s )
+    s = unicode.utf8.gsub ( s , '(%a)̬', '\\textsubwedge{%1}' )
+    return s
+    end
+\end{luacode}
+\directlua{luatexbase.add_to_callback("process_input_buffer",
+    voiced, "voiced")}
+\begin{luacode}
+    function morerounded ( s )
+    s = unicode.utf8.gsub ( s , '(%a)̹', '\\textsubrhalfring{%1}' )
+    return s
+    end
+\end{luacode}
+\directlua{luatexbase.add_to_callback("process_input_buffer",
+    morerounded, "morerounded")}
+\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",
+    lessrounded, "lessrounded")}
+\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",
+    advanced, "advanced")}
+\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",
+    retracted, "retracted")}
+\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",
+    midcentralized, "midcentralized")}
+\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",
+    syllabic, "syllabic")}
+\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",
+    nonsyllabic, "nonsyllabic")}
+\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",
+    breathyvoiced, "breathyvoiced")}
+\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",
+    linguolabial, "linguolabial")}
+\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",
+    velarized, "velarized")}
+\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",
+    raised, "raised")}
+\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",
+    lowered, "lowered")}
+\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",
+    advancedtr, "advancedtr")}
+\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",
+    retractedtr, "retractedtr")}
+\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",
+    dental, "dental")}
+\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",
+    apical, "apical")}
+\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",
+    laminal, "laminal")}
+\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",
+    unaudible, "unaudible")}
+%% Tie bars
+\begin{luacode}
+    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")}
+\begin{luacode}
+    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")}
+\begin{luacode}
+    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")}
+\begin{luacode}
+    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")}
+\begin{luacode}
+    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")}
+\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.
+%    \begin{macrocode}
+%% Pulmonic Consonants
+%% Plosives
+\newunicodechar{ʈ}{\textrtailt}
+\newunicodechar{ɖ}{\textrtaild}
+\newunicodechar{ɟ}{\textbardotlessj}
+\newunicodechar{ɢ}{\textscg}
+\newunicodechar{ʔ}{\textglotstop}
+%% Nasals
+\newunicodechar{ɱ}{\textltailm}
+\newunicodechar{ɳ}{\textrtailn}
+\newunicodechar{ɴ}{\textscn}
+%% Trills
+\newunicodechar{ʙ}{\textscb}
+\newunicodechar{ʀ}{\textscr}
+%% Taps or flaps
+\newunicodechar{ⱱ}{\ipatext{ⱱ}} %% Sorry for the bad typography!
+\newunicodechar{ɾ}{\textfishhookr}
+\newunicodechar{ɽ}{\textrtailr}
+%% Fricatives
+\newunicodechar{ɸ}{\textphi}
+\newunicodechar{β}{\textbeta}
+\newunicodechar{θ}{\texttheta}
+\newunicodechar{ʃ}{\textesh}
+\newunicodechar{ʒ}{\textyogh}
+\newunicodechar{ʂ}{\textrtails}
+\newunicodechar{ʐ}{\textrtailz}
+\newunicodechar{ʝ}{\textctj}
+\newunicodechar{ɣ}{\textgamma}
+\newunicodechar{χ}{\textchi}
+\newunicodechar{ʁ}{\textinvscr}
+\newunicodechar{ʕ}{\textrevglotstop}
+\newunicodechar{ɦ}{\texthth}
+%% Lateral fricatives
+\newunicodechar{ɬ}{\textbeltl}
+\newunicodechar{ɮ}{\textlyoghlig}
+%% Approximants
+\newunicodechar{ʋ}{\textscriptv}
+\newunicodechar{ɹ}{\textturnr}
+\newunicodechar{ɻ}{\textturnrrtail}
+\newunicodechar{ɰ}{\textturnmrleg}
+%% Lateral approximants
+\newunicodechar{ɭ}{\textrtaill}
+\newunicodechar{ʎ}{\textturny}
+\newunicodechar{ʟ}{\textscl}
+%% Affricates
+\newunicodechar{ʧ}{\textteshlig}
+\newunicodechar{ʤ}{\textdyoghlig}
+\newunicodechar{ʦ}{\texttslig}
+\newunicodechar{ʣ}{\textdzlig}
+%% Vowels
+%% Close
+\newunicodechar{ɨ}{\textbari}
+\newunicodechar{ʉ}{\textbaru}
+\newunicodechar{ɯ}{\textturnm}
+%% Near-close
+\newunicodechar{ɪ}{\textsci}
+\newunicodechar{ʏ}{\textscy}
+\newunicodechar{ʊ}{\textupsilon}
+%% Close-mid
+\newunicodechar{ɵ}{\textbaro}
+\newunicodechar{ɤ}{\textramshorns}
+%% Open-mid
+\newunicodechar{ɛ}{\textepsilon}
+\newunicodechar{ɜ}{\textrevepsilon}
+\newunicodechar{ɞ}{\reflectbox{\textcloseepsilon}} %% Latest changes
+\newunicodechar{ʌ}{\textturnv}
+\newunicodechar{ɔ}{\textopeno}
+%% Near-open
+\newunicodechar{ɐ}{\textturna}
+\newunicodechar{ɶ}{\textscoelig}
+\newunicodechar{ɒ}{\textturnscripta}
+%% Non-Pulmonic
+\newunicodechar{ʘ}{\textbullseye}
+\newunicodechar{ǀ}{\textpipe}
+\newunicodechar{ǃ}{\textipa{!}}
+\newunicodechar{ǂ}{\textdoublebarpipe}
+\newunicodechar{ǁ}{\textdoublepipe}
+%% Voiced Implosives
+\newunicodechar{ɓ}{\texthtb}
+\newunicodechar{ɗ}{\texthtd}
+\newunicodechar{ʄ}{\texthtbardotlessj}
+\newunicodechar{ɠ}{\texthtg}
+\newunicodechar{ʛ}{\texthtscg}
+\newunicodechar{ʼ}{'}
+%% Suprasegmentals
+\newunicodechar{ˈ}{\textprimstress}
+\newunicodechar{ˌ}{\textsecstress}
+\newunicodechar{ː}{\textlengthmark}
+\newunicodechar{ˑ}{\texthalflength}
+\newunicodechar{ʍ}{\textturnw}
+\newunicodechar{ɥ}{\textturnh}
+\newunicodechar{ʜ}{\textsch}
+\newunicodechar{ʢ}{\textbarrevglotstop}
+\newunicodechar{ʡ}{\textbarglotstop}
+\newunicodechar{ɕ}{\textctc}
+\newunicodechar{ʑ}{\textctz}
+\newunicodechar{ɺ}{\textturnlonglegr}
+\newunicodechar{ɧ}{\texththeng}
+%% Diacritics
+\newunicodechar{ʰ}{\textsuperscript{h}}
+\newunicodechar{ʱ}{\textsuperscript{ɦ}}
+\newunicodechar{ʷ}{\textsuperscript{w}}
+\newunicodechar{ʲ}{\textsuperscript{j}}
+\newunicodechar{ˠ}{\textsuperscript{ɣ}}
+\newunicodechar{ˤ}{\textsuperscript{ʕ}}
+%% Tones independent diacritics
+\newunicodechar{ꜜ}{\textdownstep}
+\newunicodechar{ꜛ}{\textupstep}
+%% \newunicodechar{︎↗}{\textglobrise} %% Not working :'(
+%% \newunicodechar{↘}{\textglobfall} %% Need help here
+%    \end{macrocode}
+%    \begin{macrocode}
+%</package>
+%    \end{macrocode}
+% \end{implementation}
+% \Finale
\ No newline at end of file


Property changes on: trunk/Master/texmf-dist/source/lualatex/unitipa/unitipa.dtx
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/source/lualatex/unitipa/unitipa.ins
===================================================================
--- trunk/Master/texmf-dist/source/lualatex/unitipa/unitipa.ins	                        (rev 0)
+++ trunk/Master/texmf-dist/source/lualatex/unitipa/unitipa.ins	2020-09-22 22:00:27 UTC (rev 56408)
@@ -0,0 +1,47 @@
+% File: unitipa.ins
+\input l3docstrip.tex
+
+\keepsilent
+\askforoverwritefalse
+
+\preamble
+
+---------------------------------------------------------------------------
+Package:      unitipa
+Author:       Niranjan
+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.
+---------------------------------------------------------------------------
+This work may be distributed and/or modified under the conditions of the 
+LaTeX Project Public License, either version 1.3c 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.
+
+This work has the LPPL maintenance status `maintained'.
+
+The Current Maintainer of this work is Niranjan.
+
+This work consists of the files unitipa.dtx
+                                unitipa.ins
+and the derived file            unitipa.sty.
+---------------------------------------------------------------------------
+
+\endpreamble
+
+\usedir{tex/latex/\jobname}
+\generate{
+  \file{\jobname.sty}{\from{\jobname.dtx}{package}}
+}
+
+\nopreamble\nopostamble
+\usedir{doc/latex/\jobname}
+\generate{
+  \file{README.txt}{\from{\jobname.dtx}{readme}}
+}
+
+\endbatchfile
\ No newline at end of file

Added: trunk/Master/texmf-dist/tex/lualatex/unitipa/unitipa.sty
===================================================================
--- trunk/Master/texmf-dist/tex/lualatex/unitipa/unitipa.sty	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/lualatex/unitipa/unitipa.sty	2020-09-22 22:00:27 UTC (rev 56408)
@@ -0,0 +1,379 @@
+%%
+%% This is file `unitipa.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% unitipa.dtx  (with options: `package')
+%% 
+%% ---------------------------------------------------------------------------
+%% Package:      unitipa
+%% Author:       Niranjan
+%% 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.
+%% ---------------------------------------------------------------------------
+%% This work may be distributed and/or modified under the conditions of the
+%% LaTeX Project Public License, either version 1.3c 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.
+%% 
+%% This work has the LPPL maintenance status `maintained'.
+%% 
+%% The Current Maintainer of this work is Niranjan.
+%% 
+%% This work consists of the files unitipa.dtx
+%%                                 unitipa.ins
+%% 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
+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,
+}
+\DeclareTextFontCommand{\ipatext}{\ipa}
+\def\unitipa at ipafont#1{\pgfkeys{unitipa/.cd,#1}}
+\DeclareOption*{\expandafter\unitipa at ipafont\expandafter{\CurrentOption}}
+\newif\ifnodiacritics
+\nodiacriticsfalse
+\DeclareOption{nodiacritics}{\nodiacriticstrue}
+\ProcessOptions\relax
+\ifnodiacritics
+\relax
+\else
+\RequirePackage{iftex}
+\RequirePackage{luacode}
+\RequireLuaTeX
+%% Dependent diacritic marks
+\begin{luacode}
+    function voiceless ( s )
+    s = unicode.utf8.gsub ( s , '(%a)̥', '\\textsubring{%1}' )
+    return s
+    end
+\end{luacode}
+\directlua{luatexbase.add_to_callback("process_input_buffer",
+    voiceless, "voiceless")}
+\begin{luacode}
+    function voiced ( s )
+    s = unicode.utf8.gsub ( s , '(%a)̬', '\\textsubwedge{%1}' )
+    return s
+    end
+\end{luacode}
+\directlua{luatexbase.add_to_callback("process_input_buffer",
+    voiced, "voiced")}
+\begin{luacode}
+    function morerounded ( s )
+    s = unicode.utf8.gsub ( s , '(%a)̹', '\\textsubrhalfring{%1}' )
+    return s
+    end
+\end{luacode}
+\directlua{luatexbase.add_to_callback("process_input_buffer",
+    morerounded, "morerounded")}
+\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",
+    lessrounded, "lessrounded")}
+\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",
+    advanced, "advanced")}
+\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",
+    retracted, "retracted")}
+\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",
+    midcentralized, "midcentralized")}
+\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",
+    syllabic, "syllabic")}
+\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",
+    nonsyllabic, "nonsyllabic")}
+\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",
+    breathyvoiced, "breathyvoiced")}
+\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",
+    linguolabial, "linguolabial")}
+\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",
+    velarized, "velarized")}
+\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",
+    raised, "raised")}
+\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",
+    lowered, "lowered")}
+\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",
+    advancedtr, "advancedtr")}
+\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",
+    retractedtr, "retractedtr")}
+\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",
+    dental, "dental")}
+\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",
+    apical, "apical")}
+\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",
+    laminal, "laminal")}
+\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",
+    unaudible, "unaudible")}
+%% Tie bars
+\begin{luacode}
+    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")}
+\begin{luacode}
+    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")}
+\begin{luacode}
+    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")}
+\begin{luacode}
+    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")}
+\begin{luacode}
+    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")}
+\fi
+%% Pulmonic Consonants
+%% Plosives
+\newunicodechar{ʈ}{\textrtailt}
+\newunicodechar{ɖ}{\textrtaild}
+\newunicodechar{ɟ}{\textbardotlessj}
+\newunicodechar{ɢ}{\textscg}
+\newunicodechar{ʔ}{\textglotstop}
+%% Nasals
+\newunicodechar{ɱ}{\textltailm}
+\newunicodechar{ɳ}{\textrtailn}
+\newunicodechar{ɴ}{\textscn}
+%% Trills
+\newunicodechar{ʙ}{\textscb}
+\newunicodechar{ʀ}{\textscr}
+%% Taps or flaps
+\newunicodechar{ⱱ}{\ipatext{ⱱ}} %% Sorry for the bad typography!
+\newunicodechar{ɾ}{\textfishhookr}
+\newunicodechar{ɽ}{\textrtailr}
+%% Fricatives
+\newunicodechar{ɸ}{\textphi}
+\newunicodechar{β}{\textbeta}
+\newunicodechar{θ}{\texttheta}
+\newunicodechar{ʃ}{\textesh}
+\newunicodechar{ʒ}{\textyogh}
+\newunicodechar{ʂ}{\textrtails}
+\newunicodechar{ʐ}{\textrtailz}
+\newunicodechar{ʝ}{\textctj}
+\newunicodechar{ɣ}{\textgamma}
+\newunicodechar{χ}{\textchi}
+\newunicodechar{ʁ}{\textinvscr}
+\newunicodechar{ʕ}{\textrevglotstop}
+\newunicodechar{ɦ}{\texthth}
+%% Lateral fricatives
+\newunicodechar{ɬ}{\textbeltl}
+\newunicodechar{ɮ}{\textlyoghlig}
+%% Approximants
+\newunicodechar{ʋ}{\textscriptv}
+\newunicodechar{ɹ}{\textturnr}
+\newunicodechar{ɻ}{\textturnrrtail}
+\newunicodechar{ɰ}{\textturnmrleg}
+%% Lateral approximants
+\newunicodechar{ɭ}{\textrtaill}
+\newunicodechar{ʎ}{\textturny}
+\newunicodechar{ʟ}{\textscl}
+%% Affricates
+\newunicodechar{ʧ}{\textteshlig}
+\newunicodechar{ʤ}{\textdyoghlig}
+\newunicodechar{ʦ}{\texttslig}
+\newunicodechar{ʣ}{\textdzlig}
+%% Vowels
+%% Close
+\newunicodechar{ɨ}{\textbari}
+\newunicodechar{ʉ}{\textbaru}
+\newunicodechar{ɯ}{\textturnm}
+%% Near-close
+\newunicodechar{ɪ}{\textsci}
+\newunicodechar{ʏ}{\textscy}
+\newunicodechar{ʊ}{\textupsilon}
+%% Close-mid
+\newunicodechar{ɵ}{\textbaro}
+\newunicodechar{ɤ}{\textramshorns}
+%% Open-mid
+\newunicodechar{ɛ}{\textepsilon}
+\newunicodechar{ɜ}{\textrevepsilon}
+\newunicodechar{ɞ}{\reflectbox{\textcloseepsilon}} %% Latest changes
+\newunicodechar{ʌ}{\textturnv}
+\newunicodechar{ɔ}{\textopeno}
+%% Near-open
+\newunicodechar{ɐ}{\textturna}
+\newunicodechar{ɶ}{\textscoelig}
+\newunicodechar{ɒ}{\textturnscripta}
+%% Non-Pulmonic
+\newunicodechar{ʘ}{\textbullseye}
+\newunicodechar{ǀ}{\textpipe}
+\newunicodechar{ǃ}{\textipa{!}}
+\newunicodechar{ǂ}{\textdoublebarpipe}
+\newunicodechar{ǁ}{\textdoublepipe}
+%% Voiced Implosives
+\newunicodechar{ɓ}{\texthtb}
+\newunicodechar{ɗ}{\texthtd}
+\newunicodechar{ʄ}{\texthtbardotlessj}
+\newunicodechar{ɠ}{\texthtg}
+\newunicodechar{ʛ}{\texthtscg}
+\newunicodechar{ʼ}{'}
+%% Suprasegmentals
+\newunicodechar{ˈ}{\textprimstress}
+\newunicodechar{ˌ}{\textsecstress}
+\newunicodechar{ː}{\textlengthmark}
+\newunicodechar{ˑ}{\texthalflength}
+\newunicodechar{ʍ}{\textturnw}
+\newunicodechar{ɥ}{\textturnh}
+\newunicodechar{ʜ}{\textsch}
+\newunicodechar{ʢ}{\textbarrevglotstop}
+\newunicodechar{ʡ}{\textbarglotstop}
+\newunicodechar{ɕ}{\textctc}
+\newunicodechar{ʑ}{\textctz}
+\newunicodechar{ɺ}{\textturnlonglegr}
+\newunicodechar{ɧ}{\texththeng}
+%% Diacritics
+\newunicodechar{ʰ}{\textsuperscript{h}}
+\newunicodechar{ʱ}{\textsuperscript{ɦ}}
+\newunicodechar{ʷ}{\textsuperscript{w}}
+\newunicodechar{ʲ}{\textsuperscript{j}}
+\newunicodechar{ˠ}{\textsuperscript{ɣ}}
+\newunicodechar{ˤ}{\textsuperscript{ʕ}}
+%% Tones independent diacritics
+\newunicodechar{ꜜ}{\textdownstep}
+\newunicodechar{ꜛ}{\textupstep}
+%% \newunicodechar{︎↗}{\textglobrise} %% Not working :'(
+%% \newunicodechar{↘}{\textglobfall} %% Need help here
+\endinput
+%%
+%% End of file `unitipa.sty'.


Property changes on: trunk/Master/texmf-dist/tex/lualatex/unitipa/unitipa.sty
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Modified: trunk/Master/tlpkg/tlpsrc/collection-latexextra.tlpsrc
===================================================================
--- trunk/Master/tlpkg/tlpsrc/collection-latexextra.tlpsrc	2020-09-22 21:58:57 UTC (rev 56407)
+++ trunk/Master/tlpkg/tlpsrc/collection-latexextra.tlpsrc	2020-09-22 22:00:27 UTC (rev 56408)
@@ -1237,6 +1237,7 @@
 depend underlin
 depend underoverlap
 depend undolabl
+depend unitipa
 depend unitconv
 depend units
 depend unravel

Added: trunk/Master/tlpkg/tlpsrc/unitipa.tlpsrc
===================================================================


More information about the tex-live-commits mailing list.