Как заставить \uppercase работать с польским языком?

Как заставить \uppercase работать с польским языком?

Я пытаюсь работать \uppercaseс документом, написанным на польском языке. Однако это не работает должным образом для всех букв:

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[polish]{babel}
\usepackage{polski}
\begin{document}

Test:
\\
dość gróźb fuzją, klnę, pych i małżeństw
\\
\uppercase{dość gróźb fuzją, klnę, pych i małżeństw}

\end{document}

Результат:

Test:
dość gróźb fuzją, klnę, pych i małżeństw
DOść GRÓŚB FUZJą, KLNę, PYCH I MAłŜEńSTW

Как вы видите, некоторые буквы игнорируются (например, ś), некоторые отображаются в верхнем регистре правильно (например, Ó), а некоторые просто неправильные (например, ź -> Ś). Я пробовал разные комбинации babel/ polski, обновлял все свои пакеты с помощью tlmgr, пока ничего не помогает.

Я использую pdflatex из TeX Live:

$ pdflatex -v
pdfTeX 3.14159265-2.6-1.40.18 (TeX Live 2017)
kpathsea version 6.2.3
Copyright 2017 Han The Thanh (pdfTeX) et al.
There is NO warranty.  Redistribution of this software is
covered by the terms of both the pdfTeX copyright and
the Lesser GNU General Public License.
For more information about these matters, see the file
named COPYING and the pdfTeX source.
Primary author of pdfTeX: Han The Thanh (pdfTeX) et al.
Compiled with libpng 1.6.29; using libpng 1.6.29
Compiled with zlib 1.2.11; using zlib 1.2.11
Compiled with xpdf version 3.04

решение1

Вам необходимо внести два изменения:

  • В документах LaTeX используйте \MakeUppercase, а не \uppercase.

  • Для набора ударения огонек необходимо включить T1кодировку шрифта. Поэтому запустите \usepackage[T1]{fontenc}.

Если по какой-то причине вы не можете перейти на использование \MakeUppercase, я предлагаю вам загрузить textcaseпакет с опцией overload. Это изменяет поведение \uppercase, заставляя его вести себя как \MakeUppercase.

Отдельно, необходимо (или даже желательно) загружать пакет, polskiесли babelпакет загружен с опцией polish? Полагаю, это зависит от того, действительно ли вам нужна OT4кодировка шрифта.

А чтобы получить действительно хорошо прорисованные акценты, рассмотрите возможность загрузки пакета lmodern.

введите описание изображения здесь

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}

\usepackage[polish]{babel}
%%\usepackage{polski}

\begin{document}
\obeylines % just for this example
Test:
dość gróźb fuzją, klnę, pych i małżeństw
\MakeUppercase{dość gróźb fuzją, klnę, pych i małżeństw}
\end{document}

Связанный контент