% \iffalse meta-comment % % File: linguistix-russian.dtx % % ---------------------------------------------------------- % Коллекция пакетов LinguisTiX v1.0 % Авторкие права © 2026 निरंजन (Ниранджан) % % Эта программа является свободным программным продуктом: вы % можете распространять её и/или модифицировать в % соответствии с условиями Стандартной публичной лицензии % GNU, опубликованной Фондом свободного программного % обеспечения, либо версии 3 Лицензии, либо (по вашему % выбору) любой более поздней версии. % % Эта программа распространяется в надежде на то, что она % будет полезна, но без каких-либо гарантий; даже без % подразумеваемой гарантии товарной годности или пригодности % для конкретной цели. % % Для получения более подробной информации см. Стандартную % публичную лицензию GNU, приложенную к данной программе и % доступную на сайте: % ---------------------------------------------------------- % % \fi % \iffalse %<*driver> \documentclass{l3doc} \usepackage{linguistix} \usepackage{xcolor} \usepackage{fontawesome5} \usepackage[verbose=silent]{microtype} \usepackage{cleveref} \usepackage{hyperxmp} \makeatletter \def\@xobeysp{\hphantom{X}}% \makeatother \linguistix{old style one} \loadlanguages{russian,british,marathi} \setquotestyle{british} \colorlet{lngxredcolor}{red!50!black} \colorlet{lngxgreencolor}{green!50!black} \colorlet{lngxbluecolor}{blue!50!black} \urlstyle{tt} \hypersetup{% unicode,% colorlinks,% linkcolor = {lngxredcolor}, citecolor = {lngxgreencolor}, urlcolor = {lngxbluecolor}, pdftitle = {linguistix-russian},% pdfauthor = {निरंजन (Ниранджан)},% pdfsubject = {Русский (Russian)},% pdfcreator = {निरंजन (Ниранджан)},% pdfkeywords = {Linguistics, LaTeX},% pdfcopyright = {% Коллекция пакетов LinguisTiX\textLF Авторкие права © 2026 निरंजन (Ниранджан)\textLF Эта программа является свободным программным продуктом: вы можете распространять её и/или модифицировать в соответствии с условиями Стандартной публичной лицензии GNU, опубликованной Фондом свободного программного обеспечения, либо версии 3 Лицензии, либо (по вашему выбору) любой более поздней версии.% },% pdflicenseurl = {gnu.org/licenses/gpl-3.0.html}% }% \colorlet{lngxpurplecolor}{blue!50!red} \ExplSyntaxOn \msg_redirect_name:nnn { l3doc } { foreign-internal } { none } \ExplSyntaxOff \makeatletter \NewDocumentCommand \supportfootnote { +m } {% \begingroup \def\thefootnote{}% \let\@makefntext\relax \def\Hy@Warning##1{}% \footnotetext{% \hspace*{-\parindent}% #1% }% \endgroup } \makeatother \begin{document} \DocInput{\jobname.dtx} \end{document} % % \fi % \title{Русский\,--\,\lngxrussianlogo} % \author{निरंजन (Ниранджан)} % \date{^^A % \today\ (v1.0)\\[1ex]^^A % {^^A % \small\faIcon{home}\quad % \url{^^A % https://ctan.org/pkg/linguistix^^A % }\\[0.5ex]^^A % \small\faIcon{git-alt}\quad % \url{^^A % https://puszcza.gnu.org.ua/projects/linguistix^^A % }\\[0.5ex]^^A % \small\faIcon[regular]{comments}\quad % \url{^^A % https://matrix.to/\#/\#linguistix:matrix.org^^A % }^^A % }^^A % } % % \maketitle % % \supportfootnote{^^A % Коллекция пакетов \lngxpkg % % \noindent % Авторкие права © 2026 निरंजन (Ниранджан) % % Эта программа является свободным программным продуктом: % вы можете распространять её и/или модифицировать в % соответствии с условиями Стандартной публичной лицензии % GNU, опубликованной Фондом свободного программного % обеспечения, либо версии 3 Лицензии, либо (по вашему % выбору) любой более поздней версии. % % Эта программа распространяется в надежде на то, что она % будет полезна, \textbf{\textit{но без каких-либо % гарантий}}; даже без подразумеваемой гарантии % \textbf{\textit{товарной годности}} или % \textbf{\textit{пригодности для конкретной цели}}. % % Для получения более подробной информации см. Стандартную % публичную лицензию \textsc{gnu}, приложенную к данной % программе и доступную на сайте: % \url{https://www.gnu.org/licenses/}^^A % } % % % Перевод Алексея Кузнецова. Оригинальный автор документа и % разработчик пакета — निरंजन (Ниранджан). Пакет \lngxpkg\ не % вводит никаких макросов для использования авторами. Далее % представлена основная информация о его устройстве и % реализации. % % \begin{implementation} % \begin{macrocode} %<*russian> \ProvidesExplPackage{linguistix-russian} {2026-05-15} {v1.0} {Русский (Russian)} % \end{macrocode} % Для автоматической загрузки русских шрифтов в кодировке % Unicode вводится параметр |onchar|. Это делает команда % |\babelprovide|. % \begin{macrocode} \babelprovide [ onchar = { ids~ fonts } ] { russian } % \end{macrocode} % Пакет \pkg{babel} определяет для различных языков команды % |\extrasxxxx|, в аргументе которых указывают код (в данном % случае xxxx), который должен соответствовать конкретному % языку. Команда |\addto| используется для добавления % действий, выполняемых данными командами. Начнем с % определения макросов для русского языка. % \begin{macrocode} \addto { \extrasrussian } { % \end{macrocode} % Как поясняется в документации \lngxfontslogo, в документах % на русском языке цифры старого стиля не используются. % Поэтому отключим их. % \begin{macrocode} \cs_if_eq:NNT \@onlypreamble \@notprerr { \lngx_set_keys:n { old~ style~ numbers = { false } } } % \end{macrocode} % Добавим команду для сокета нумерации. Она будет брать его % текущее значение и выдавать в форме, соответствующей % языку. % \begin{macrocode} \socket_use:n { lngx / native-numbering } % \end{macrocode} % Для нумерациии списков разных уровней вложенности \LaTeX\ % по умолчанию использует арабские цифры, римские буквы (как % строчные, так и заглавные) и буквы латинского алфавита от % a до z. В русском языке используются арабские цифры, но % буквы заменяются русскими. Поэтому команды, печатающие % значения счетчиков изменяются так, чтобы они выводили их в % русских нотациях. % \begin{macrocode} \cs_set:Npn \theenumii { \localecounter { lower.full } { enumii } } \cs_set:Npn \theenumiii { \localecounter { upper.full } { enumiii } } \cs_set:Npn \theenumiv { \roman { enumiv } } % \end{macrocode} % Пакет \pkg{expex} вводит оригинальный механизм определения % и использования счетчиков. Определим с его помощью набор, % называемый |Русский|, и сделаем его используемым по % умолчанию для русского языка. Отметим, что команда % |\lngx_misc_reset:|, используемая для возврата к % установкам английского языка, отменяет эту настройку. Для % получения дополнительной информации см: |linguistix.pdf|. % \begin{macrocode} \IfPackageLoadedT { expex } { \definelabeltype { Русский } { labelgen = { list }, labellist = { а, б, в, г, д, е, ж, з, и, к, л, м, н, о, п, р, с, т, у, ф, х, ц, ч, ш, щ, э, ю, я }, labelformat = {A.}, fullrefformat = {XA}, labelalign = {left}, labelwidth = {1.5em} } \lingset { labeltype = { Русский } } } } % \end{macrocode} % Если основным языком документа является русский, % используются стандартные шрифты New Computer Modern, в % противном случае с помощью макросов необходимо установить % «другие» (неосновные) шрифты. Шрифты остаются те же, но % интерфейс «ключ-значение» недоступен, поэтому код макросов % получается несколько громоздким. % \begin{macrocode} \lngx_other_main_font:nnn { russian } { NFSSFamily = { Русский_main }, \bool_if:NT \g_lngx_old_style_bool { Numbers = { OldStyle }, \bool_if:NT \g_lngx_old_style_one_bool { CharacterVariant = { 6 }, } } } { NewCM10-Book.otf } \lngx_other_sans_font:nnn { russian } { NFSSFamily = { Русский_sans }, \bool_if:NT \g_lngx_old_style_bool { Numbers = { OldStyle }, \bool_if:NT \g_lngx_old_style_one_bool { CharacterVariant = { 6 } } } } { NewCMSans10-Book.otf } \lngx_other_mono_font:nnn { russian } { NFSSFamily = { Русский_mono } } { NewCMMono10-Book.otf } % % \end{macrocode} % \end{implementation} % \Finale