From 88f86594f60bca3b940a0854f0afb0e591dedb62 Mon Sep 17 00:00:00 2001 From: =?utf8?q?G=C3=BCnter=20Milde?= Date: Tue, 14 May 2019 17:12:46 +0200 Subject: [PATCH] Fix #11062, new LaTeX feature "textschwa". Following the suggestion in the Babel-Azerbaijani documentation, we use the glyphs from the Cyrillic fonts for the Latin text character. This fits better than IPA fonts (assuming there are matching Latin and Cyrillic fonts specified) and also provides bold etc. --- .../latex/languages/supported-languages.lyx | 95 +++++++++++++++++++ lib/unicodesymbols | 8 +- src/LaTeXFeatures.cpp | 13 ++- 3 files changed, 111 insertions(+), 5 deletions(-) diff --git a/autotests/export/latex/languages/supported-languages.lyx b/autotests/export/latex/languages/supported-languages.lyx index 42a3f6bdb9..c2962572bb 100644 --- a/autotests/export/latex/languages/supported-languages.lyx +++ b/autotests/export/latex/languages/supported-languages.lyx @@ -43,6 +43,9 @@ }{} \end_preamble \use_default_options false +\begin_modules +enumitem +\end_modules \maintain_unincluded_children false \language english \language_package auto @@ -647,6 +650,98 @@ Polyglossia asturian LangCode ast_ES \end_layout +\begin_layout Subsection* +Azerbaijani (Azeri, Azeri Turkish) +\end_layout + +\begin_layout Quote + +\emph on +Azərbaycan dili +\emph default + ( +\emph on +Azərbaycanca +\emph default +, +\emph on +Azərbaycan türkcəsi +\emph default +, tarixi adı: +\emph on +Türk +\emph default + +\emph on +dili +\emph default + və ya +\emph on +Türkcə +\emph default +)[11] — Azərbaycan Respublikasının və Rusiya Federasiyasının Dağıstan Respublika +sının rəsmi dövlət dilidir. + Altay dilləri ailəsinin türk dilləri şöbəsinin Oğuz sinfinin Qərb qrupuna + daxildir. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 +Babel azerbaijani (nicht von LyX unterstützt) +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 +Script Latin +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 +LangCode az_AZ +\end_layout + +\begin_layout Itemize +Arabic script was used up to 1929 (still used in Iran). + +\begin_inset Newline newline +\end_inset + +Cyrillic script was used 1938-1991 (still used in Dagestan). +\end_layout + +\begin_layout Itemize +Requires font encodings T1 and T2A (for the letter schwa). + Use preamble code +\end_layout + +\begin_layout LyX-Code + +\backslash +DeclareTextCommand{ +\backslash +textSchwa}{T1}{ +\backslash +CYRSCHWA +\backslash +bbl@allowhyphens} +\end_layout + +\begin_layout LyX-Code + +\backslash +DeclareTextCommand{ +\backslash +textschwa}{T1}{ +\backslash +cyrschwa +\backslash +bbl@allowhyphens} +\end_layout + +\begin_layout Subsection* +Basq +\end_layout + \begin_layout Subsection* Basque \end_layout diff --git a/lib/unicodesymbols b/lib/unicodesymbols index 3cdf18d1fe..af0de5be40 100644 --- a/lib/unicodesymbols +++ b/lib/unicodesymbols @@ -303,7 +303,7 @@ #0x018c "" "" "" # LATIN SMALL LETTER D WITH TOPBAR #0x018d "" "" "" # LATIN SMALL LETTER TURNED DELTA #0x018e "" "" "" # LATIN CAPITAL LETTER REVERSED E -#0x018f "" "" "" # LATIN CAPITAL LETTER SCHWA +0x018f "\\textSchwa" "textschwa" "force=utf8;utf8-cjk" # LATIN CAPITAL LETTER SCHWA #0x0190 "" "" "" # LATIN CAPITAL LETTER OPEN E #0x0191 "" "" "" # LATIN CAPITAL LETTER F WITH HOOK 0x0192 "\\textflorin" "textcomp" "force=cp862;cp1255;cp1256" # LATIN SMALL LETTER F WITH HOOK @@ -507,7 +507,7 @@ 0x0256 "\\textrtaild" "tipa" "force" # LATIN SMALL LETTER D WITH TAIL 0x0257 "\\texthtd" "tipa" "force" # LATIN SMALL LETTER D WITH HOOK 0x0258 "\\textreve" "tipa" "force,tipashortcut=9" # LATIN SMALL LETTER REVERSED E -0x0259 "\\textschwa" "tipa" "force,tipashortcut=@" # LATIN SMALL LETTER SCHWA +0x0259 "\\textschwa" "tipa|textschwa" "force,tipashortcut=@" # LATIN SMALL LETTER SCHWA 0x025a "\\textrhookschwa" "tipa" "force" # LATIN SMALL LETTER SCHWA WITH HOOK 0x025b "\\textepsilon" "tipa" "force,tipashortcut=E" "\\varepsilon" "" # LATIN SMALL LETTER OPEN E 0x025c "\\textrevepsilon" "tipa" "force,tipashortcut=3" # LATIN SMALL LETTER REVERSED OPEN E @@ -1330,7 +1330,7 @@ 0x1d47 "\\textsuperscript{b}" "" "force=utf8;utf8x;utf8-cjk" # MODIFIER LETTER SMALL B 0x1d48 "\\textsuperscript{d}" "" "force=utf8;utf8x;utf8-cjk" # MODIFIER LETTER SMALL D 0x1d49 "\\textsuperscript{e}" "" "force=utf8;utf8x;utf8-cjk" # MODIFIER LETTER SMALL E -0x1d4a "\\textsuperscript{\\textschwa}" "tipa" "force" # MODIFIER LETTER SMALL SCHWA +0x1d4a "\\textsuperscript{\\textschwa}" "tipa|textschwa" "force" # MODIFIER LETTER SMALL SCHWA 0x1d4b "\\textsuperscript{\\textepsilon}" "tipa" "force" # MODIFIER LETTER SMALL OPEN E 0x1d4c "\\textsuperscript{\\textrevepsilon}" "tipa" "force" # MODIFIER LETTER SMALL TURNED OPEN E 0x1d4d "\\textsuperscript{g}" "" "force=utf8;utf8x;utf8-cjk" # MODIFIER LETTER SMALL G @@ -1997,7 +1997,7 @@ 0x2091 "\\textsubscript{e}" "subscript" "force=utf8;utf8x;utf8-cjk" "{{}_e}" "" # LATIN SUBSCRIPT SMALL LETTER E 0x2092 "\\textsubscript{o}" "subscript" "force=utf8;utf8x;utf8-cjk" "{{}_o}" "" # LATIN SUBSCRIPT SMALL LETTER O 0x2093 "\\textsubscript{x}" "subscript" "force=utf8;utf8x;utf8-cjk" "{{}_x}" "" # LATIN SUBSCRIPT SMALL LETTER X -0x2094 "\\textsubscript{\\textschwa}" "subscript" "force=utf8;utf8x;utf8-cjk" "{{}_\\textschwa}" "tipa" # LATIN SUBSCRIPT SMALL LETTER SCHWA +0x2094 "\\textsubscript{\\textschwa}" "subscript,tipa|textschwa" "force=utf8;utf8x;utf8-cjk" "{{}_\\textschwa}" "tipa" # LATIN SUBSCRIPT SMALL LETTER SCHWA # # 72 Currency Symbols # diff --git a/src/LaTeXFeatures.cpp b/src/LaTeXFeatures.cpp index 827b44992f..d4c6d5e29b 100644 --- a/src/LaTeXFeatures.cpp +++ b/src/LaTeXFeatures.cpp @@ -349,6 +349,14 @@ static docstring const textbaltic_def = from_ascii( "\\DeclareTextCompositeCommand{\\c}{T1}{r}{\\textcommabelow{r}}\n" "\\DeclareTextCompositeCommand{\\c}{T1}{R}{\\textcommabelow{R}}\n"); +// Use cyrillic fonts to provide letter schwa in text (see #11062) +static docstring const textschwa_def = from_ascii( + "%% letter schwa missing in Latin fonts, use Cyrillic schwa\n" + "\\DeclareTextSymbolDefault{\\CYRSCHWA}{T2A}\n" + "\\DeclareTextSymbolDefault{\\cyrschwa}{T2A}\n" + "\\ProvideTextCommandDefault{\\textSchwa}{\\CYRSCHWA}\n" + "\\ProvideTextCommandDefault{\\textschwa}{\\cyrschwa}\n"); + // split-level fractions static docstring const xfrac_def = from_ascii( "\\usepackage{xfrac}\n"); @@ -893,7 +901,7 @@ void LaTeXFeatures::getFontEncodings(vector & encs, bool const onlylangs if (mustProvide("textgreek") && find(encs.begin(), encs.end(), "LGR") == encs.end()) encs.insert(encs.begin(), "LGR"); - if (mustProvide("textcyrillic") + if ((mustProvide("textcyrillic") || mustProvide("textschwa")) && find(encs.begin(), encs.end(), "T2A") == encs.end()) encs.insert(encs.begin(), "T2A"); } @@ -1431,6 +1439,9 @@ TexString LaTeXFeatures::getMacros() const if (mustProvide("textbaltic")) macros << textbaltic_def << '\n'; + if (mustProvide("textschwa")) + macros << textschwa_def << '\n'; + // split-level fractions if (mustProvide("xfrac") || mustProvide("smallLetterFrac")) macros << xfrac_def << '\n'; -- 2.39.5