% mystyletau.sty
% Copyright 2026 Antonello Meccariello & Francesco Meccariello
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either version 1.3c
% of this license or (at your option) any later version.
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{mystyletau}[2026/10/24 v2.2 Custom Tau glyphs for topology]

\RequirePackage{iftex}
\RequirePackage{amsmath}
\RequirePackage{amssymb}

\makeatletter

% --- SELEZIONE DINAMICA DEL MOTORE ---
\iftutex
  % Motori Unicode (LuaLaTeX / XeLaTeX)
  \RequirePackage{fontspec}
  \newfontfamily{\mytaufont}{mytautwo.ttf}[Scale=MatchLowercase]
  \newcommand{\vtau@base}{\text{\raisebox{-0.3ex}{\mytaufont\symbol{"E900}}}}
  \newcommand{\atau@base}{\text{\raisebox{-0.3ex}{\mytaufont\symbol{"E901}}}}
\else
  % Motore 8-bit classico (pdfLaTeX)
  \RequirePackage{graphicx}
\newcommand{\vtau@base}{\text{\raisebox{-0.40ex}{\includegraphics[height=2.1ex]{mystyletau-vtau.pdf}}}}
\newcommand{\atau@base}{\text{\raisebox{-0.40ex}{\includegraphics[height=2.1ex]{mystyletau-atau.pdf}}}}
\fi

% --- HELPER PER ESTRARRE LA PRIMA LETTERA PER IL KERNING ---
\def\vtau@check@first#1#2\@nil#3{%
  \ifx X#1_{\mkern -2.2mu #3}%
  \else\ifx A#1_{\mkern -2.5mu #3}%
  \else\ifx B#1_{\mkern -2mu #3}%
  \else\ifx D#1_{\mkern -2mu #3}%
  \else\ifx E#1_{\mkern -2mu #3}%
  \else\ifx F#1_{\mkern -2mu #3}%
  \else\ifx H#1_{\mkern -2mu #3}%
  \else\ifx I#1_{\mkern -2mu #3}%
  \else\ifx L#1_{\mkern -2mu #3}%
  \else\ifx M#1_{\mkern -2mu #3}%
  \else\ifx N#1_{\mkern -2mu #3}%
  \else\ifx P#1_{\mkern -2mu #3}%
  \else\ifx R#1_{\mkern -2mu #3}%
  \else\ifx S#1_{\mkern -2mu #3}%
  \else\ifx T#1_{\mkern -2mu #3}%
  \else\ifx Z#1_{\mkern -1.8mu #3}%
  \else\ifx \beta#1_{\mkern -1.8mu #3}%
  \else\ifx \rho#1_{\mkern -1.8mu #3}%
  \else\ifx \alpha#1_{\mkern -1.5mu #3}%
  \else_{#3}\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
}

\def\atau@check@first#1#2\@nil#3{%
  \ifx X#1_{\mkern -2.2mu #3}%
  \else\ifx A#1_{\mkern -2.5mu #3}%
  \else\ifx B#1_{\mkern -2mu #3}%
  \else\ifx D#1_{\mkern -2mu #3}%
  \else\ifx E#1_{\mkern -2mu #3}%
  \else\ifx F#1_{\mkern -2mu #3}%
  \else\ifx H#1_{\mkern -2mu #3}%
  \else\ifx I#1_{\mkern -2mu #3}%
  \else\ifx L#1_{\mkern -2mu #3}%
  \else\ifx M#1_{\mkern -2mu #3}%
  \else\ifx N#1_{\mkern -2mu #3}%
  \else\ifx P#1_{\mkern -2mu #3}%
  \else\ifx R#1_{\mkern -2mu #3}%
  \else\ifx S#1_{\mkern -2mu #3}%
  \else\ifx T#1_{\mkern -2mu #3}%
  \else\ifx Z#1_{\mkern -1.8mu #3}%
  \else\ifx \beta#1_{\mkern -1.8mu #3}%
  \else\ifx \rho#1_{\mkern -1.8mu #3}%
  \else\ifx \alpha#1_{\mkern -1.5mu #3}%
  \else_{#3}\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
}

% --- LOGICA DI SPAZIATURA ---
\newcommand{\vtau@kern@check}[1]{\vtau@check@first#1\relax\relax\@nil{#1}}
\newcommand{\atau@kern@check}[1]{\atau@check@first#1\relax\relax\@nil{#1}}

% --- DEFINIZIONE \vtau E \atau CON XPARSE ---
\NewDocumentCommand{\vtau}{ e{_^} }{%
  \ensuremath{%
    \vtau@base
    \IfValueT{#1}{\vtau@kern@check{#1}}%
    \IfValueT{#2}{^{\mkern 3mu #2}}%
  }%
}

\NewDocumentCommand{\atau}{ e{_^} }{%
  \ensuremath{%
    \atau@base
    \IfValueT{#1}{\atau@kern@check{#1}}%
    \IfValueT{#2}{^{\mkern 3mu #2}}%
  }%
}

% --- SHORTCUTS AUSILIARI ---
\newcommand{\pt}[1]{\left(#1\right)}

\makeatother

\endinput