%% This is part of the OpTeX project, see http://petr.olsak.net/optex

\_codedecl \TeX {Logos TeX, LuaTeX, etc. <2025-01-22>} % preloaded in format

   \_doc ----------------------------
   Despite plain \TeX/ each macro for logos ends by \`\ignoreslash`.
   This macro ignores the next slash if it is present.
   You can `use \TeX/ like this` for protecting the space following the logo.
   This is visually more comfortable.
   The macros \`\TeX`, \`\OpTeX`, \`\LuaTeX`, \`\XeTeX` are defined.
   \_cod ----------------------------

\_protected\_def \_TeX {T\_kern-.1667em\_lower.5ex\_hbox{E}\_kern-.125emX\_ignoreslash}
\_protected\_def \_OpTeX {Op\_kern-.1em\_TeX}
\_protected\_def \_LuaTeX {Lua\_TeX}
\_protected\_def \_LuaHBTeX {Lua{\_setfontsize{mag.9}\_resizethefont HB}\_TeX}
\_protected\_def \_XeTeX {X\_kern-.125em\_phantom E%
   \_pdfsave\_rlap{\_pdfscale{-1}{1}\_lower.5ex\_hbox{E}}\_pdfrestore \_kern-.1667em \_TeX}

\_def\_ignoreslash {\_isnextchar/\_ignoreit{}}

\_public \TeX \OpTeX \LuaTeX \LuaHBTeX \XeTeX \ignoreslash ;

   \_doc ----------------------------
   The  \`\ConTeXt` logo is implemented as in the \ConTeXt/ format itself.
   The kerning between \"Con" and \"\TeX/t" is calculated by measuring the kerning
   between the letters \"T" and \"e".
   \_cod ----------------------------

\_protected\_def \_ConTeXt{\_begingroup
    Con\_setbox0=\_hbox{T\_kern\_zo e}\_setbox1=\_hbox{Te}{\_kern\_dimexpr\_wd1 -\_wd0}%
    \_TeX t\_endgroup\_ignoreslash}

\_public \ConTeXt ;

   \_doc -----------------------------
   The \`\_slantcorr` macro expands to the slant-correction of the current font. It is
   used to shifting A if the \`\LaTeX` logo is in italic.
   \_cod -----------------------------

\_protected\_def \_LaTeX{\_tmpdim=.42ex L\_kern-.36em \_kern \_slantcorr % slant correction
  \_raise \_tmpdim \_hbox{\_thefontscale[710]A}%
  \_kern-.15em \_kern-\_slantcorr \_TeX}
\_def\_slantcorr{\_ea\_ignorept \_the\_fontdimen1\_font\_tmpdim}

\_public \LaTeX ;

   \_doc -----------------------------
   \`\OPmac`, \`\CS` and \`\csplain` logos.
   \_cod -----------------------------

\_def\_OPmac{\_leavevmode
   \_lower.2ex\_hbox{\_thefontscale[1400]O}\_kern-.86em P{\_em mac}\_ignoreslash}
\_def\_CS{$\_cal C$\_kern-.1667em\_lower.5ex\_hbox{$\_cal S$}\_ignoreslash}
\_def\_csplain{\_CS plain\_ignoreslash}

\_public \OPmac \CS \csplain ;

   \_doc ----------------------------
   The expandable versions of logos used in Outlines need the expandable
   \`\ignslash` (instead of the \^`\ignoreslash`).
   \_cod \_fin ----------------------

\_def\_ignslash#1{\_ifx/#1\_else #1\_fi}
\_regmacro {}{}{% conversion for PDF outlines
   \_def\TeX{TeX\_ignslash}\_def\OpTeX{OpTeX\_ignslash}%
   \_def\LuaTeX{LuaTeX\_ignslash}\_def\XeTeX{XeTeX\_ignslash}%
   \_def\LaTeX{LaTeX\_ignslash}\_def\OPmac{OPmac\_ignslash}%
   \_def\ConTeXt{ConTeXt\_ignslash}%
   \_def\CS{CS}\_def\csplain{csplain\_ignslash}%
}
\_public \ignslash ;

\_endcode

2025-01-22  LuaHBTeX logo added.
2024-02-12  ConTeXt logo added.
2020-02-28  Released.
