%%
%% This is file `compat.tex',
%% generated with the docstrip utility.
%%
%% The original source files were:
%%
%% nameauth.dtx  (with options: `compat')
%% 
%% This is a generated file.
%% 
%% Copyright (C) 2025 by Charles P. Schaum <charles[dot]schaum@comcast.net>
%% 
%% This file may be distributed and/or modified under the
%% conditions of the LaTeX Project Public License, either
%% version 1.3 of this license or (at your option) any
%% later version. The latest version of this license is in:
%% 
%%    https://www.latex-project.org/lppl.txt
%% 
%% and version 1.3 or later is part of all distributions
%% of LaTeX version 2005/12/01 or later.
%% 
%% This work includes all source and generated files
%% described as such in README.md, included herein.
%% 
% This is not a standalone document.
% Use this file only in the document preamble.

% Ensure that we have the needed macros.
\usepackage{etoolbox}

% Allow special catcodes.
\makeatletter

% Do not include the rest of this file
% unless we are in a document preamble.
\ifx\@onlypreamble\@notprerr\else
  % Include the rest of this if--else statement.

  % Check against the latex version date. Create a macro
  % if the date is at least 2018/10/05 because that is
  % when Unicode processing changed for the better.
  \@ifl@t@r\fmtversion{2018/10/05}{\newcommand\nameauthltx{}}{}

  % Here we check for 2018/04/30 because that is when xparse
  % added the ! modifier.
  \@ifl@t@r\fmtversion{2018/04/30}{\newcommand\nameauthxp{}}{}

  % Here we assist backward compatibility for older
  % distributions of LaTeX and compatibility for multiple
  % LaTeX engines.

  % If we want to use TikZ, this flag will help us.
  % We use this method to avoid crashing some \texttt{dvi}
  % viewers. Define the macro \noTikZ to bypass this check.
  \newif\ifDoTikZ

  % If we couch this statement in a conditional, we avoid
  % potential errors in older versions.
  \IfFileExists{iftex.sty}{\usepackage{iftex}}{}

  % The presence of \RequireTUTeX means that these older
  % packages are not needed (thanks to iftex). Otherwise
  % we are using an older version and need these packages.

  \unless\ifdefined\RequireTUTeX
    \usepackage{ifxetex}
    \usepackage{ifluatex}
    \usepackage{ifpdf}
  \fi

  % Instead of worrying about older or newer changes, we
  % ensure consistency when the LaTeX engine changes.
  % The goal is to get the same ``lmodern'' look.
  % Users will need to change language and font options
  % for their own needs.

  % To remain compatible with our experience on older
  % distributions, we load fontspec and prefer polyglossia
  % with both XeLaTeX and LuaLaTeX. One cannot load both
  % babel and polyglossia. See the relevant documentation.

  % This flag causes polyglossia to be the default.
  \newif\ifloadbabel

  % Here we do the right thing for the right LaTeX version.
  \ifxetex
    % We always load fontspec in this case.
    \usepackage{fontspec}
    % Loading TikZ will work (pdf)
    \DoTikZtrue
  \else
    \ifluatex
      \ifpdf
        % This is the usual pdf-version lualatex.
        % We always load fontspec in this case.
        \usepackage{fontspec}
        % Loading TikZ will work (pdf)
        \DoTikZtrue
      \else
        \loadbabeltrue
        % This is dvilualatex (dvi mode).
        \IfFileExists{utf8-2018.def}{}
        {\usepackage[utf8]{inputenc}}
        \usepackage[TS1,T1]{fontenc}
        \usepackage{lmodern}
        % No TikZ with dvi workflows for dvi viewers.
      \fi
    \else
      \loadbabeltrue
      % Here we load the same packages, whether dvi
      % or pdf is being used. We address that below.
      \IfFileExists{utf8-2018.def}{}
      {\usepackage[utf8]{inputenc}}
      \usepackage[TS1,T1]{fontenc}
      \usepackage{lmodern}
      % Now we check for pdflatex. If so, use TikZ.
      \ifpdf \DoTikZtrue \fi
      % Otherwise, no TikZ with dvi workflows.
    \fi
  \fi

  % Defining the \nolangs macro inhibits defaults.
  \unless\ifdefined{\nolangs}
    \ifloadbabel
      \usepackage[american]{babel}
    \else
      \usepackage{polyglossia}
      \setdefaultlanguage{american}
    \fi
  \fi

  % Defining the \noTikZ macro inhibits defaults.
  \unless\ifdefined{\noTikZ}
    \ifDoTikZ
      \usepackage{tikz}
    \else
      % Do something with pstricks, pdftricks, ps4pdf.
    \fi
  \fi

% End of part needing to be in the preamble.
\fi

% Return to normal catcodes.
\makeatother

% End of included file.
