% \iffalse meta-comment
% 
% File: linguistix-russian.dtx
% 
% ----------------------------------------------------------
% Коллекция пакетов LinguisTiX v1.0
% Авторкие права © 2026 निरंजन (Ниранджан)
% 
% Эта программа является свободным программным продуктом: вы
% можете распространять её и/или модифицировать в
% соответствии с условиями Стандартной публичной лицензии
% GNU, опубликованной Фондом свободного программного
% обеспечения, либо версии 3 Лицензии, либо (по вашему
% выбору) любой более поздней версии.
% 
% Эта программа распространяется в надежде на то, что она
% будет полезна, но без каких-либо гарантий; даже без
% подразумеваемой гарантии товарной годности или пригодности
% для конкретной цели.
% 
% Для получения более подробной информации см. Стандартную
% публичную лицензию GNU, приложенную к данной программе и
% доступную на сайте: <https://www.gnu.org/licenses/>
% ----------------------------------------------------------
% 
% \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}
%</driver>
% \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 }
%</russian> 
%    \end{macrocode}
% \end{implementation}
% \Finale
