diff options
author | Karl Berry <karl@freefriends.org> | 2021-03-14 23:24:23 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2021-03-14 23:24:23 +0000 |
commit | 765bb7a0ca9bd07433a197370f7169d7eff9e0d3 (patch) | |
tree | f687b0412d2c760df565c860580aa10679c9611f /Master/texmf-dist/source | |
parent | 3876c391d87b6c1dec0bf0f02b6113635d553175 (diff) |
unitipa (14mar21) (branch)
git-svn-id: svn://tug.org/texlive/branches/branch2020.0@58374 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source')
-rw-r--r-- | Master/texmf-dist/source/lualatex/unitipa/unitipa.dtx | 256 |
1 files changed, 149 insertions, 107 deletions
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 |