% \iffalse meta-comment
%
% File: linguistix-english.dtx
%
% ----------------------------------------------------------
% The LaTeX bundle LinguisTiX v1.0
% Copyright © 2025, 2026 निरंजन
%
% This program is free software: you can redistribute it
% and/or modify it under the terms of the GNU General Public
% License as published by the Free Software Foundation,
% either version 3 of the License, or (at your option) any
% later version.
%
% This program is distributed in the hope that it will be
% useful, but WITHOUT ANY WARRANTY; without even the implied
% warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
% PURPOSE. See the GNU General Public License for more
% details.
%
% You should have received a copy of the GNU General Public
% License along with this program. If not, see
% <https://www.gnu.org/licenses/>.
% ----------------------------------------------------------
%
% \fi
% \iffalse
%<*driver>
\documentclass{l3doc}
\usepackage{linguistix}
\usepackage{xcolor}
\usepackage{fontawesome5}
\usepackage{hyperxmp}
\usepackage[verbose=silent]{microtype}
\usepackage{cleveref}
\linguistix{old style one,languages={english,marathi}}

\setquotestyle{english}

\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-english},%
  pdfauthor              = {निरंजन},%
  pdfsubject             = {%
    English with LinguisTiX.%
  },%
  pdfcreator             = {निरंजन},%
  pdfkeywords            = {Linguistics, LaTeX},%
  pdfcopyright           = {%
    The LaTeX bundle LinguisTiX\textLF
    Copyright © 2025, 2026 निरंजन\textLF
    This program is free software: you can redistribute it
    and/or modify it under the terms of the GNU General
    Public License as published by the Free Software
    Foundation, either version 3 of the License, or (at your
    option) any later version.%
  },%
  pdflicenseurl          = {gnu.org/licenses/gpl-3.0.html}%
}%

\makeatletter

\setlength{\columnsep}{2pc}
\setlength{\columnseprule}{0.2pt}

\makeatother

\colorlet{lngxpurplecolor}{blue!50!red}

\def\lngxtval{%
  \begingroup
  \color{lngxredcolor}
  true%
  \endgroup
  \,|\,false%
}

\def\lngxfval{%
  true%
  \begingroup
  \color{lngxredcolor}
  \,|\,false%
  \endgroup
}

\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{\lngxenglishlogo}
% \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
%   The \lngxpkg\ bundle
%
%   \noindent
%   Copyright © 2025, 2026 निरंजन
%
%   This program is free software: you can redistribute it
%   and/or modify it under the terms of the \textsc{gnu}
%   General Public License as published by the Free Software
%   Foundation, either version 3 of the License, or (at your
%   option) any later version.
%
%   This program is distributed in the hope that it will be
%   useful, but \emph{\textbf{without any warranty}};
%   without even the implied warranty of
%   \emph{\textbf{merchantability}} or \emph{\textbf{fitness
%   for a particular purpose}}. See the \textsc{gnu} General
%   Public License for more details.
%
%   You should have received a copy of the \textsc{gnu}
%   General Public License along with this program. If not,
%   see \url{https://www.gnu.org/licenses/}.^^A
% }
%
% \section*{English}
%
%    \begin{macrocode}
%<*english>
\ProvidesExplPackage{linguistix-english}
                    {2026-05-15}
                    {v1.0}
                    {English}
%    \end{macrocode}
% When English language is active, it should not replace the
% set of characters that are categorized as
% \enquote{letters} by \TeX. Thus I load |letters| as an
% additional parameter to the option |onchar|.
%    \begin{macrocode}

\babelprovide [
  onchar               = { ids~ fonts~ letters }
] { english }
%    \end{macrocode}
% Here I will add the code that is executed whenever
% \cs{selectlanguage}\marg{english} is issued. The socket
% for native numbering is used here.
%    \begin{macrocode}

\addto { \extrasenglish } {
  \socket_use:n { lngx / native-numbering }
%    \end{macrocode}
% \cs{lngx_misc_reset:} is used in order to reset the
% changes made by other languages.
%    \begin{macrocode}
  \lngx_misc_reset:
}
%    \end{macrocode}
% I test if “english” is the main language of the document.
% If no, then it needs to set the suitable fonts using the
% \pkg{babel}-macros that set fonts for other languages. I
% load the identical fonts that are loaded if it was the
% default language. In fact, that is why if it is the
% default language, no changes are made, because the
% necessary settings are already done by \lngxfontslogo.
%    \begin{macrocode}

\tl_if_eq:NnTF \g_lngx_main_language_tl { english } {
  \lngx_set_keys:n { old~ style~ numbers }
} {
  \lngx_other_main_font:nnn { english } {
    \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 { english } {
    \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 { english } {
    \bool_if:NT \g_lngx_old_style_bool {
      Numbers              = { OldStyle },
      \bool_if:NT \g_lngx_old_style_one_bool {
        CharacterVariant     = { 6 }
      }
    }
  } { NewCMMono10-Book.otf }
}
%</english>
%    \end{macrocode}
%
% \section*{British English}
%
%    \begin{macrocode}
%<*british>
\ProvidesExplPackage{linguistix-british}
                    {2026-05-15}
                    {v1.0}
                    {British English}
%    \end{macrocode}
% When English language is active, it should not replace the
% set of characters that are categorised as
% \enquote{letters} by \TeX. Thus I load |letters| as an
% additional parameter to the option |onchar|.
%    \begin{macrocode}

\babelprovide [
  onchar               = { ids~ fonts~ letters }
] { british }
%    \end{macrocode}
% Here I will add the code that is executed whenever
% \cs{selectlanguage}\marg{british} is issued. The socket
% for native numbering is used here.
%    \begin{macrocode}

\addto { \extrasbritish } {
  \socket_use:n { lngx / native-numbering }
%    \end{macrocode}
% \cs{lngx_misc_reset:} is used in order to reset the
% changes made by other languages.
%    \begin{macrocode}
  \lngx_misc_reset:
}
%    \end{macrocode}
% I test if ‘british’ is the main language of the document.
% If no, then it needs to set the suitable fonts using the
% \pkg{babel}-macros that set fonts for other languages. I
% load the identical fonts that are loaded if it was the
% default language. In fact, that is why if it is the
% default language, no changes are made, because the
% necessary settings are already done by \lngxfontslogo.
%    \begin{macrocode}

\tl_if_eq:NnTF \g_lngx_main_language_tl { british } {
  \lngx_set_keys:n { old~ style~ numbers }
} {
  \lngx_other_main_font:nnn { british } {
    \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 { british } {
    \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 { british } {
    \bool_if:NT \g_lngx_old_style_bool {
      Numbers              = { OldStyle },
      \bool_if:NT \g_lngx_old_style_one_bool {
        CharacterVariant     = { 6 }
      }
    }
  } { NewCMMono10-Book.otf }
}
%</british>
%    \end{macrocode}
%
% \section{American English}
%
%    \begin{macrocode}
%<*american>
\ProvidesExplPackage{linguistix-american}
                    {2026-05-15}
                    {v1.0}
                    {American English}
%    \end{macrocode}
% When English language is active, it should not replace the
% set of characters that are categorized as
% \enquote{letters} by \TeX. Thus I load |letters| as an
% additional parameter to the option |onchar|.
%    \begin{macrocode}

\babelprovide [
  onchar               = { ids~ fonts~ letters }
] { american }
%    \end{macrocode}
% Here I will add the code that is executed whenever
% \cs{selectlanguage}\marg{american} is issued. The socket
% for native numbering is used here.
%    \begin{macrocode}

\addto { \extrasamerican } {
  \socket_use:n { lngx / native-numbering }
%    \end{macrocode}
% \cs{lngx_misc_reset:} is used in order to reset the
% changes made by other languages.
%    \begin{macrocode}
  \lngx_misc_reset:
}
%    \end{macrocode}
% I test if “american” is the main language of the document.
% If no, then it needs to set the suitable fonts using the
% \pkg{babel}-macros that set fonts for other languages. I
% load the identical fonts that are loaded if it was the
% default language. In fact, that is why if it is the
% default language, no changes are made, because the
% necessary settings are already done by \lngxfontslogo.
%    \begin{macrocode}

\tl_if_eq:NnF \g_lngx_main_language_tl { american } {
  \lngx_other_main_font:nee { american } {
    \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:nee { american } {
    \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 { american } {  } {
    NewCMMono10-Book.otf
  }
}
%</american>
%    \end{macrocode}
% \Finale
