summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/hologo
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-12-07 03:00:49 +0000
committerNorbert Preining <norbert@preining.info>2019-12-07 03:00:49 +0000
commitf158c892f4714e2dfef87c5edf8cd679fd09bb2b (patch)
treef8cae0221bb28490d61fc9a531ac4d087186e273 /macros/latex/contrib/hologo
parentac57c892e88b77eb217641d4a1059da681320633 (diff)
CTAN sync 201912070300
Diffstat (limited to 'macros/latex/contrib/hologo')
-rw-r--r--macros/latex/contrib/hologo/README.md7
-rw-r--r--macros/latex/contrib/hologo/hologo.dtx4780
-rw-r--r--macros/latex/contrib/hologo/hologo.pdfbin0 -> 567626 bytes
3 files changed, 4787 insertions, 0 deletions
diff --git a/macros/latex/contrib/hologo/README.md b/macros/latex/contrib/hologo/README.md
new file mode 100644
index 0000000000..ab6a141e0b
--- /dev/null
+++ b/macros/latex/contrib/hologo/README.md
@@ -0,0 +1,7 @@
+# hologo
+
+hologo package for LaTeX
+
+This package starts a collection of logos with support for bookmarks
+strings.
+
diff --git a/macros/latex/contrib/hologo/hologo.dtx b/macros/latex/contrib/hologo/hologo.dtx
new file mode 100644
index 0000000000..a8a8260c8a
--- /dev/null
+++ b/macros/latex/contrib/hologo/hologo.dtx
@@ -0,0 +1,4780 @@
+% \iffalse meta-comment
+%
+% File: hologo.dtx
+% Version: 2019/12/05 v1.14
+% Info: A logo collection with bookmark support
+%
+% Copyright (C)
+% 2010-2012 Heiko Oberdiek
+% 2016-2019 Oberdiek Package Support Group
+% https://github.com/ho-tex/hologo/issues
+%
+% 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. This version of this license is in
+% https://www.latex-project.org/lppl/lppl-1-3c.txt
+% and 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 has the LPPL maintenance status "maintained".
+%
+% The Current Maintainers of this work are
+% Heiko Oberdiek and the Oberdiek Package Support Group
+% https://github.com/ho-tex/hologo/issues
+%
+% The Base Interpreter refers to any `TeX-Format',
+% because some files are installed in TDS:tex/generic//.
+%
+% This work consists of the main source file hologo.dtx
+% and the derived files
+% hologo.sty, hologo.pdf, hologo.ins, hologo.drv, hologo-example.tex,
+% hologo-test1.tex, hologo-test-spacefactor.tex,
+% hologo-test-list.tex.
+%
+% Distribution:
+% CTAN:macros/latex/contrib/hologo/hologo.dtx
+% CTAN:macros/latex/contrib/hologo/hologo.pdf
+%
+% Unpacking:
+% (a) If hologo.ins is present:
+% tex hologo.ins
+% (b) Without hologo.ins:
+% tex hologo.dtx
+% (c) If you insist on using LaTeX
+% latex \let\install=y\input{hologo.dtx}
+% (quote the arguments according to the demands of your shell)
+%
+% Documentation:
+% (a) If hologo.drv is present:
+% latex hologo.drv
+% (b) Without hologo.drv:
+% latex hologo.dtx; ...
+% The class ltxdoc loads the configuration file ltxdoc.cfg
+% if available. Here you can specify further options, e.g.
+% use A4 as paper format:
+% \PassOptionsToClass{a4paper}{article}
+%
+% Programm calls to get the documentation (example):
+% pdflatex hologo.dtx
+% makeindex -s gind.ist hologo.idx
+% pdflatex hologo.dtx
+% makeindex -s gind.ist hologo.idx
+% pdflatex hologo.dtx
+%
+% Installation:
+% TDS:tex/generic/hologo/hologo.sty
+% TDS:doc/latex/hologo/hologo.pdf
+% TDS:doc/latex/hologo/example/hologo-example.tex
+% TDS:source/latex/hologo/hologo.dtx
+%
+%<*ignore>
+\begingroup
+ \catcode123=1 %
+ \catcode125=2 %
+ \def\x{LaTeX2e}%
+\expandafter\endgroup
+\ifcase 0\ifx\install y1\fi\expandafter
+ \ifx\csname processbatchFile\endcsname\relax\else1\fi
+ \ifx\fmtname\x\else 1\fi\relax
+\else\csname fi\endcsname
+%</ignore>
+%<*install>
+\input docstrip.tex
+\Msg{************************************************************************}
+\Msg{* Installation}
+\Msg{* Package: hologo 2019/12/05 v1.14 A logo collection with bookmark support (HO)}
+\Msg{************************************************************************}
+
+\keepsilent
+\askforoverwritefalse
+
+\let\MetaPrefix\relax
+\preamble
+
+This is a generated file.
+
+Project: hologo
+Version: 2019/12/05 v1.14
+
+Copyright (C)
+ 2010-2012 Heiko Oberdiek
+ 2016-2019 Oberdiek Package Support Group
+
+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. This version of this license is in
+ https://www.latex-project.org/lppl/lppl-1-3c.txt
+and 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 has the LPPL maintenance status "maintained".
+
+The Current Maintainers of this work are
+Heiko Oberdiek and the Oberdiek Package Support Group
+https://github.com/ho-tex/hologo/issues
+
+
+The Base Interpreter refers to any `TeX-Format',
+because some files are installed in TDS:tex/generic//.
+
+This work consists of the main source file hologo.dtx
+and the derived files
+ hologo.sty, hologo.pdf, hologo.ins, hologo.drv, hologo-example.tex,
+ hologo-test1.tex, hologo-test-spacefactor.tex,
+ hologo-test-list.tex.
+
+\endpreamble
+\let\MetaPrefix\DoubleperCent
+
+\generate{%
+ \file{hologo.ins}{\from{hologo.dtx}{install}}%
+ \file{hologo.drv}{\from{hologo.dtx}{driver}}%
+ \usedir{tex/generic/hologo}%
+ \file{hologo.sty}{\from{hologo.dtx}{package}}%
+ \usedir{doc/latex/hologo/example}%
+ \file{hologo-example.tex}{\from{hologo.dtx}{example}}%
+}
+
+\catcode32=13\relax% active space
+\let =\space%
+\Msg{************************************************************************}
+\Msg{*}
+\Msg{* To finish the installation you have to move the following}
+\Msg{* file into a directory searched by TeX:}
+\Msg{*}
+\Msg{* hologo.sty}
+\Msg{*}
+\Msg{* To produce the documentation run the file `hologo.drv'}
+\Msg{* through LaTeX.}
+\Msg{*}
+\Msg{* Happy TeXing!}
+\Msg{*}
+\Msg{************************************************************************}
+
+\endbatchfile
+%</install>
+%<*ignore>
+\fi
+%</ignore>
+%<*driver>
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesFile{hologo.drv}%
+ [2019/12/05 v1.14 A logo collection with bookmark support (HO)]%
+\documentclass{ltxdoc}
+\usepackage{holtxdoc}[2011/11/22]
+\usepackage{hologo}[2019/12/05]
+\usepackage{longtable}
+\usepackage{array}
+\usepackage{paralist}
+%\usepackage[T1]{fontenc}
+%\usepackage{lmodern}
+\begin{document}
+ \DocInput{hologo.dtx}%
+\end{document}
+%</driver>
+% \fi
+%
+%
+%
+% \GetFileInfo{hologo.drv}
+%
+% \title{The \xpackage{hologo} package}
+% \date{2019/12/05 v1.14}
+% \author{Heiko Oberdiek\thanks
+% {Please report any issues at \url{https://github.com/ho-tex/hologo/issues}}}
+%
+% \maketitle
+%
+% \begin{abstract}
+% This package starts a collection of logos with support for bookmarks
+% strings.
+% \end{abstract}
+%
+% \tableofcontents
+%
+% \section{Documentation}
+%
+% \subsection{Logo macros}
+%
+% \begin{declcs}{hologo} \M{name}
+% \end{declcs}
+% Macro \cs{hologo} sets the logo with name \meta{name}.
+% The following table shows the supported names.
+%
+% \begingroup
+% \def\hologoEntry#1#2#3{^^A
+% #1&#2&\hologoLogoSetup{#1}{variant=#2}\hologo{#1}&#3\tabularnewline
+% }
+% \begin{longtable}{>{\ttfamily}l>{\ttfamily}lll}
+% \rmfamily\bfseries{name} & \rmfamily\bfseries variant
+% & \bfseries logo & \bfseries since\\
+% \hline
+% \endhead
+% \hologoList
+% \end{longtable}
+% \endgroup
+%
+% \begin{declcs}{Hologo} \M{name}
+% \end{declcs}
+% Macro \cs{Hologo} starts the logo \meta{name} with an uppercase
+% letter. As an exception small greek letters are not converted
+% to uppercase. Examples, see \hologo{eTeX} and \hologo{ExTeX}.
+%
+% \subsection{Setup macros}
+%
+% The package does not support package options, but the following
+% setup macros can be used to set options.
+%
+% \begin{declcs}{hologoSetup} \M{key value list}
+% \end{declcs}
+% Macro \cs{hologoSetup} sets global options.
+%
+% \begin{declcs}{hologoLogoSetup} \M{logo} \M{key value list}
+% \end{declcs}
+% Some options can also be used to configure a logo.
+% These settings take precedence over global option settings.
+%
+% \subsection{Options}\label{sec:options}
+%
+% There are boolean and string options:
+% \begin{description}
+% \item[Boolean option:]
+% It takes |true| or |false|
+% as value. If the value is omitted, then |true| is used.
+% \item[String option:]
+% A value must be given as string. (But the string might be empty.)
+% \end{description}
+% The following options can be used both in \cs{hologoSetup}
+% and \cs{hologoLogoSetup}:
+% \begin{description}
+% \def\entry#1{\item[\xoption{#1}:]}
+% \entry{break}
+% enables or disables line breaks inside the logo. This setting is
+% refined by options \xoption{hyphenbreak}, \xoption{spacebreak}
+% or \xoption{discretionarybreak}.
+% Default is |false|.
+% \entry{hyphenbreak}
+% enables or disables the line break right after the hyphen character.
+% \entry{spacebreak}
+% enables or disables line breaks at space characters.
+% \entry{discretionarybreak}
+% enables or disables line breaks at hyphenation points
+% (inserted by \cs{-}).
+% \end{description}
+% Macro \cs{hologoLogoSetup} also knows:
+% \begin{description}
+% \item[\xoption{variant}:]
+% This is a string option. It specifies a variant of a logo that
+% must exist. An empty string selects the package default variant.
+% \end{description}
+% Example:
+% \begin{quote}
+% |\hologoSetup{break=false}|\\
+% |\hologoLogoSetup{plainTeX}{variant=hyphen,hyphenbreak}|\\
+% Then ``plain-\TeX'' contains one break point after the hyphen.
+% \end{quote}
+%
+% \subsection{Driver options}
+%
+% Sometimes graphical operations are needed to construct some
+% glyphs (e.g.\ \hologo{XeTeX}). If package \xpackage{graphics}
+% or package \xpackage{pgf} are found, then the macros are taken
+% from there. Otherwise the packge defines its own operations
+% and therefore needs the driver information. Many drivers are
+% detected automatically (\hologo{pdfTeX}/\hologo{LuaTeX}
+% in PDF mode, \hologo{XeTeX}, \hologo{VTeX}). These have precedence
+% over a driver option. The driver can be given as package option
+% or using \cs{hologoDriverSetup}.
+% The following list contains the recognized driver options:
+% \begin{itemize}
+% \item \xoption{pdftex}, \xoption{luatex}
+% \item \xoption{dvipdfm}, \xoption{dvipdfmx}
+% \item \xoption{dvips}, \xoption{dvipsone}, \xoption{xdvi}
+% \item \xoption{xetex}
+% \item \xoption{vtex}
+% \end{itemize}
+% The left driver of a line is the driver name that is used internally.
+% The following names are aliases for drivers that use the
+% same method. Therefore the entry in the \xext{log} file for
+% the used driver prints the internally used driver name.
+% \begin{description}
+% \item[\xoption{driverfallback}:]
+% This option expects a driver that is used,
+% if the driver could not be detected automatically.
+% \end{description}
+%
+% \begin{declcs}{hologoDriverSetup} \M{driver option}
+% \end{declcs}
+% The driver can also be configured after package loading
+% using \cs{hologoDriverSetup}, also the way for \hologo{plainTeX}
+% to setup the driver.
+%
+% \subsection{Font setup}
+%
+% Some logos require a special font, but should also be usable by
+% \hologo{plainTeX}. Therefore the package provides some ways
+% to influence the font settings. The options below
+% take font settings as values. Both font commands
+% such as \cs{sffamily} and macros that take one argument
+% like \cs{textsf} can be used.
+%
+% \begin{declcs}{hologoFontSetup} \M{key value list}
+% \end{declcs}
+% Macro \cs{hologoFontSetup} sets the fonts for all logos.
+% Supported keys:
+% \begin{description}
+% \def\entry#1{\item[\xoption{#1}:]}
+% \entry{general}
+% This font is used for all logos. The default is empty.
+% That means no special font is used.
+% \entry{bibsf}
+% This font is used for
+% {\hologoLogoSetup{BibTeX}{variant=sf}\hologo{BibTeX}}
+% with variant \xoption{sf}.
+% \entry{rm}
+% This font is a serif font. It is used for \hologo{ExTeX}.
+% \entry{sc}
+% This font specifies a small caps font. It is used for
+% {\hologoLogoSetup{BibTeX}{variant=sc}\hologo{BibTeX}}
+% with variant \xoption{sc}.
+% \entry{sf}
+% This font specifies a sans serif font. The default
+% is \cs{sffamily}, then \cs{sf} is tried. Otherwise
+% a warning is given. It is used by \hologo{KOMAScript}.
+% \entry{sy}
+% This is the font for math symbols (e.g. cmsy).
+% It is used by \hologo{AmS}, \hologo{NTS}, \hologo{ExTeX}.
+% \entry{logo}
+% \hologo{METAFONT} and \hologo{METAPOST} are using that font.
+% In \hologo{LaTeX} \cs{logofamily} is used and
+% the definitions of package \xpackage{mflogo} are used
+% if the package is not loaded.
+% Otherwise the \cs{tenlogo} is used and defined
+% if it does not already exists.
+% \end{description}
+%
+% \begin{declcs}{hologoLogoFontSetup} \M{logo} \M{key value list}
+% \end{declcs}
+% Fonts can also be set for a logo or logo component separately,
+% see the following list.
+% The keys are the same as for \cs{hologoFontSetup}.
+%
+% \begin{longtable}{>{\ttfamily}l>{\sffamily}ll}
+% \meta{logo} & keys & result\\
+% \hline
+% \endhead
+% BibTeX & bibsf & {\hologoLogoSetup{BibTeX}{variant=sf}\hologo{BibTeX}}\\[.5ex]
+% BibTeX & sc & {\hologoLogoSetup{BibTeX}{variant=sc}\hologo{BibTeX}}\\[.5ex]
+% ExTeX & rm & \hologo{ExTeX}\\
+% SliTeX & rm & \hologo{SliTeX}\\[.5ex]
+% AmS & sy & \hologo{AmS}\\
+% ExTeX & sy & \hologo{ExTeX}\\
+% NTS & sy & \hologo{NTS}\\[.5ex]
+% KOMAScript & sf & \hologo{KOMAScript}\\[.5ex]
+% METAFONT & logo & \hologo{METAFONT}\\
+% METAPOST & logo & \hologo{METAPOST}\\[.5ex]
+% SliTeX & sc \hologo{SliTeX}
+% \end{longtable}
+%
+% \subsubsection{Font order}
+%
+% For all logos the font \xoption{general} is applied first.
+% Example:
+%\begin{quote}
+%|\hologoFontSetup{general=\color{red}}|
+%\end{quote}
+% will print red logos.
+% Then if the font uses a special font \xoption{sf}, for example,
+% the font is applied that is setup by \cs{hologoLogoFontSetup}.
+% If this font is not setup, then the common font setup
+% by \cs{hologoFontSetup} is used. Otherwise a warning is given,
+% that there is no font configured.
+%
+% \subsection{Additional user macros}
+%
+% Usually a variant of a logo is configured by using
+% \cs{hologoLogoSetup}, because it is bad style to mix
+% different variants of the same logo in the same text.
+% There the following macros are a convenience for testing.
+%
+% \begin{declcs}{hologoVariant} \M{name} \M{variant}\\
+% \cs{HologoVariant} \M{name} \M{variant}
+% \end{declcs}
+% Logo \meta{name} is set using \meta{variant} that specifies
+% explicitely which variant of the macro is used. If the argument
+% is empty, then the default form of the logo is used
+% (configurable by \cs{hologoLogoSetup}).
+%
+% \cs{HologoVariant} is used if the logo is set in a context
+% that needs an uppercase first letter (beginning of a sentence, \dots).
+%
+% \begin{declcs}{hologoList}\\
+% \cs{hologoEntry} \M{logo} \M{variant} \M{since}
+% \end{declcs}
+% Macro \cs{hologoList} contains all logos that are provided
+% by the package including variants. The list consists of calls
+% of \cs{hologoEntry} with three arguments starting with the
+% logo name \meta{logo} and its variant \meta{variant}. An empty
+% variant means the current default. Argument \meta{since} specifies
+% with version of the package \xpackage{hologo} is needed to get
+% the logo. If the logo is fixed, then the date gets updated.
+% Therefore the date \meta{since} is not exactly the date of
+% the first introduction, but rather the date of the latest fix.
+%
+% Before \cs{hologoList} can be used, macro \cs{hologoEntry} needs
+% a definition. The example file in section \ref{sec:example}
+% shows applications of \cs{hologoList}.
+%
+% \subsection{Supported contexts}
+%
+% Macros \cs{hologo} and friends support special contexts:
+% \begin{itemize}
+% \item \hologo{LaTeX}'s protection mechanism.
+% \item Bookmarks of package \xpackage{hyperref}.
+% \item Package \xpackage{tex4ht}.
+% \item The macros can be used inside \cs{csname} constructs,
+% if \cs{ifincsname} is available (\hologo{pdfTeX}, \hologo{XeTeX},
+% \hologo{LuaTeX}).
+% \end{itemize}
+%
+% \subsection{Example}
+% \label{sec:example}
+%
+% The following example prints the logos in different fonts.
+% \begin{macrocode}
+%<*example>
+%<<verbatim
+\NeedsTeXFormat{LaTeX2e}
+\documentclass[a4paper]{article}
+\usepackage[
+ hmargin=20mm,
+ vmargin=20mm,
+]{geometry}
+\pagestyle{empty}
+\usepackage{hologo}[2019/12/05]
+\usepackage{longtable}
+\usepackage{array}
+\setlength{\extrarowheight}{2pt}
+\usepackage[T1]{fontenc}
+\usepackage{lmodern}
+\usepackage{pdflscape}
+\usepackage[
+ pdfencoding=auto,
+]{hyperref}
+\hypersetup{
+ pdfauthor={Heiko Oberdiek},
+ pdftitle={Example for package `hologo'},
+ pdfsubject={Logos with fonts lmr, lmss, qtm, qpl, qhv},
+}
+\usepackage{bookmark}
+
+% Print the logo list on the console
+
+\begingroup
+ \typeout{}%
+ \typeout{*** Begin of logo list ***}%
+ \newcommand*{\hologoEntry}[3]{%
+ \typeout{#1 \ifx\\#2\\\else(#2) \fi[#3]}%
+ }%
+ \hologoList
+ \typeout{*** End of logo list ***}%
+ \typeout{}%
+\endgroup
+
+\begin{document}
+\begin{landscape}
+
+ \section{Example file for package `hologo'}
+
+ % Table for font names
+
+ \begin{longtable}{>{\bfseries}ll}
+ \textbf{font} & \textbf{Font name}\\
+ \hline
+ lmr & Latin Modern Roman\\
+ lmss & Latin Modern Sans\\
+ qtm & \TeX\ Gyre Termes\\
+ qhv & \TeX\ Gyre Heros\\
+ qpl & \TeX\ Gyre Pagella\\
+ \end{longtable}
+
+ % Logo list with logos in different fonts
+
+ \begingroup
+ \newcommand*{\SetVariant}[2]{%
+ \ifx\\#2\\%
+ \else
+ \hologoLogoSetup{#1}{variant=#2}%
+ \fi
+ }%
+ \newcommand*{\hologoEntry}[3]{%
+ \SetVariant{#1}{#2}%
+ \raisebox{1em}[0pt][0pt]{\hypertarget{#1@#2}{}}%
+ \bookmark[%
+ dest={#1@#2},%
+ ]{%
+ #1\ifx\\#2\\\else\space(#2)\fi: \Hologo{#1}, \hologo{#1} %
+ [Unicode]%
+ }%
+ \hypersetup{unicode=false}%
+ \bookmark[%
+ dest={#1@#2},%
+ ]{%
+ #1\ifx\\#2\\\else\space(#2)\fi: \Hologo{#1}, \hologo{#1} %
+ [PDFDocEncoding]%
+ }%
+ \texttt{#1}%
+ &%
+ \texttt{#2}%
+ &%
+ \Hologo{#1}%
+ &%
+ \SetVariant{#1}{#2}%
+ \hologo{#1}%
+ &%
+ \SetVariant{#1}{#2}%
+ \fontfamily{qtm}\selectfont
+ \hologo{#1}%
+ &%
+ \SetVariant{#1}{#2}%
+ \fontfamily{qpl}\selectfont
+ \hologo{#1}%
+ &%
+ \SetVariant{#1}{#2}%
+ \textsf{\hologo{#1}}%
+ &%
+ \SetVariant{#1}{#2}%
+ \fontfamily{qhv}\selectfont
+ \hologo{#1}%
+ \tabularnewline
+ }%
+ \begin{longtable}{llllllll}%
+ \textbf{\textit{logo}} & \textbf{\textit{variant}} &
+ \texttt{\string\Hologo} &
+ \textbf{lmr} & \textbf{qtm} & \textbf{qpl} &
+ \textbf{lmss} & \textbf{qhv}
+ \tabularnewline
+ \hline
+ \endhead
+ \hologoList
+ \end{longtable}%
+ \endgroup
+
+\end{landscape}
+\end{document}
+%verbatim
+%</example>
+% \end{macrocode}
+%
+% \StopEventually{
+% }
+%
+% \section{Implementation}
+% \begin{macrocode}
+%<*package>
+% \end{macrocode}
+% Reload check, especially if the package is not used with \LaTeX.
+% \begin{macrocode}
+\begingroup\catcode61\catcode48\catcode32=10\relax%
+ \catcode13=5 % ^^M
+ \endlinechar=13 %
+ \catcode35=6 % #
+ \catcode39=12 % '
+ \catcode44=12 % ,
+ \catcode45=12 % -
+ \catcode46=12 % .
+ \catcode58=12 % :
+ \catcode64=11 % @
+ \catcode123=1 % {
+ \catcode125=2 % }
+ \expandafter\let\expandafter\x\csname ver@hologo.sty\endcsname
+ \ifx\x\relax % plain-TeX, first loading
+ \else
+ \def\empty{}%
+ \ifx\x\empty % LaTeX, first loading,
+ % variable is initialized, but \ProvidesPackage not yet seen
+ \else
+ \expandafter\ifx\csname PackageInfo\endcsname\relax
+ \def\x#1#2{%
+ \immediate\write-1{Package #1 Info: #2.}%
+ }%
+ \else
+ \def\x#1#2{\PackageInfo{#1}{#2, stopped}}%
+ \fi
+ \x{hologo}{The package is already loaded}%
+ \aftergroup\endinput
+ \fi
+ \fi
+\endgroup%
+% \end{macrocode}
+% Package identification:
+% \begin{macrocode}
+\begingroup\catcode61\catcode48\catcode32=10\relax%
+ \catcode13=5 % ^^M
+ \endlinechar=13 %
+ \catcode35=6 % #
+ \catcode39=12 % '
+ \catcode40=12 % (
+ \catcode41=12 % )
+ \catcode44=12 % ,
+ \catcode45=12 % -
+ \catcode46=12 % .
+ \catcode47=12 % /
+ \catcode58=12 % :
+ \catcode64=11 % @
+ \catcode91=12 % [
+ \catcode93=12 % ]
+ \catcode123=1 % {
+ \catcode125=2 % }
+ \expandafter\ifx\csname ProvidesPackage\endcsname\relax
+ \def\x#1#2#3[#4]{\endgroup
+ \immediate\write-1{Package: #3 #4}%
+ \xdef#1{#4}%
+ }%
+ \else
+ \def\x#1#2[#3]{\endgroup
+ #2[{#3}]%
+ \ifx#1\@undefined
+ \xdef#1{#3}%
+ \fi
+ \ifx#1\relax
+ \xdef#1{#3}%
+ \fi
+ }%
+ \fi
+\expandafter\x\csname ver@hologo.sty\endcsname
+\ProvidesPackage{hologo}%
+ [2019/12/05 v1.14 A logo collection with bookmark support (HO)]%
+% \end{macrocode}
+%
+% \begin{macrocode}
+\begingroup\catcode61\catcode48\catcode32=10\relax%
+ \catcode13=5 % ^^M
+ \endlinechar=13 %
+ \catcode123=1 % {
+ \catcode125=2 % }
+ \catcode64=11 % @
+ \def\x{\endgroup
+ \expandafter\edef\csname HOLOGO@AtEnd\endcsname{%
+ \endlinechar=\the\endlinechar\relax
+ \catcode13=\the\catcode13\relax
+ \catcode32=\the\catcode32\relax
+ \catcode35=\the\catcode35\relax
+ \catcode61=\the\catcode61\relax
+ \catcode64=\the\catcode64\relax
+ \catcode123=\the\catcode123\relax
+ \catcode125=\the\catcode125\relax
+ }%
+ }%
+\x\catcode61\catcode48\catcode32=10\relax%
+\catcode13=5 % ^^M
+\endlinechar=13 %
+\catcode35=6 % #
+\catcode64=11 % @
+\catcode123=1 % {
+\catcode125=2 % }
+\def\TMP@EnsureCode#1#2{%
+ \edef\HOLOGO@AtEnd{%
+ \HOLOGO@AtEnd
+ \catcode#1=\the\catcode#1\relax
+ }%
+ \catcode#1=#2\relax
+}
+\TMP@EnsureCode{10}{12}% ^^J
+\TMP@EnsureCode{33}{12}% !
+\TMP@EnsureCode{34}{12}% "
+\TMP@EnsureCode{36}{3}% $
+\TMP@EnsureCode{38}{4}% &
+\TMP@EnsureCode{39}{12}% '
+\TMP@EnsureCode{40}{12}% (
+\TMP@EnsureCode{41}{12}% )
+\TMP@EnsureCode{42}{12}% *
+\TMP@EnsureCode{43}{12}% +
+\TMP@EnsureCode{44}{12}% ,
+\TMP@EnsureCode{45}{12}% -
+\TMP@EnsureCode{46}{12}% .
+\TMP@EnsureCode{47}{12}% /
+\TMP@EnsureCode{58}{12}% :
+\TMP@EnsureCode{59}{12}% ;
+\TMP@EnsureCode{60}{12}% <
+\TMP@EnsureCode{62}{12}% >
+\TMP@EnsureCode{63}{12}% ?
+\TMP@EnsureCode{91}{12}% [
+\TMP@EnsureCode{93}{12}% ]
+\TMP@EnsureCode{94}{7}% ^ (superscript)
+\TMP@EnsureCode{95}{8}% _ (subscript)
+\TMP@EnsureCode{96}{12}% `
+\TMP@EnsureCode{124}{12}% |
+\edef\HOLOGO@AtEnd{%
+ \HOLOGO@AtEnd
+ \escapechar\the\escapechar\relax
+ \noexpand\endinput
+}
+\escapechar=92 %
+% \end{macrocode}
+%
+% \subsection{Logo list}
+%
+% \begin{macro}{\hologoList}
+% \begin{macrocode}
+\def\hologoList{%
+ \hologoEntry{(La)TeX}{}{2011/10/01}%
+ \hologoEntry{AmSLaTeX}{}{2010/04/16}%
+ \hologoEntry{AmSTeX}{}{2010/04/16}%
+ \hologoEntry{biber}{}{2011/10/01}%
+ \hologoEntry{BibTeX}{}{2011/10/01}%
+ \hologoEntry{BibTeX}{sf}{2011/10/01}%
+ \hologoEntry{BibTeX}{sc}{2011/10/01}%
+ \hologoEntry{BibTeX8}{}{2011/11/22}%
+ \hologoEntry{ConTeXt}{}{2011/03/25}%
+ \hologoEntry{ConTeXt}{narrow}{2011/03/25}%
+ \hologoEntry{ConTeXt}{simple}{2011/03/25}%
+ \hologoEntry{emTeX}{}{2010/04/26}%
+ \hologoEntry{eTeX}{}{2010/04/08}%
+ \hologoEntry{ExTeX}{}{2011/10/01}%
+ \hologoEntry{HanTheThanh}{}{2011/11/29}%
+ \hologoEntry{iniTeX}{}{2011/10/01}%
+ \hologoEntry{KOMAScript}{}{2011/10/01}%
+ \hologoEntry{La}{}{2010/05/08}%
+ \hologoEntry{LaTeX}{}{2010/04/08}%
+ \hologoEntry{LaTeX2e}{}{2010/04/08}%
+ \hologoEntry{LaTeX3}{}{2010/04/24}%
+ \hologoEntry{LaTeXe}{}{2010/04/08}%
+ \hologoEntry{LaTeXML}{}{2011/11/22}%
+ \hologoEntry{LaTeXTeX}{}{2011/10/01}%
+ \hologoEntry{LuaLaTeX}{}{2010/04/08}%
+ \hologoEntry{LuaTeX}{}{2010/04/08}%
+ \hologoEntry{LyX}{}{2011/10/01}%
+ \hologoEntry{METAFONT}{}{2011/10/01}%
+ \hologoEntry{MetaFun}{}{2011/10/01}%
+ \hologoEntry{METAPOST}{}{2011/10/01}%
+ \hologoEntry{MetaPost}{}{2011/10/01}%
+ \hologoEntry{MiKTeX}{}{2011/10/01}%
+ \hologoEntry{NTS}{}{2011/10/01}%
+ \hologoEntry{OzMF}{}{2011/10/01}%
+ \hologoEntry{OzMP}{}{2011/10/01}%
+ \hologoEntry{OzTeX}{}{2011/10/01}%
+ \hologoEntry{OzTtH}{}{2011/10/01}%
+ \hologoEntry{PCTeX}{}{2011/10/01}%
+ \hologoEntry{pdfTeX}{}{2011/10/01}%
+ \hologoEntry{pdfLaTeX}{}{2011/10/01}%
+ \hologoEntry{PiC}{}{2011/10/01}%
+ \hologoEntry{PiCTeX}{}{2011/10/01}%
+ \hologoEntry{plainTeX}{}{2010/04/08}%
+ \hologoEntry{plainTeX}{space}{2010/04/16}%
+ \hologoEntry{plainTeX}{hyphen}{2010/04/16}%
+ \hologoEntry{plainTeX}{runtogether}{2010/04/16}%
+ \hologoEntry{SageTeX}{}{2011/11/22}%
+ \hologoEntry{SLiTeX}{}{2011/10/01}%
+ \hologoEntry{SLiTeX}{lift}{2011/10/01}%
+ \hologoEntry{SLiTeX}{narrow}{2011/10/01}%
+ \hologoEntry{SLiTeX}{simple}{2011/10/01}%
+ \hologoEntry{SliTeX}{}{2011/10/01}%
+ \hologoEntry{SliTeX}{narrow}{2011/10/01}%
+ \hologoEntry{SliTeX}{simple}{2011/10/01}%
+ \hologoEntry{SliTeX}{lift}{2011/10/01}%
+ \hologoEntry{teTeX}{}{2011/10/01}%
+ \hologoEntry{TeX}{}{2010/04/08}%
+ \hologoEntry{TeX4ht}{}{2011/11/22}%
+ \hologoEntry{TTH}{}{2011/11/22}%
+ \hologoEntry{virTeX}{}{2011/10/01}%
+ \hologoEntry{VTeX}{}{2010/04/24}%
+ \hologoEntry{Xe}{}{2010/04/08}%
+ \hologoEntry{XeLaTeX}{}{2010/04/08}%
+ \hologoEntry{XeTeX}{}{2010/04/08}%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Load resources}
+%
+% \begin{macrocode}
+\begingroup\expandafter\expandafter\expandafter\endgroup
+\expandafter\ifx\csname RequirePackage\endcsname\relax
+ \def\TMP@RequirePackage#1[#2]{%
+ \begingroup\expandafter\expandafter\expandafter\endgroup
+ \expandafter\ifx\csname ver@#1.sty\endcsname\relax
+ \input #1.sty\relax
+ \fi
+ }%
+ \TMP@RequirePackage{ltxcmds}[2011/02/04]%
+ \TMP@RequirePackage{infwarerr}[2010/04/08]%
+ \TMP@RequirePackage{kvsetkeys}[2010/03/01]%
+ \TMP@RequirePackage{kvdefinekeys}[2010/03/01]%
+ \TMP@RequirePackage{pdftexcmds}[2010/04/01]%
+ \TMP@RequirePackage{iftex}[2019/11/07]%
+ \ltx@IfUndefined{newif}{%
+ \expandafter\let\csname newif\endcsname\ltx@newif
+ }{}%
+\else
+ \RequirePackage{ltxcmds}[2011/02/04]%
+ \RequirePackage{infwarerr}[2010/04/08]%
+ \RequirePackage{kvsetkeys}[2010/03/01]%
+ \RequirePackage{kvdefinekeys}[2010/03/01]%
+ \RequirePackage{pdftexcmds}[2010/04/01]%
+ \RequirePackage{iftex}[2019/11/07]%
+\fi
+% \end{macrocode}
+%
+% \begin{macro}{\HOLOGO@IfDefined}
+% \begin{macrocode}
+\def\HOLOGO@IfExists#1{%
+ \ifx\@undefined#1%
+ \expandafter\ltx@secondoftwo
+ \else
+ \ifx\relax#1%
+ \expandafter\ltx@secondoftwo
+ \else
+ \expandafter\expandafter\expandafter\ltx@firstoftwo
+ \fi
+ \fi
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Setup macros}
+%
+% \begin{macro}{\hologoSetup}
+% \begin{macrocode}
+\def\hologoSetup{%
+ \let\HOLOGO@name\relax
+ \HOLOGO@Setup
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\hologoLogoSetup}
+% \begin{macrocode}
+\def\hologoLogoSetup#1{%
+ \edef\HOLOGO@name{#1}%
+ \ltx@IfUndefined{HoLogo@\HOLOGO@name}{%
+ \@PackageError{hologo}{%
+ Unknown logo `\HOLOGO@name'%
+ }\@ehc
+ \ltx@gobble
+ }{%
+ \HOLOGO@Setup
+ }%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\HOLOGO@Setup}
+% \begin{macrocode}
+\def\HOLOGO@Setup{%
+ \kvsetkeys{HoLogo}%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Options}
+%
+% \begin{macro}{\HOLOGO@DeclareBoolOption}
+% \begin{macrocode}
+\def\HOLOGO@DeclareBoolOption#1{%
+ \expandafter\chardef\csname HOLOGOOPT@#1\endcsname\ltx@zero
+ \kv@define@key{HoLogo}{#1}[true]{%
+ \def\HOLOGO@temp{##1}%
+ \ifx\HOLOGO@temp\HOLOGO@true
+ \ifx\HOLOGO@name\relax
+ \expandafter\chardef\csname HOLOGOOPT@#1\endcsname=\ltx@one
+ \else
+ \expandafter\chardef\csname
+ HoLogoOpt@#1@\HOLOGO@name\endcsname\ltx@one
+ \fi
+ \HOLOGO@SetBreakAll{#1}%
+ \else
+ \ifx\HOLOGO@temp\HOLOGO@false
+ \ifx\HOLOGO@name\relax
+ \expandafter\chardef\csname HOLOGOOPT@#1\endcsname=\ltx@zero
+ \else
+ \expandafter\chardef\csname
+ HoLogoOpt@#1@\HOLOGO@name\endcsname=\ltx@zero
+ \fi
+ \HOLOGO@SetBreakAll{#1}%
+ \else
+ \@PackageError{hologo}{%
+ Unknown value `##1' for boolean option `#1'.\MessageBreak
+ Known values are `true' and `false'%
+ }\@ehc
+ \fi
+ \fi
+ }%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\HOLOGO@SetBreakAll}
+% \begin{macrocode}
+\def\HOLOGO@SetBreakAll#1{%
+ \def\HOLOGO@temp{#1}%
+ \ifx\HOLOGO@temp\HOLOGO@break
+ \ifx\HOLOGO@name\relax
+ \chardef\HOLOGOOPT@hyphenbreak=\HOLOGOOPT@break
+ \chardef\HOLOGOOPT@spacebreak=\HOLOGOOPT@break
+ \chardef\HOLOGOOPT@discretionarybreak=\HOLOGOOPT@break
+ \else
+ \expandafter\chardef
+ \csname HoLogoOpt@hyphenbreak@\HOLOGO@name\endcsname=%
+ \csname HoLogoOpt@break@\HOLOGO@name\endcsname
+ \expandafter\chardef
+ \csname HoLogoOpt@spacebreak@\HOLOGO@name\endcsname=%
+ \csname HoLogoOpt@break@\HOLOGO@name\endcsname
+ \expandafter\chardef
+ \csname HoLogoOpt@discretionarybreak@\HOLOGO@name
+ \endcsname=%
+ \csname HoLogoOpt@break@\HOLOGO@name\endcsname
+ \fi
+ \fi
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\HOLOGO@true}
+% \begin{macrocode}
+\def\HOLOGO@true{true}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\HOLOGO@false}
+% \begin{macrocode}
+\def\HOLOGO@false{false}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\HOLOGO@break}
+% \begin{macrocode}
+\def\HOLOGO@break{break}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macrocode}
+\HOLOGO@DeclareBoolOption{break}
+\HOLOGO@DeclareBoolOption{hyphenbreak}
+\HOLOGO@DeclareBoolOption{spacebreak}
+\HOLOGO@DeclareBoolOption{discretionarybreak}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\kv@define@key{HoLogo}{variant}{%
+ \ifx\HOLOGO@name\relax
+ \@PackageError{hologo}{%
+ Option `variant' is not available in \string\hologoSetup,%
+ \MessageBreak
+ Use \string\hologoLogoSetup\space instead%
+ }\@ehc
+ \else
+ \edef\HOLOGO@temp{#1}%
+ \ifx\HOLOGO@temp\ltx@empty
+ \expandafter
+ \let\csname HoLogoOpt@variant@\HOLOGO@name\endcsname\@undefined
+ \else
+ \ltx@IfUndefined{HoLogo@\HOLOGO@name @\HOLOGO@temp}{%
+ \@PackageError{hologo}{%
+ Unknown variant `\HOLOGO@temp' of logo `\HOLOGO@name'%
+ }\@ehc
+ }{%
+ \expandafter
+ \let\csname HoLogoOpt@variant@\HOLOGO@name\endcsname
+ \HOLOGO@temp
+ }%
+ \fi
+ \fi
+}
+% \end{macrocode}
+%
+% \begin{macro}{\HOLOGO@Variant}
+% \begin{macrocode}
+\def\HOLOGO@Variant#1{%
+ #1%
+ \ltx@ifundefined{HoLogoOpt@variant@#1}{%
+ }{%
+ @\csname HoLogoOpt@variant@#1\endcsname
+ }%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Break/no-break support}
+%
+% \begin{macro}{\HOLOGO@space}
+% \begin{macrocode}
+\def\HOLOGO@space{%
+ \ltx@ifundefined{HoLogoOpt@spacebreak@\HOLOGO@name}{%
+ \ltx@ifundefined{HoLogoOpt@break@\HOLOGO@name}{%
+ \chardef\HOLOGO@temp=\HOLOGOOPT@spacebreak
+ }{%
+ \chardef\HOLOGO@temp=%
+ \csname HoLogoOpt@break@\HOLOGO@name\endcsname
+ }%
+ }{%
+ \chardef\HOLOGO@temp=%
+ \csname HoLogoOpt@spacebreak@\HOLOGO@name\endcsname
+ }%
+ \ifcase\HOLOGO@temp
+ \penalty10000 %
+ \fi
+ \ltx@space
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\HOLOGO@hyphen}
+% \begin{macrocode}
+\def\HOLOGO@hyphen{%
+ \ltx@ifundefined{HoLogoOpt@hyphenbreak@\HOLOGO@name}{%
+ \ltx@ifundefined{HoLogoOpt@break@\HOLOGO@name}{%
+ \chardef\HOLOGO@temp=\HOLOGOOPT@hyphenbreak
+ }{%
+ \chardef\HOLOGO@temp=%
+ \csname HoLogoOpt@break@\HOLOGO@name\endcsname
+ }%
+ }{%
+ \chardef\HOLOGO@temp=%
+ \csname HoLogoOpt@hyphenbreak@\HOLOGO@name\endcsname
+ }%
+ \ifcase\HOLOGO@temp
+ \ltx@mbox{-}%
+ \else
+ -%
+ \fi
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\HOLOGO@discretionary}
+% \begin{macrocode}
+\def\HOLOGO@discretionary{%
+ \ltx@ifundefined{HoLogoOpt@discretionarybreak@\HOLOGO@name}{%
+ \ltx@ifundefined{HoLogoOpt@break@\HOLOGO@name}{%
+ \chardef\HOLOGO@temp=\HOLOGOOPT@discretionarybreak
+ }{%
+ \chardef\HOLOGO@temp=%
+ \csname HoLogoOpt@break@\HOLOGO@name\endcsname
+ }%
+ }{%
+ \chardef\HOLOGO@temp=%
+ \csname HoLogoOpt@discretionarybreak@\HOLOGO@name\endcsname
+ }%
+ \ifcase\HOLOGO@temp
+ \else
+ \-%
+ \fi
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\HOLOGO@mbox}
+% \begin{macrocode}
+\def\HOLOGO@mbox#1{%
+ \ltx@ifundefined{HoLogoOpt@break@\HOLOGO@name}{%
+ \chardef\HOLOGO@temp=\HOLOGOOPT@hyphenbreak
+ }{%
+ \chardef\HOLOGO@temp=%
+ \csname HoLogoOpt@break@\HOLOGO@name\endcsname
+ }%
+ \ifcase\HOLOGO@temp
+ \ltx@mbox{#1}%
+ \else
+ #1%
+ \fi
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Font support}
+%
+% \begin{macro}{\HoLogoFont@font}
+% \begin{tabular}{@{}ll@{}}
+% |#1|:& logo name\\
+% |#2|:& font short name\\
+% |#3|:& text
+% \end{tabular}
+% \begin{macrocode}
+\def\HoLogoFont@font#1#2#3{%
+ \begingroup
+ \ltx@IfUndefined{HoLogoFont@logo@#1.#2}{%
+ \ltx@IfUndefined{HoLogoFont@font@#2}{%
+ \@PackageWarning{hologo}{%
+ Missing font `#2' for logo `#1'%
+ }%
+ #3%
+ }{%
+ \csname HoLogoFont@font@#2\endcsname{#3}%
+ }%
+ }{%
+ \csname HoLogoFont@logo@#1.#2\endcsname{#3}%
+ }%
+ \endgroup
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\HoLogoFont@Def}
+% \begin{macrocode}
+\def\HoLogoFont@Def#1{%
+ \expandafter\def\csname HoLogoFont@font@#1\endcsname
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\HoLogoFont@LogoDef}
+% \begin{macrocode}
+\def\HoLogoFont@LogoDef#1#2{%
+ \expandafter\def\csname HoLogoFont@logo@#1.#2\endcsname
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsubsection{Font defaults}
+%
+% \begin{macro}{\HoLogoFont@font@general}
+% \begin{macrocode}
+\HoLogoFont@Def{general}{}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\HoLogoFont@font@rm}
+% \begin{macrocode}
+\ltx@IfUndefined{rmfamily}{%
+ \ltx@IfUndefined{rm}{%
+ }{%
+ \HoLogoFont@Def{rm}{\rm}%
+ }%
+}{%
+ \HoLogoFont@Def{rm}{\rmfamily}%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\HoLogoFont@font@sf}
+% \begin{macrocode}
+\ltx@IfUndefined{sffamily}{%
+ \ltx@IfUndefined{sf}{%
+ }{%
+ \HoLogoFont@Def{sf}{\sf}%
+ }%
+}{%
+ \HoLogoFont@Def{sf}{\sffamily}%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\HoLogoFont@font@bibsf}
+% In case of \hologo{plainTeX} the original small caps
+% variant is used as default. In \hologo{LaTeX}
+% the definition of package \xpackage{dtklogos} \cite{dtklogos}
+% is used.
+%\begin{quote}
+%\begin{verbatim}
+%\DeclareRobustCommand{\BibTeX}{%
+% B%
+% \kern-.05em%
+% \hbox{%
+% $\m@th$% %% force math size calculations
+% \csname S@\f@size\endcsname
+% \fontsize\sf@size\z@
+% \math@fontsfalse
+% \selectfont
+% I%
+% \kern-.025em%
+% B
+% }%
+% \kern-.08em%
+% \-%
+% \TeX
+%}
+%\end{verbatim}
+%\end{quote}
+% \begin{macrocode}
+\ltx@IfUndefined{selectfont}{%
+ \ltx@IfUndefined{tensc}{%
+ \font\tensc=cmcsc10\relax
+ }{}%
+ \HoLogoFont@Def{bibsf}{\tensc}%
+}{%
+ \HoLogoFont@Def{bibsf}{%
+ $\mathsurround=0pt$%
+ \csname S@\f@size\endcsname
+ \fontsize\sf@size{0pt}%
+ \math@fontsfalse
+ \selectfont
+ }%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\HoLogoFont@font@sc}
+% \begin{macrocode}
+\ltx@IfUndefined{scshape}{%
+ \ltx@IfUndefined{tensc}{%
+ \font\tensc=cmcsc10\relax
+ }{}%
+ \HoLogoFont@Def{sc}{\tensc}%
+}{%
+ \HoLogoFont@Def{sc}{\scshape}%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\HoLogoFont@font@sy}
+% \begin{macrocode}
+\ltx@IfUndefined{usefont}{%
+ \ltx@IfUndefined{tensy}{%
+ }{%
+ \HoLogoFont@Def{sy}{\tensy}%
+ }%
+}{%
+ \HoLogoFont@Def{sy}{%
+ \usefont{OMS}{cmsy}{m}{n}%
+ }%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\HoLogoFont@font@logo}
+% \begin{macrocode}
+\begingroup
+ \def\x{LaTeX2e}%
+\expandafter\endgroup
+\ifx\fmtname\x
+ \ltx@IfUndefined{logofamily}{%
+ \DeclareRobustCommand\logofamily{%
+ \not@math@alphabet\logofamily\relax
+ \fontencoding{U}%
+ \fontfamily{logo}%
+ \selectfont
+ }%
+ }{}%
+ \ltx@IfUndefined{logofamily}{%
+ }{%
+ \HoLogoFont@Def{logo}{\logofamily}%
+ }%
+\else
+ \ltx@IfUndefined{tenlogo}{%
+ \font\tenlogo=logo10\relax
+ }{}%
+ \HoLogoFont@Def{logo}{\tenlogo}%
+\fi
+% \end{macrocode}
+% \end{macro}
+%
+% \subsubsection{Font setup}
+%
+% \begin{macro}{\hologoFontSetup}
+% \begin{macrocode}
+\def\hologoFontSetup{%
+ \let\HOLOGO@name\relax
+ \HOLOGO@FontSetup
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\hologoLogoFontSetup}
+% \begin{macrocode}
+\def\hologoLogoFontSetup#1{%
+ \edef\HOLOGO@name{#1}%
+ \ltx@IfUndefined{HoLogo@\HOLOGO@name}{%
+ \@PackageError{hologo}{%
+ Unknown logo `\HOLOGO@name'%
+ }\@ehc
+ \ltx@gobble
+ }{%
+ \HOLOGO@FontSetup
+ }%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\HOLOGO@FontSetup}
+% \begin{macrocode}
+\def\HOLOGO@FontSetup{%
+ \kvsetkeys{HoLogoFont}%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macrocode}
+\def\HOLOGO@temp#1{%
+ \kv@define@key{HoLogoFont}{#1}{%
+ \ifx\HOLOGO@name\relax
+ \HoLogoFont@Def{#1}{##1}%
+ \else
+ \HoLogoFont@LogoDef\HOLOGO@name{#1}{##1}%
+ \fi
+ }%
+}
+\HOLOGO@temp{general}
+\HOLOGO@temp{sf}
+% \end{macrocode}
+%
+% \subsection{Generic logo commands}
+%
+% \begin{macrocode}
+\HOLOGO@IfExists\hologo{%
+ \@PackageError{hologo}{%
+ \string\hologo\ltx@space is already defined.\MessageBreak
+ Package loading is aborted%
+ }\@ehc
+ \HOLOGO@AtEnd
+}%
+\HOLOGO@IfExists\hologoRobust{%
+ \@PackageError{hologo}{%
+ \string\hologoRobust\ltx@space is already defined.\MessageBreak
+ Package loading is aborted%
+ }\@ehc
+ \HOLOGO@AtEnd
+}%
+% \end{macrocode}
+%
+% \subsubsection{\cs{hologo} and friends}
+%
+% \begin{macrocode}
+\ifluatex
+ \expandafter\ltx@firstofone
+\else
+ \expandafter\ltx@gobble
+\fi
+{%
+ \ltx@IfUndefined{ifincsname}{%
+ \ifnum\luatexversion<36 %
+ \expandafter\ltx@gobble
+ \else
+ \expandafter\ltx@firstofone
+ \fi
+ {%
+ \begingroup
+ \ifcase0%
+ \directlua{%
+ if tex.enableprimitives then %
+ tex.enableprimitives('HOLOGO@', {'ifincsname'})%
+ else %
+ tex.print('1')%
+ end%
+ }%
+ \ifx\HOLOGO@ifincsname\@undefined 1\fi%
+ \relax
+ \expandafter\ltx@firstofone
+ \else
+ \endgroup
+ \expandafter\ltx@gobble
+ \fi
+ {%
+ \global\let\ifincsname\HOLOGO@ifincsname
+ }%
+ \HOLOGO@temp
+ }%
+ }{}%
+}
+% \end{macrocode}
+% \begin{macrocode}
+\ltx@IfUndefined{ifincsname}{%
+ \catcode`$=14 %
+}{%
+ \catcode`$=9 %
+}
+% \end{macrocode}
+%
+% \begin{macro}{\hologo}
+% \begin{macrocode}
+\def\hologo#1{%
+$ \ifincsname
+$ \ltx@ifundefined{HoLogoCs@\HOLOGO@Variant{#1}}{%
+$ #1%
+$ }{%
+$ \csname HoLogoCs@\HOLOGO@Variant{#1}\endcsname\ltx@firstoftwo
+$ }%
+$ \else
+ \HOLOGO@IfExists\texorpdfstring\texorpdfstring\ltx@firstoftwo
+ {%
+ \hologoRobust{#1}%
+ }{%
+ \ltx@ifundefined{HoLogoBkm@\HOLOGO@Variant{#1}}{%
+ \ltx@ifundefined{HoLogo@#1}{?#1?}{#1}%
+ }{%
+ \csname HoLogoBkm@\HOLOGO@Variant{#1}\endcsname
+ \ltx@firstoftwo
+ }%
+ }%
+$ \fi
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\Hologo}
+% \begin{macrocode}
+\def\Hologo#1{%
+$ \ifincsname
+$ \ltx@ifundefined{HoLogoCs@\HOLOGO@Variant{#1}}{%
+$ #1%
+$ }{%
+$ \csname HoLogoCs@\HOLOGO@Variant{#1}\endcsname\ltx@secondoftwo
+$ }%
+$ \else
+ \HOLOGO@IfExists\texorpdfstring\texorpdfstring\ltx@firstoftwo
+ {%
+ \HologoRobust{#1}%
+ }{%
+ \ltx@ifundefined{HoLogoBkm@\HOLOGO@Variant{#1}}{%
+ \ltx@ifundefined{HoLogo@#1}{?#1?}{#1}%
+ }{%
+ \csname HoLogoBkm@\HOLOGO@Variant{#1}\endcsname
+ \ltx@secondoftwo
+ }%
+ }%
+$ \fi
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\hologoVariant}
+% \begin{macrocode}
+\def\hologoVariant#1#2{%
+ \ifx\relax#2\relax
+ \hologo{#1}%
+ \else
+$ \ifincsname
+$ \ltx@ifundefined{HoLogoCs@#1@#2}{%
+$ #1%
+$ }{%
+$ \csname HoLogoCs@#1@#2\endcsname\ltx@firstoftwo
+$ }%
+$ \else
+ \HOLOGO@IfExists\texorpdfstring\texorpdfstring\ltx@firstoftwo
+ {%
+ \hologoVariantRobust{#1}{#2}%
+ }{%
+ \ltx@ifundefined{HoLogoBkm@#1@#2}{%
+ \ltx@ifundefined{HoLogo@#1}{?#1?}{#1}%
+ }{%
+ \csname HoLogoBkm@#1@#2\endcsname
+ \ltx@firstoftwo
+ }%
+ }%
+$ \fi
+ \fi
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\HologoVariant}
+% \begin{macrocode}
+\def\HologoVariant#1#2{%
+ \ifx\relax#2\relax
+ \Hologo{#1}%
+ \else
+$ \ifincsname
+$ \ltx@ifundefined{HoLogoCs@#1@#2}{%
+$ #1%
+$ }{%
+$ \csname HoLogoCs@#1@#2\endcsname\ltx@secondoftwo
+$ }%
+$ \else
+ \HOLOGO@IfExists\texorpdfstring\texorpdfstring\ltx@firstoftwo
+ {%
+ \HologoVariantRobust{#1}{#2}%
+ }{%
+ \ltx@ifundefined{HoLogoBkm@#1@#2}{%
+ \ltx@ifundefined{HoLogo@#1}{?#1?}{#1}%
+ }{%
+ \csname HoLogoBkm@#1@#2\endcsname
+ \ltx@secondoftwo
+ }%
+ }%
+$ \fi
+ \fi
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macrocode}
+\catcode`\$=3 %
+% \end{macrocode}
+%
+% \subsubsection{\cs{hologoRobust} and friends}
+%
+% \begin{macro}{\hologoRobust}
+% \begin{macrocode}
+\ltx@IfUndefined{protected}{%
+ \ltx@IfUndefined{DeclareRobustCommand}{%
+ \def\hologoRobust#1%
+ }{%
+ \DeclareRobustCommand*\hologoRobust[1]%
+ }%
+}{%
+ \protected\def\hologoRobust#1%
+}%
+{%
+ \edef\HOLOGO@name{#1}%
+ \ltx@IfUndefined{HoLogo@\HOLOGO@Variant\HOLOGO@name}{%
+ \@PackageError{hologo}{%
+ Unknown logo `\HOLOGO@name'%
+ }\@ehc
+ ?\HOLOGO@name?%
+ }{%
+ \ltx@IfUndefined{ver@tex4ht.sty}{%
+ \HoLogoFont@font\HOLOGO@name{general}{%
+ \csname HoLogo@\HOLOGO@Variant\HOLOGO@name\endcsname
+ \ltx@firstoftwo
+ }%
+ }{%
+ \ltx@IfUndefined{HoLogoHtml@\HOLOGO@Variant\HOLOGO@name}{%
+ \HOLOGO@name
+ }{%
+ \csname HoLogoHtml@\HOLOGO@Variant\HOLOGO@name\endcsname
+ \ltx@firstoftwo
+ }%
+ }%
+ }%
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\HologoRobust}
+% \begin{macrocode}
+\ltx@IfUndefined{protected}{%
+ \ltx@IfUndefined{DeclareRobustCommand}{%
+ \def\HologoRobust#1%
+ }{%
+ \DeclareRobustCommand*\HologoRobust[1]%
+ }%
+}{%
+ \protected\def\HologoRobust#1%
+}%
+{%
+ \edef\HOLOGO@name{#1}%
+ \ltx@IfUndefined{HoLogo@\HOLOGO@Variant\HOLOGO@name}{%
+ \@PackageError{hologo}{%
+ Unknown logo `\HOLOGO@name'%
+ }\@ehc
+ ?\HOLOGO@name?%
+ }{%
+ \ltx@IfUndefined{ver@tex4ht.sty}{%
+ \HoLogoFont@font\HOLOGO@name{general}{%
+ \csname HoLogo@\HOLOGO@Variant\HOLOGO@name\endcsname
+ \ltx@secondoftwo
+ }%
+ }{%
+ \ltx@IfUndefined{HoLogoHtml@\HOLOGO@Variant\HOLOGO@name}{%
+ \expandafter\HOLOGO@Uppercase\HOLOGO@name
+ }{%
+ \csname HoLogoHtml@\HOLOGO@Variant\HOLOGO@name\endcsname
+ \ltx@secondoftwo
+ }%
+ }%
+ }%
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\hologoVariantRobust}
+% \begin{macrocode}
+\ltx@IfUndefined{protected}{%
+ \ltx@IfUndefined{DeclareRobustCommand}{%
+ \def\hologoVariantRobust#1#2%
+ }{%
+ \DeclareRobustCommand*\hologoVariantRobust[2]%
+ }%
+}{%
+ \protected\def\hologoVariantRobust#1#2%
+}%
+{%
+ \begingroup
+ \hologoLogoSetup{#1}{variant={#2}}%
+ \hologoRobust{#1}%
+ \endgroup
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\HologoVariantRobust}
+% \begin{macrocode}
+\ltx@IfUndefined{protected}{%
+ \ltx@IfUndefined{DeclareRobustCommand}{%
+ \def\HologoVariantRobust#1#2%
+ }{%
+ \DeclareRobustCommand*\HologoVariantRobust[2]%
+ }%
+}{%
+ \protected\def\HologoVariantRobust#1#2%
+}%
+{%
+ \begingroup
+ \hologoLogoSetup{#1}{variant={#2}}%
+ \HologoRobust{#1}%
+ \endgroup
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\hologorobust}
+% Macro \cs{hologorobust} is only defined for compatibility.
+% Its use is deprecated.
+% \begin{macrocode}
+\def\hologorobust{\hologoRobust}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Helpers}
+%
+% \begin{macro}{\HOLOGO@Uppercase}
+% Macro \cs{HOLOGO@Uppercase} is restricted to \cs{uppercase},
+% because \hologo{plainTeX} or \hologo{iniTeX} do not provide
+% \cs{MakeUppercase}.
+% \begin{macrocode}
+\def\HOLOGO@Uppercase#1{\uppercase{#1}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\HOLOGO@PdfdocUnicode}
+% \begin{macrocode}
+\def\HOLOGO@PdfdocUnicode{%
+ \ifx\ifHy@unicode\iftrue
+ \expandafter\ltx@secondoftwo
+ \else
+ \expandafter\ltx@firstoftwo
+ \fi
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\HOLOGO@Math}
+% \begin{macrocode}
+\def\HOLOGO@MathSetup{%
+ \mathsurround0pt\relax
+ \HOLOGO@IfExists\f@series{%
+ \if b\expandafter\ltx@car\f@series x\@nil
+ \csname boldmath\endcsname
+ \fi
+ }{}%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\HOLOGO@TempDimen}
+% \begin{macrocode}
+\dimendef\HOLOGO@TempDimen=\ltx@zero
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\HOLOGO@NegativeKerning}
+% \begin{macrocode}
+\def\HOLOGO@NegativeKerning#1{%
+ \begingroup
+ \HOLOGO@TempDimen=0pt\relax
+ \comma@parse@normalized{#1}{%
+ \ifdim\HOLOGO@TempDimen=0pt %
+ \expandafter\HOLOGO@@NegativeKerning\comma@entry
+ \fi
+ \ltx@gobble
+ }%
+ \ifdim\HOLOGO@TempDimen<0pt %
+ \kern\HOLOGO@TempDimen
+ \fi
+ \endgroup
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\HOLOGO@@NegativeKerning}
+% \begin{macrocode}
+\def\HOLOGO@@NegativeKerning#1#2{%
+ \setbox\ltx@zero\hbox{#1#2}%
+ \HOLOGO@TempDimen=\wd\ltx@zero
+ \setbox\ltx@zero\hbox{#1\kern0pt#2}%
+ \advance\HOLOGO@TempDimen by -\wd\ltx@zero
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\HOLOGO@SpaceFactor}
+% \begin{macrocode}
+\def\HOLOGO@SpaceFactor{%
+ \spacefactor1000 %
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\HOLOGO@Span}
+% \begin{macrocode}
+\def\HOLOGO@Span#1#2{%
+ \HCode{<span class="HoLogo-#1">}%
+ #2%
+ \HCode{</span>}%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsubsection{Text subscript}
+%
+% \begin{macro}{\HOLOGO@SubScript}%
+% \begin{macrocode}
+\def\HOLOGO@SubScript#1{%
+ \ltx@IfUndefined{textsubscript}{%
+ \ltx@IfUndefined{text}{%
+ \ltx@mbox{%
+ \mathsurround=0pt\relax
+ $%
+ _{%
+ \ltx@IfUndefined{sf@size}{%
+ \mathrm{#1}%
+ }{%
+ \mbox{%
+ \fontsize\sf@size{0pt}\selectfont
+ #1%
+ }%
+ }%
+ }%
+ $%
+ }%
+ }{%
+ \ltx@mbox{%
+ \mathsurround=0pt\relax
+ $_{\text{#1}}$%
+ }%
+ }%
+ }{%
+ \textsubscript{#1}%
+ }%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{\hologo{TeX} and friends}
+%
+% \subsubsection{\hologo{TeX}}
+%
+% \begin{macro}{\HoLogo@TeX}
+% Source: \hologo{LaTeX} kernel.
+% \begin{macrocode}
+\def\HoLogo@TeX#1{%
+ T\kern-.1667em\lower.5ex\hbox{E}\kern-.125emX\HOLOGO@SpaceFactor
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\HoLogoHtml@TeX}
+% \begin{macrocode}
+\def\HoLogoHtml@TeX#1{%
+ \HoLogoCss@TeX
+ \HOLOGO@Span{TeX}{%
+ T%
+ \HOLOGO@Span{e}{%
+ E%
+ }%
+ X%
+ }%
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\HoLogoCss@TeX}
+% \begin{macrocode}
+\def\HoLogoCss@TeX{%
+ \Css{%
+ span.HoLogo-TeX span.HoLogo-e{%
+ position:relative;%
+ top:.5ex;%
+ margin-left:-.1667em;%
+ margin-right:-.125em;%
+ }%
+ }%
+ \Css{%
+ a span.HoLogo-TeX span.HoLogo-e{%
+ text-decoration:none;%
+ }%
+ }%
+ \global\let\HoLogoCss@TeX\relax
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsubsection{\hologo{plainTeX}}
+%
+% \begin{macro}{\HoLogo@plainTeX@space}
+% Source: ``The \hologo{TeX}book''
+% \begin{macrocode}
+\def\HoLogo@plainTeX@space#1{%
+ \HOLOGO@mbox{#1{p}{P}lain}\HOLOGO@space\hologo{TeX}%
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\HoLogoCs@plainTeX@space}
+% \begin{macrocode}
+\def\HoLogoCs@plainTeX@space#1{#1{p}{P}lain TeX}%
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\HoLogoBkm@plainTeX@space}
+% \begin{macrocode}
+\def\HoLogoBkm@plainTeX@space#1{%
+ #1{p}{P}lain \hologo{TeX}%
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\HoLogoHtml@plainTeX@space}
+% \begin{macrocode}
+\def\HoLogoHtml@plainTeX@space#1{%
+ #1{p}{P}lain \hologo{TeX}%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\HoLogo@plainTeX@hyphen}
+% \begin{macrocode}
+\def\HoLogo@plainTeX@hyphen#1{%
+ \HOLOGO@mbox{#1{p}{P}lain}\HOLOGO@hyphen\hologo{TeX}%
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\HoLogoCs@plainTeX@hyphen}
+% \begin{macrocode}
+\def\HoLogoCs@plainTeX@hyphen#1{#1{p}{P}lain-TeX}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\HoLogoBkm@plainTeX@hyphen}
+% \begin{macrocode}
+\def\HoLogoBkm@plainTeX@hyphen#1{%
+ #1{p}{P}lain-\hologo{TeX}%
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\HoLogoHtml@plainTeX@hyphen}
+% \begin{macrocode}
+\def\HoLogoHtml@plainTeX@hyphen#1{%
+ #1{p}{P}lain-\hologo{TeX}%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\HoLogo@plainTeX@runtogether}
+% \begin{macrocode}
+\def\HoLogo@plainTeX@runtogether#1{%
+ \HOLOGO@mbox{#1{p}{P}lain\hologo{TeX}}%
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\HoLogoCs@plainTeX@runtogether}
+% \begin{macrocode}
+\def\HoLogoCs@plainTeX@runtogether#1{#1{p}{P}lainTeX}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\HoLogoBkm@plainTeX@runtogether}
+% \begin{macrocode}
+\def\HoLogoBkm@plainTeX@runtogether#1{%
+ #1{p}{P}lain\hologo{TeX}%
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\HoLogoHtml@plainTeX@runtogether}
+% \begin{macrocode}
+\def\HoLogoHtml@plainTeX@runtogether#1{%
+ #1{p}{P}lain\hologo{TeX}%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\HoLogo@plainTeX}
+% \begin{macrocode}
+\def\HoLogo@plainTeX{\HoLogo@plainTeX@space}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\HoLogoCs@plainTeX}
+% \begin{macrocode}
+\def\HoLogoCs@plainTeX{\HoLogoCs@plainTeX@space}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\HoLogoBkm@plainTeX}
+% \begin{macrocode}
+\def\HoLogoBkm@plainTeX{\HoLogoBkm@plainTeX@space}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\HoLogoHtml@plainTeX}
+% \begin{macrocode}
+\def\HoLogoHtml@plainTeX{\HoLogoHtml@plainTeX@space}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsubsection{\hologo{LaTeX}}
+%
+% Source: \hologo{LaTeX} kernel.
+%\begin{quote}
+%\begin{verbatim}
+%\DeclareRobustCommand{\LaTeX}{%
+% L%
+% \kern-.36em%
+% {%
+% \sbox\z@ T%
+% \vbox to\ht\z@{%
+% \hbox{%
+% \check@mathfonts
+% \fontsize\sf@size\z@
+% \math@fontsfalse
+% \selectfont
+% A%
+% }%
+% \vss
+% }%
+% }%
+% \kern-.15em%
+% \TeX
+%}
+%\end{verbatim}
+%\end{quote}
+%
+% \begin{macro}{\HoLogo@La}
+% \begin{macrocode}
+\def\HoLogo@La#1{%
+ L%
+ \kern-.36em%
+ \begingroup
+ \setbox\ltx@zero\hbox{T}%
+ \vbox to\ht\ltx@zero{%
+ \hbox{%
+ \ltx@ifundefined{check@mathfonts}{%
+ \csname sevenrm\endcsname
+ }{%
+ \check@mathfonts
+ \fontsize\sf@size{0pt}%
+ \math@fontsfalse\selectfont
+ }%
+ A%
+ }%
+ \vss
+ }%
+ \endgroup
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\HoLogo@LaTeX}
+% Source: \hologo{LaTeX} kernel.
+% \begin{macrocode}
+\def\HoLogo@LaTeX#1{%
+ \hologo{La}%
+ \kern-.15em%
+ \hologo{TeX}%
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\HoLogoHtml@LaTeX}
+% \begin{macrocode}
+\def\HoLogoHtml@LaTeX#1{%
+ \HoLogoCss@LaTeX
+ \HOLOGO@Span{LaTeX}{%
+ L%
+ \HOLOGO@Span{a}{%
+ A%
+ }%
+ \hologo{TeX}%
+ }%
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\HoLogoCss@LaTeX}
+% \begin{macrocode}
+\def\HoLogoCss@LaTeX{%
+ \Css{%
+ span.HoLogo-LaTeX span.HoLogo-a{%
+ position:relative;%
+ top:-.5ex;%
+ margin-left:-.36em;%
+ margin-right:-.15em;%
+ font-size:85\%;%
+ }%
+ }%
+ \global\let\HoLogoCss@LaTeX\relax
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsubsection{\hologo{(La)TeX}}
+%
+% \begin{macro}{\HoLogo@LaTeXTeX}
+% The kerning around the parentheses is taken
+% from package \xpackage{dtklogos} \cite{dtklogos}.
+%\begin{quote}
+%\begin{verbatim}
+%\DeclareRobustCommand{\LaTeXTeX}{%
+% (%
+% \kern-.15em%
+% L%
+% \kern-.36em%
+% {%
+% \sbox\z@ T%
+% \vbox to\ht0{%
+% \hbox{%
+% $\m@th$%
+% \csname S@\f@size\endcsname
+% \fontsize\sf@size\z@
+% \math@fontsfalse
+% \selectfont
+% A%
+% }%
+% \vss
+% }%
+% }%
+% \kern-.2em%
+% )%
+% \kern-.15em%
+% \TeX
+%}
+%\end{verbatim}
+%\end{quote}
+% \begin{macrocode}
+\def\HoLogo@LaTeXTeX#1{%
+ (%
+ \kern-.15em%
+ \hologo{La}%
+ \kern-.2em%
+ )%
+ \kern-.15em%
+ \hologo{TeX}%
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\HoLogoBkm@LaTeXTeX}
+% \begin{macrocode}
+\def\HoLogoBkm@LaTeXTeX#1{(La)TeX}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\HoLogo@(La)TeX}
+% \begin{macrocode}
+\expandafter
+\let\csname HoLogo@(La)TeX\endcsname\HoLogo@LaTeXTeX
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\HoLogoBkm@(La)TeX}
+% \begin{macrocode}
+\expandafter
+\let\csname HoLogoBkm@(La)TeX\endcsname\HoLogoBkm@LaTeXTeX
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\HoLogoHtml@LaTeXTeX}
+% \begin{macrocode}
+\def\HoLogoHtml@LaTeXTeX#1{%
+ \HoLogoCss@LaTeXTeX
+ \HOLOGO@Span{LaTeXTeX}{%
+ (%
+ \HOLOGO@Span{L}{L}%
+ \HOLOGO@Span{a}{A}%
+ \HOLOGO@Span{ParenRight}{)}%
+ \hologo{TeX}%
+ }%
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\HoLogoHtml@(La)TeX}
+% Kerning after opening parentheses and before closing parentheses
+% is $-0.1$\,em. The original values $-0.15$\,em
+% looked too ugly for a serif font.
+% \begin{macrocode}
+\expandafter
+\let\csname HoLogoHtml@(La)TeX\endcsname\HoLogoHtml@LaTeXTeX
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\HoLogoCss@LaTeXTeX}
+% \begin{macrocode}
+\def\HoLogoCss@LaTeXTeX{%
+ \Css{%
+ span.HoLogo-LaTeXTeX span.HoLogo-L{%
+ margin-left:-.1em;%
+ }%
+ }%
+ \Css{%
+ span.HoLogo-LaTeXTeX span.HoLogo-a{%
+ position:relative;%
+ top:-.5ex;%
+ margin-left:-.36em;%
+ margin-right:-.1em;%
+ font-size:85\%;%
+ }%
+ }%
+ \Css{%
+ span.HoLogo-LaTeXTeX span.HoLogo-ParenRight{%
+ margin-right:-.15em;%
+ }%
+ }%
+ \global\let\HoLogoCss@LaTeXTeX\relax
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsubsection{\hologo{LaTeXe}}
+%
+% \begin{macro}{\HoLogo@LaTeXe}
+% Source: \hologo{LaTeX} kernel
+% \begin{macrocode}
+\def\HoLogo@LaTeXe#1{%
+ \hologo{LaTeX}%
+ \kern.15em%
+ \hbox{%
+ \HOLOGO@MathSetup
+ 2%
+ $_{\textstyle\varepsilon}$%
+ }%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\HoLogoCs@LaTeXe}
+% \begin{macrocode}
+\ifnum64=`\^^^^0040\relax % test for big chars of LuaTeX/XeTeX
+ \catcode`\$=9 %
+ \catcode`\&=14 %
+\else
+ \catcode`\$=14 %
+ \catcode`\&=9 %
+\fi
+\def\HoLogoCs@LaTeXe#1{%
+ LaTeX2%
+$ \string ^^^^0395%
+& e%
+}%
+\catcode`\$=3 %
+\catcode`\&=4 %
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\HoLogoBkm@LaTeXe}
+% \begin{macrocode}
+\def\HoLogoBkm@LaTeXe#1{%
+ \hologo{LaTeX}%
+ 2%
+ \HOLOGO@PdfdocUnicode{e}{\textepsilon}%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\HoLogoHtml@LaTeXe}
+% \begin{macrocode}
+\def\HoLogoHtml@LaTeXe#1{%
+ \HoLogoCss@LaTeXe
+ \HOLOGO@Span{LaTeX2e}{%
+ \hologo{LaTeX}%
+ \HOLOGO@Span{2}{2}%
+ \HOLOGO@Span{e}{%
+ \HOLOGO@MathSetup
+ \ensuremath{\textstyle\varepsilon}%
+ }%
+ }%
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\HoLogoCss@LaTeXe}
+% \begin{macrocode}
+\def\HoLogoCss@LaTeXe{%
+ \Css{%
+ span.HoLogo-LaTeX2e span.HoLogo-2{%
+ padding-left:.15em;%
+ }%
+ }%
+ \Css{%
+ span.HoLogo-LaTeX2e span.HoLogo-e{%
+ position:relative;%
+ top:.35ex;%
+ text-decoration:none;%
+ }%
+ }%
+ \global\let\HoLogoCss@LaTeXe\relax
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\HoLogo@LaTeX2e}
+% \begin{macrocode}
+\expandafter
+\let\csname HoLogo@LaTeX2e\endcsname\HoLogo@LaTeXe
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\HoLogoCs@LaTeX2e}
+% \begin{macrocode}
+\expandafter
+\let\csname HoLogoCs@LaTeX2e\endcsname\HoLogoCs@LaTeXe
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\HoLogoBkm@LaTeX2e}
+% \begin{macrocode}
+\expandafter
+\let\csname HoLogoBkm@LaTeX2e\endcsname\HoLogoBkm@LaTeXe
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\HoLogoHtml@LaTeX2e}
+% \begin{macrocode}
+\expandafter
+\let\csname HoLogoHtml@LaTeX2e\endcsname\HoLogoHtml@LaTeXe
+% \end{macrocode}
+% \end{macro}
+%
+% \subsubsection{\hologo{LaTeX3}}
+%
+% \begin{macro}{\HoLogo@LaTeX3}
+% Source: \hologo{LaTeX} kernel
+% \begin{macrocode}
+\expandafter\def\csname HoLogo@LaTeX3\endcsname#1{%
+ \hologo{LaTeX}%
+ 3%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\HoLogoBkm@LaTeX3}
+% \begin{macrocode}
+\expandafter\def\csname HoLogoBkm@LaTeX3\endcsname#1{%
+ \hologo{LaTeX}%
+ 3%
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\HoLogoHtml@LaTeX3}
+% \begin{macrocode}
+\expandafter
+\let\csname HoLogoHtml@LaTeX3\expandafter\endcsname
+\csname HoLogo@LaTeX3\endcsname
+% \end{macrocode}
+% \end{macro}
+%
+% \subsubsection{\hologo{LaTeXML}}
+%
+% \begin{macro}{\HoLogo@LaTeXML}
+% \begin{macrocode}
+\def\HoLogo@LaTeXML#1{%
+ \HOLOGO@mbox{%
+ \hologo{La}%
+ \kern-.15em%
+ T%
+ \kern-.1667em%
+ \lower.5ex\hbox{E}%
+ \kern-.125em%
+ \HoLogoFont@font{LaTeXML}{sc}{xml}%
+ }%
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\HoLogoHtml@pdfLaTeX}
+% \begin{macrocode}
+\def\HoLogoHtml@LaTeXML#1{%
+ \HOLOGO@Span{LaTeXML}{%
+ \HoLogoCss@LaTeX
+ \HoLogoCss@TeX
+ \HOLOGO@Span{LaTeX}{%
+ L%
+ \HOLOGO@Span{a}{%
+ A%
+ }%
+ }%
+ \HOLOGO@Span{TeX}{%
+ T%
+ \HOLOGO@Span{e}{%
+ E%
+ }%
+ }%
+ \HCode{<span style="font-variant: small-caps;">}%
+ xml%
+ \HCode{</span>}%
+ }%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsubsection{\hologo{eTeX}}
+%
+% \begin{macro}{\HoLogo@eTeX}
+% Source: package \xpackage{etex}
+% \begin{macrocode}
+\def\HoLogo@eTeX#1{%
+ \ltx@mbox{%
+ \HOLOGO@MathSetup
+ $\varepsilon$%
+ -%
+ \HOLOGO@NegativeKerning{-T,T-,To}%
+ \hologo{TeX}%
+ }%
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\HoLogoCs@eTeX}
+% \begin{macrocode}
+\ifnum64=`\^^^^0040\relax % test for big chars of LuaTeX/XeTeX
+ \catcode`\$=9 %
+ \catcode`\&=14 %
+\else
+ \catcode`\$=14 %
+ \catcode`\&=9 %
+\fi
+\def\HoLogoCs@eTeX#1{%
+$ #1{\string ^^^^0395}{\string ^^^^03b5}%
+& #1{e}{E}%
+ TeX%
+}%
+\catcode`\$=3 %
+\catcode`\&=4 %
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\HoLogoBkm@eTeX}
+% \begin{macrocode}
+\def\HoLogoBkm@eTeX#1{%
+ \HOLOGO@PdfdocUnicode{#1{e}{E}}{\textepsilon}%
+ -%
+ \hologo{TeX}%
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\HoLogoHtml@eTeX}
+% \begin{macrocode}
+\def\HoLogoHtml@eTeX#1{%
+ \ltx@mbox{%
+ \HOLOGO@MathSetup
+ $\varepsilon$%
+ -%
+ \hologo{TeX}%
+ }%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsubsection{\hologo{iniTeX}}
+%
+% \begin{macro}{\HoLogo@iniTeX}
+% \begin{macrocode}
+\def\HoLogo@iniTeX#1{%
+ \HOLOGO@mbox{%
+ #1{i}{I}ni\hologo{TeX}%
+ }%
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\HoLogoCs@iniTeX}
+% \begin{macrocode}
+\def\HoLogoCs@iniTeX#1{#1{i}{I}niTeX}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\HoLogoBkm@iniTeX}
+% \begin{macrocode}
+\def\HoLogoBkm@iniTeX#1{%
+ #1{i}{I}ni\hologo{TeX}%
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\HoLogoHtml@iniTeX}
+% \begin{macrocode}
+\let\HoLogoHtml@iniTeX\HoLogo@iniTeX
+% \end{macrocode}
+% \end{macro}
+%
+% \subsubsection{\hologo{virTeX}}
+%
+% \begin{macro}{\HoLogo@virTeX}
+% \begin{macrocode}
+\def\HoLogo@virTeX#1{%
+ \HOLOGO@mbox{%
+ #1{v}{V}ir\hologo{TeX}%
+ }%
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\HoLogoCs@virTeX}
+% \begin{macrocode}
+\def\HoLogoCs@virTeX#1{#1{v}{V}irTeX}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\HoLogoBkm@virTeX}
+% \begin{macrocode}
+\def\HoLogoBkm@virTeX#1{%
+ #1{v}{V}ir\hologo{TeX}%
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\HoLogoHtml@virTeX}
+% \begin{macrocode}
+\let\HoLogoHtml@virTeX\HoLogo@virTeX
+% \end{macrocode}
+% \end{macro}
+%
+% \subsubsection{\hologo{SliTeX}}
+%
+% \paragraph{Definitions of the three variants.}
+%
+% \begin{macro}{\HoLogo@SLiTeX@lift}
+% \begin{macrocode}
+\def\HoLogo@SLiTeX@lift#1{%
+ \HoLogoFont@font{SliTeX}{rm}{%
+ S%
+ \kern-.06em%
+ L%
+ \kern-.18em%
+ \raise.32ex\hbox{\HoLogoFont@font{SliTeX}{sc}{i}}%
+ \HOLOGO@discretionary
+ \kern-.06em%
+ \hologo{TeX}%
+ }%
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\HoLogoBkm@SLiTeX@lift}
+% \begin{macrocode}
+\def\HoLogoBkm@SLiTeX@lift#1{SLiTeX}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\HoLogoHtml@SLiTeX@lift}
+% \begin{macrocode}
+\def\HoLogoHtml@SLiTeX@lift#1{%
+ \HoLogoCss@SLiTeX@lift
+ \HOLOGO@Span{SLiTeX-lift}{%
+ \HoLogoFont@font{SliTeX}{rm}{%
+ S%
+ \HOLOGO@Span{L}{L}%
+ \HOLOGO@Span{i}{i}%
+ \hologo{TeX}%
+ }%
+ }%
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\HoLogoCss@SLiTeX@lift}
+% \begin{macrocode}
+\def\HoLogoCss@SLiTeX@lift{%
+ \Css{%
+ span.HoLogo-SLiTeX-lift span.HoLogo-L{%
+ margin-left:-.06em;%
+ margin-right:-.18em;%
+ }%
+ }%
+ \Css{%
+ span.HoLogo-SLiTeX-lift span.HoLogo-i{%
+ position:relative;%
+ top:-.32ex;%
+ margin-right:-.06em;%
+ font-variant:small-caps;%
+ }%
+ }%
+ \global\let\HoLogoCss@SLiTeX@lift\relax
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\HoLogo@SliTeX@simple}
+% \begin{macrocode}
+\def\HoLogo@SliTeX@simple#1{%
+ \HoLogoFont@font{SliTeX}{rm}{%
+ \ltx@mbox{%
+ \HoLogoFont@font{SliTeX}{sc}{Sli}%
+ }%
+ \HOLOGO@discretionary
+ \hologo{TeX}%
+ }%
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\HoLogoBkm@SliTeX@simple}
+% \begin{macrocode}
+\def\HoLogoBkm@SliTeX@simple#1{SliTeX}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\HoLogoHtml@SliTeX@simple}
+% \begin{macrocode}
+\let\HoLogoHtml@SliTeX@simple\HoLogo@SliTeX@simple
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\HoLogo@SliTeX@narrow}
+% \begin{macrocode}
+\def\HoLogo@SliTeX@narrow#1{%
+ \HoLogoFont@font{SliTeX}{rm}{%
+ \ltx@mbox{%
+ S%
+ \kern-.06em%
+ \HoLogoFont@font{SliTeX}{sc}{%
+ l%
+ \kern-.035em%
+ i%
+ }%
+ }%
+ \HOLOGO@discretionary
+ \kern-.06em%
+ \hologo{TeX}%
+ }%
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\HoLogoBkm@SliTeX@narrow}
+% \begin{macrocode}
+\def\HoLogoBkm@SliTeX@narrow#1{SliTeX}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\HoLogoHtml@SliTeX@narrow}
+% \begin{macrocode}
+\def\HoLogoHtml@SliTeX@narrow#1{%
+ \HoLogoCss@SliTeX@narrow
+ \HOLOGO@Span{SliTeX-narrow}{%
+ \HoLogoFont@font{SliTeX}{rm}{%
+ S%
+ \HOLOGO@Span{l}{l}%
+ \HOLOGO@Span{i}{i}%
+ \hologo{TeX}%
+ }%
+ }%
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\HoLogoCss@SliTeX@narrow}
+% \begin{macrocode}
+\def\HoLogoCss@SliTeX@narrow{%
+ \Css{%
+ span.HoLogo-SliTeX-narrow span.HoLogo-l{%
+ margin-left:-.06em;%
+ margin-right:-.035em;%
+ font-variant:small-caps;%
+ }%
+ }%
+ \Css{%
+ span.HoLogo-SliTeX-narrow span.HoLogo-i{%
+ margin-right:-.06em;%
+ font-variant:small-caps;%
+ }%
+ }%
+ \global\let\HoLogoCss@SliTeX@narrow\relax
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \paragraph{Macro set completion.}
+%
+% \begin{macro}{\HoLogo@SLiTeX@simple}
+% \begin{macrocode}
+\def\HoLogo@SLiTeX@simple{\HoLogo@SliTeX@simple}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\HoLogoBkm@SLiTeX@simple}
+% \begin{macrocode}
+\def\HoLogoBkm@SLiTeX@simple{\HoLogoBkm@SliTeX@simple}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\HoLogoHtml@SLiTeX@simple}
+% \begin{macrocode}
+\def\HoLogoHtml@SLiTeX@simple{\HoLogoHtml@SliTeX@simple}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\HoLogo@SLiTeX@narrow}
+% \begin{macrocode}
+\def\HoLogo@SLiTeX@narrow{\HoLogo@SliTeX@narrow}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\HoLogoBkm@SLiTeX@narrow}
+% \begin{macrocode}
+\def\HoLogoBkm@SLiTeX@narrow{\HoLogoBkm@SliTeX@narrow}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\HoLogoHtml@SLiTeX@narrow}
+% \begin{macrocode}
+\def\HoLogoHtml@SLiTeX@narrow{\HoLogoHtml@SliTeX@narrow}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\HoLogo@SliTeX@lift}
+% \begin{macrocode}
+\def\HoLogo@SliTeX@lift{\HoLogo@SLiTeX@lift}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\HoLogoBkm@SliTeX@lift}
+% \begin{macrocode}
+\def\HoLogoBkm@SliTeX@lift{\HoLogoBkm@SLiTeX@lift}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\HoLogoHtml@SliTeX@lift}
+% \begin{macrocode}
+\def\HoLogoHtml@SliTeX@lift{\HoLogoHtml@SLiTeX@lift}
+% \end{macrocode}
+% \end{macro}
+%
+% \paragraph{Defaults.}
+%
+% \begin{macro}{\HoLogo@SLiTeX}
+% \begin{macrocode}
+\def\HoLogo@SLiTeX{\HoLogo@SLiTeX@lift}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\HoLogoBkm@SLiTeX}
+% \begin{macrocode}
+\def\HoLogoBkm@SLiTeX{\HoLogoBkm@SLiTeX@lift}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\HoLogoHtml@SLiTeX}
+% \begin{macrocode}
+\def\HoLogoHtml@SLiTeX{\HoLogoHtml@SLiTeX@lift}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\HoLogo@SliTeX}
+% \begin{macrocode}
+\def\HoLogo@SliTeX{\HoLogo@SliTeX@narrow}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\HoLogoBkm@SliTeX}
+% \begin{macrocode}
+\def\HoLogoBkm@SliTeX{\HoLogoBkm@SliTeX@narrow}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\HoLogoHtml@SliTeX}
+% \begin{macrocode}
+\def\HoLogoHtml@SliTeX{\HoLogoHtml@SliTeX@narrow}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsubsection{\hologo{LuaTeX}}
+%
+% \begin{macro}{\HoLogo@LuaTeX}
+% The kerning is an idea of Hans Hagen, see mailing list
+% `luatex at tug dot org' in March 2010.
+% \begin{macrocode}
+\def\HoLogo@LuaTeX#1{%
+ \HOLOGO@mbox{%
+ Lua%
+ \HOLOGO@NegativeKerning{aT,oT,To}%
+ \hologo{TeX}%
+ }%
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\HoLogoHtml@LuaTeX}
+% \begin{macrocode}
+\let\HoLogoHtml@LuaTeX\HoLogo@LuaTeX
+% \end{macrocode}
+% \end{macro}
+%
+% \subsubsection{\hologo{LuaLaTeX}}
+%
+% \begin{macro}{\HoLogo@LuaLaTeX}
+% \begin{macrocode}
+\def\HoLogo@LuaLaTeX#1{%
+ \HOLOGO@mbox{%
+ Lua%
+ \hologo{LaTeX}%
+ }%
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\HoLogoHtml@LuaLaTeX}
+% \begin{macrocode}
+\let\HoLogoHtml@LuaLaTeX\HoLogo@LuaLaTeX
+% \end{macrocode}
+% \end{macro}
+%
+% \subsubsection{\hologo{XeTeX}, \hologo{XeLaTeX}}
+%
+% \begin{macro}{\HOLOGO@IfCharExists}
+% \begin{macrocode}
+\ifluatex
+ \ifnum\luatexversion<36 %
+ \else
+ \def\HOLOGO@IfCharExists#1{%
+ \ifnum
+ \directlua{%
+ if luaotfload and luaotfload.aux then
+ if luaotfload.aux.font_has_glyph(%
+ font.current(), \number#1) then %
+ tex.print("1") %
+ end %
+ elseif font and font.fonts and font.current then %
+ local f = font.fonts[font.current()]%
+ if f.characters and f.characters[\number#1] then %
+ tex.print("1")%
+ end %
+ end%
+ }0=\ltx@zero
+ \expandafter\ltx@secondoftwo
+ \else
+ \expandafter\ltx@firstoftwo
+ \fi
+ }%
+ \fi
+\fi
+\ltx@IfUndefined{HOLOGO@IfCharExists}{%
+ \def\HOLOGO@@IfCharExists#1{%
+ \begingroup
+ \tracinglostchars=\ltx@zero
+ \setbox\ltx@zero=\hbox{%
+ \kern7sp\char#1\relax
+ \ifnum\lastkern>\ltx@zero
+ \expandafter\aftergroup\csname iffalse\endcsname
+ \else
+ \expandafter\aftergroup\csname iftrue\endcsname
+ \fi
+ }%
+ % \if{true|false} from \aftergroup
+ \endgroup
+ \expandafter\ltx@firstoftwo
+ \else
+ \endgroup
+ \expandafter\ltx@secondoftwo
+ \fi
+ }%
+ \ifxetex
+ \ltx@IfUndefined{XeTeXfonttype}{}{%
+ \ltx@IfUndefined{XeTeXcharglyph}{}{%
+ \def\HOLOGO@IfCharExists#1{%
+ \ifnum\XeTeXfonttype\font>\ltx@zero
+ \expandafter\ltx@firstofthree
+ \else
+ \expandafter\ltx@gobble
+ \fi
+ {%
+ \ifnum\XeTeXcharglyph#1>\ltx@zero
+ \expandafter\ltx@firstoftwo
+ \else
+ \expandafter\ltx@secondoftwo
+ \fi
+ }%
+ \HOLOGO@@IfCharExists{#1}%
+ }%
+ }%
+ }%
+ \fi
+}{}
+\ltx@ifundefined{HOLOGO@IfCharExists}{%
+ \ifnum64=`\^^^^0040\relax % test for big chars of LuaTeX/XeTeX
+ \let\HOLOGO@IfCharExists\HOLOGO@@IfCharExists
+ \else
+ \def\HOLOGO@IfCharExists#1{%
+ \ifnum#1>255 %
+ \expandafter\ltx@fourthoffour
+ \fi
+ \HOLOGO@@IfCharExists{#1}%
+ }%
+ \fi
+}{}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\HoLogo@Xe}
+% Source: package \xpackage{dtklogos}
+% \begin{macrocode}
+\def\HoLogo@Xe#1{%
+ X%
+ \kern-.1em\relax
+ \HOLOGO@IfCharExists{"018E}{%
+ \lower.5ex\hbox{\char"018E}%
+ }{%
+ \chardef\HOLOGO@choice=\ltx@zero
+ \ifdim\fontdimen\ltx@one\font>0pt %
+ \ltx@IfUndefined{rotatebox}{%
+ \ltx@IfUndefined{pgftext}{%
+ \ltx@IfUndefined{psscalebox}{%
+ \ltx@IfUndefined{HOLOGO@ScaleBox@\hologoDriver}{%
+ }{%
+ \chardef\HOLOGO@choice=4 %
+ }%
+ }{%
+ \chardef\HOLOGO@choice=3 %
+ }%
+ }{%
+ \chardef\HOLOGO@choice=2 %
+ }%
+ }{%
+ \chardef\HOLOGO@choice=1 %
+ }%
+ \ifcase\HOLOGO@choice
+ \HOLOGO@WarningUnsupportedDriver{Xe}%
+ e%
+ \or % 1: \rotatebox
+ \begingroup
+ \setbox\ltx@zero\hbox{\rotatebox{180}{E}}%
+ \ltx@LocDimenA=\dp\ltx@zero
+ \advance\ltx@LocDimenA by -.5ex\relax
+ \raise\ltx@LocDimenA\box\ltx@zero
+ \endgroup
+ \or % 2: \pgftext
+ \lower.5ex\hbox{%
+ \pgfpicture
+ \pgftext[rotate=180]{E}%
+ \endpgfpicture
+ }%
+ \or % 3: \psscalebox
+ \begingroup
+ \setbox\ltx@zero\hbox{\psscalebox{-1 -1}{E}}%
+ \ltx@LocDimenA=\dp\ltx@zero
+ \advance\ltx@LocDimenA by -.5ex\relax
+ \raise\ltx@LocDimenA\box\ltx@zero
+ \endgroup
+ \or % 4: \HOLOGO@PointReflectBox
+ \lower.5ex\hbox{\HOLOGO@PointReflectBox{E}}%
+ \else
+ \@PackageError{hologo}{Internal error (choice/it}\@ehc
+ \fi
+ \else
+ \ltx@IfUndefined{reflectbox}{%
+ \ltx@IfUndefined{pgftext}{%
+ \ltx@IfUndefined{psscalebox}{%
+ \ltx@IfUndefined{HOLOGO@ScaleBox@\hologoDriver}{%
+ }{%
+ \chardef\HOLOGO@choice=4 %
+ }%
+ }{%
+ \chardef\HOLOGO@choice=3 %
+ }%
+ }{%
+ \chardef\HOLOGO@choice=2 %
+ }%
+ }{%
+ \chardef\HOLOGO@choice=1 %
+ }%
+ \ifcase\HOLOGO@choice
+ \HOLOGO@WarningUnsupportedDriver{Xe}%
+ e%
+ \or % 1: reflectbox
+ \lower.5ex\hbox{%
+ \reflectbox{E}%
+ }%
+ \or % 2: \pgftext
+ \lower.5ex\hbox{%
+ \pgfpicture
+ \pgftransformxscale{-1}%
+ \pgftext{E}%
+ \endpgfpicture
+ }%
+ \or % 3: \psscalebox
+ \lower.5ex\hbox{%
+ \psscalebox{-1 1}{E}%
+ }%
+ \or % 4: \HOLOGO@Reflectbox
+ \lower.5ex\hbox{%
+ \HOLOGO@ReflectBox{E}%
+ }%
+ \else
+ \@PackageError{hologo}{Internal error (choice/up)}\@ehc
+ \fi
+ \fi
+ }%
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\HoLogoHtml@Xe}
+% \begin{macrocode}
+\def\HoLogoHtml@Xe#1{%
+ \HoLogoCss@Xe
+ \HOLOGO@Span{Xe}{%
+ X%
+ \HOLOGO@Span{e}{%
+ \HCode{&\ltx@hashchar x018e;}%
+ }%
+ }%
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\HoLogoCss@Xe}
+% \begin{macrocode}
+\def\HoLogoCss@Xe{%
+ \Css{%
+ span.HoLogo-Xe span.HoLogo-e{%
+ position:relative;%
+ top:.5ex;%
+ left-margin:-.1em;%
+ }%
+ }%
+ \global\let\HoLogoCss@Xe\relax
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\HoLogo@XeTeX}
+% \begin{macrocode}
+\def\HoLogo@XeTeX#1{%
+ \hologo{Xe}%
+ \kern-.15em\relax
+ \hologo{TeX}%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\HoLogoHtml@XeTeX}
+% \begin{macrocode}
+\def\HoLogoHtml@XeTeX#1{%
+ \HoLogoCss@XeTeX
+ \HOLOGO@Span{XeTeX}{%
+ \hologo{Xe}%
+ \hologo{TeX}%
+ }%
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\HoLogoCss@XeTeX}
+% \begin{macrocode}
+\def\HoLogoCss@XeTeX{%
+ \Css{%
+ span.HoLogo-XeTeX span.HoLogo-TeX{%
+ margin-left:-.15em;%
+ }%
+ }%
+ \global\let\HoLogoCss@XeTeX\relax
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\HoLogo@XeLaTeX}
+% \begin{macrocode}
+\def\HoLogo@XeLaTeX#1{%
+ \hologo{Xe}%
+ \kern-.13em%
+ \hologo{LaTeX}%
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\HoLogoHtml@XeLaTeX}
+% \begin{macrocode}
+\def\HoLogoHtml@XeLaTeX#1{%
+ \HoLogoCss@XeLaTeX
+ \HOLOGO@Span{XeLaTeX}{%
+ \hologo{Xe}%
+ \hologo{LaTeX}%
+ }%
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\HoLogoCss@XeLaTeX}
+% \begin{macrocode}
+\def\HoLogoCss@XeLaTeX{%
+ \Css{%
+ span.HoLogo-XeLaTeX span.HoLogo-Xe{%
+ margin-right:-.13em;%
+ }%
+ }%
+ \global\let\HoLogoCss@XeLaTeX\relax
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsubsection{\hologo{pdfTeX}, \hologo{pdfLaTeX}}
+%
+% \begin{macro}{\HoLogo@pdfTeX}
+% \begin{macrocode}
+\def\HoLogo@pdfTeX#1{%
+ \HOLOGO@mbox{%
+ #1{p}{P}df\hologo{TeX}%
+ }%
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\HoLogoCs@pdfTeX}
+% \begin{macrocode}
+\def\HoLogoCs@pdfTeX#1{#1{p}{P}dfTeX}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\HoLogoBkm@pdfTeX}
+% \begin{macrocode}
+\def\HoLogoBkm@pdfTeX#1{%
+ #1{p}{P}df\hologo{TeX}%
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\HoLogoHtml@pdfTeX}
+% \begin{macrocode}
+\let\HoLogoHtml@pdfTeX\HoLogo@pdfTeX
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\HoLogo@pdfLaTeX}
+% \begin{macrocode}
+\def\HoLogo@pdfLaTeX#1{%
+ \HOLOGO@mbox{%
+ #1{p}{P}df\hologo{LaTeX}%
+ }%
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\HoLogoCs@pdfLaTeX}
+% \begin{macrocode}
+\def\HoLogoCs@pdfLaTeX#1{#1{p}{P}dfLaTeX}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\HoLogoBkm@pdfLaTeX}
+% \begin{macrocode}
+\def\HoLogoBkm@pdfLaTeX#1{%
+ #1{p}{P}df\hologo{LaTeX}%
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\HoLogoHtml@pdfLaTeX}
+% \begin{macrocode}
+\let\HoLogoHtml@pdfLaTeX\HoLogo@pdfLaTeX
+% \end{macrocode}
+% \end{macro}
+%
+% \subsubsection{\hologo{VTeX}}
+%
+% \begin{macro}{\HoLogo@VTeX}
+% \begin{macrocode}
+\def\HoLogo@VTeX#1{%
+ \HOLOGO@mbox{%
+ V\hologo{TeX}%
+ }%
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\HoLogoHtml@VTeX}
+% \begin{macrocode}
+\let\HoLogoHtml@VTeX\HoLogo@VTeX
+% \end{macrocode}
+% \end{macro}
+%
+% \subsubsection{\hologo{AmS}, \dots}
+%
+% Source: class \xclass{amsdtx}
+%
+% \begin{macro}{\HoLogo@AmS}
+% \begin{macrocode}
+\def\HoLogo@AmS#1{%
+ \HoLogoFont@font{AmS}{sy}{%
+ A%
+ \kern-.1667em%
+ \lower.5ex\hbox{M}%
+ \kern-.125em%
+ S%
+ }%
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\HoLogoBkm@AmS}
+% \begin{macrocode}
+\def\HoLogoBkm@AmS#1{AmS}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\HoLogoHtml@AmS}
+% \begin{macrocode}
+\def\HoLogoHtml@AmS#1{%
+ \HoLogoCss@AmS
+% \HoLogoFont@font{AmS}{sy}{%
+ \HOLOGO@Span{AmS}{%
+ A%
+ \HOLOGO@Span{M}{M}%
+ S%
+ }%
+% }%
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\HoLogoCss@AmS}
+% \begin{macrocode}
+\def\HoLogoCss@AmS{%
+ \Css{%
+ span.HoLogo-AmS span.HoLogo-M{%
+ position:relative;%
+ top:.5ex;%
+ margin-left:-.1667em;%
+ margin-right:-.125em;%
+ text-decoration:none;%
+ }%
+ }%
+ \global\let\HoLogoCss@AmS\relax
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\HoLogo@AmSTeX}
+% \begin{macrocode}
+\def\HoLogo@AmSTeX#1{%
+ \hologo{AmS}%
+ \HOLOGO@hyphen
+ \hologo{TeX}%
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\HoLogoBkm@AmSTeX}
+% \begin{macrocode}
+\def\HoLogoBkm@AmSTeX#1{AmS-TeX}%
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\HoLogoHtml@AmSTeX}
+% \begin{macrocode}
+\let\HoLogoHtml@AmSTeX\HoLogo@AmSTeX
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\HoLogo@AmSLaTeX}
+% \begin{macrocode}
+\def\HoLogo@AmSLaTeX#1{%
+ \hologo{AmS}%
+ \HOLOGO@hyphen
+ \hologo{LaTeX}%
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\HoLogoBkm@AmSLaTeX}
+% \begin{macrocode}
+\def\HoLogoBkm@AmSLaTeX#1{AmS-LaTeX}%
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\HoLogoHtml@AmSLaTeX}
+% \begin{macrocode}
+\let\HoLogoHtml@AmSLaTeX\HoLogo@AmSLaTeX
+% \end{macrocode}
+% \end{macro}
+%
+% \subsubsection{\hologo{BibTeX}}
+%
+% \begin{macro}{\HoLogo@BibTeX@sc}
+% A definition of \hologo{BibTeX} is provided in
+% the documentation source for the manual of \hologo{BibTeX}
+% \cite{btxdoc}.
+%\begin{quote}
+%\begin{verbatim}
+%\def\BibTeX{%
+% {%
+% \rm
+% B%
+% \kern-.05em%
+% {%
+% \sc
+% i%
+% \kern-.025em %
+% b%
+% }%
+% \kern-.08em
+% T%
+% \kern-.1667em%
+% \lower.7ex\hbox{E}%
+% \kern-.125em%
+% X%
+% }%
+%}
+%\end{verbatim}
+%\end{quote}
+% \begin{macrocode}
+\def\HoLogo@BibTeX@sc#1{%
+ B%
+ \kern-.05em%
+ \HoLogoFont@font{BibTeX}{sc}{%
+ i%
+ \kern-.025em%
+ b%
+ }%
+ \HOLOGO@discretionary
+ \kern-.08em%
+ \hologo{TeX}%
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\HoLogoHtml@BibTeX@sc}
+% \begin{macrocode}
+\def\HoLogoHtml@BibTeX@sc#1{%
+ \HoLogoCss@BibTeX@sc
+ \HOLOGO@Span{BibTeX-sc}{%
+ B%
+ \HOLOGO@Span{i}{i}%
+ \HOLOGO@Span{b}{b}%
+ \hologo{TeX}%
+ }%
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\HoLogoCss@BibTeX@sc}
+% \begin{macrocode}
+\def\HoLogoCss@BibTeX@sc{%
+ \Css{%
+ span.HoLogo-BibTeX-sc span.HoLogo-i{%
+ margin-left:-.05em;%
+ margin-right:-.025em;%
+ font-variant:small-caps;%
+ }%
+ }%
+ \Css{%
+ span.HoLogo-BibTeX-sc span.HoLogo-b{%
+ margin-right:-.08em;%
+ font-variant:small-caps;%
+ }%
+ }%
+ \global\let\HoLogoCss@BibTeX@sc\relax
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\HoLogo@BibTeX@sf}
+% Variant \xoption{sf} avoids trouble with unavailable
+% small caps fonts (e.g., bold versions of Computer Modern or
+% Latin Modern). The definition is taken from
+% package \xpackage{dtklogos} \cite{dtklogos}.
+%\begin{quote}
+%\begin{verbatim}
+%\DeclareRobustCommand{\BibTeX}{%
+% B%
+% \kern-.05em%
+% \hbox{%
+% $\m@th$% %% force math size calculations
+% \csname S@\f@size\endcsname
+% \fontsize\sf@size\z@
+% \math@fontsfalse
+% \selectfont
+% I%
+% \kern-.025em%
+% B
+% }%
+% \kern-.08em%
+% \-%
+% \TeX
+%}
+%\end{verbatim}
+%\end{quote}
+% \begin{macrocode}
+\def\HoLogo@BibTeX@sf#1{%
+ B%
+ \kern-.05em%
+ \HoLogoFont@font{BibTeX}{bibsf}{%
+ I%
+ \kern-.025em%
+ B%
+ }%
+ \HOLOGO@discretionary
+ \kern-.08em%
+ \hologo{TeX}%
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\HoLogoHtml@BibTeX@sf}
+% \begin{macrocode}
+\def\HoLogoHtml@BibTeX@sf#1{%
+ \HoLogoCss@BibTeX@sf
+ \HOLOGO@Span{BibTeX-sf}{%
+ B%
+ \HoLogoFont@font{BibTeX}{bibsf}{%
+ \HOLOGO@Span{i}{I}%
+ B%
+ }%
+ \hologo{TeX}%
+ }%
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\HoLogoCss@BibTeX@sf}
+% \begin{macrocode}
+\def\HoLogoCss@BibTeX@sf{%
+ \Css{%
+ span.HoLogo-BibTeX-sf span.HoLogo-i{%
+ margin-left:-.05em;%
+ margin-right:-.025em;%
+ }%
+ }%
+ \Css{%
+ span.HoLogo-BibTeX-sf span.HoLogo-TeX{%
+ margin-left:-.08em;%
+ }%
+ }%
+ \global\let\HoLogoCss@BibTeX@sf\relax
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\HoLogo@BibTeX}
+% \begin{macrocode}
+\def\HoLogo@BibTeX{\HoLogo@BibTeX@sf}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\HoLogoHtml@BibTeX}
+% \begin{macrocode}
+\def\HoLogoHtml@BibTeX{\HoLogoHtml@BibTeX@sf}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsubsection{\hologo{BibTeX8}}
+%
+% \begin{macro}{\HoLogo@BibTeX8}
+% \begin{macrocode}
+\expandafter\def\csname HoLogo@BibTeX8\endcsname#1{%
+ \hologo{BibTeX}%
+ 8%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\HoLogoBkm@BibTeX8}
+% \begin{macrocode}
+\expandafter\def\csname HoLogoBkm@BibTeX8\endcsname#1{%
+ \hologo{BibTeX}%
+ 8%
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\HoLogoHtml@BibTeX8}
+% \begin{macrocode}
+\expandafter
+\let\csname HoLogoHtml@BibTeX8\expandafter\endcsname
+\csname HoLogo@BibTeX8\endcsname
+% \end{macrocode}
+% \end{macro}
+%
+% \subsubsection{\hologo{ConTeXt}}
+%
+% \begin{macro}{\HoLogo@ConTeXt@simple}
+% \begin{macrocode}
+\def\HoLogo@ConTeXt@simple#1{%
+ \HOLOGO@mbox{Con}%
+ \HOLOGO@discretionary
+ \HOLOGO@mbox{\hologo{TeX}t}%
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\HoLogoHtml@ConTeXt@simple}
+% \begin{macrocode}
+\let\HoLogoHtml@ConTeXt@simple\HoLogo@ConTeXt@simple
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\HoLogo@ConTeXt@narrow}
+% This definition of logo \hologo{ConTeXt} with variant \xoption{narrow}
+% comes from TUGboat's class \xclass{ltugboat} (version 2010/11/15 v2.8).
+% \begin{macrocode}
+\def\HoLogo@ConTeXt@narrow#1{%
+ \HOLOGO@mbox{C\kern-.0333emon}%
+ \HOLOGO@discretionary
+ \kern-.0667em%
+ \HOLOGO@mbox{\hologo{TeX}\kern-.0333emt}%
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\HoLogoHtml@ConTeXt@narrow}
+% \begin{macrocode}
+\def\HoLogoHtml@ConTeXt@narrow#1{%
+ \HoLogoCss@ConTeXt@narrow
+ \HOLOGO@Span{ConTeXt-narrow}{%
+ \HOLOGO@Span{C}{C}%
+ on%
+ \hologo{TeX}%
+ t%
+ }%
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\HoLogoCss@ConTeXt@narrow}
+% \begin{macrocode}
+\def\HoLogoCss@ConTeXt@narrow{%
+ \Css{%
+ span.HoLogo-ConTeXt-narrow span.HoLogo-C{%
+ margin-left:-.0333em;%
+ }%
+ }%
+ \Css{%
+ span.HoLogo-ConTeXt-narrow span.HoLogo-TeX{%
+ margin-left:-.0667em;%
+ margin-right:-.0333em;%
+ }%
+ }%
+ \global\let\HoLogoCss@ConTeXt@narrow\relax
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\HoLogo@ConTeXt}
+% \begin{macrocode}
+\def\HoLogo@ConTeXt{\HoLogo@ConTeXt@narrow}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\HoLogoHtml@ConTeXt}
+% \begin{macrocode}
+\def\HoLogoHtml@ConTeXt{\HoLogoHtml@ConTeXt@narrow}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsubsection{\hologo{emTeX}}
+%
+% \begin{macro}{\HoLogo@emTeX}
+% \begin{macrocode}
+\def\HoLogo@emTeX#1{%
+ \HOLOGO@mbox{#1{e}{E}m}%
+ \HOLOGO@discretionary
+ \hologo{TeX}%
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\HoLogoCs@emTeX}
+% \begin{macrocode}
+\def\HoLogoCs@emTeX#1{#1{e}{E}mTeX}%
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\HoLogoBkm@emTeX}
+% \begin{macrocode}
+\def\HoLogoBkm@emTeX#1{%
+ #1{e}{E}m\hologo{TeX}%
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\HoLogoHtml@emTeX}
+% \begin{macrocode}
+\let\HoLogoHtml@emTeX\HoLogo@emTeX
+% \end{macrocode}
+% \end{macro}
+%
+% \subsubsection{\hologo{ExTeX}}
+%
+% \begin{macro}{\HoLogo@ExTeX}
+% The definition is taken from the FAQ of the
+% project \hologo{ExTeX}
+% \cite{ExTeX-FAQ}.
+%\begin{quote}
+%\begin{verbatim}
+%\def\ExTeX{%
+% \textrm{% Logo always with serifs
+% \ensuremath{%
+% \textstyle
+% \varepsilon_{%
+% \kern-0.15em%
+% \mathcal{X}%
+% }%
+% }%
+% \kern-.15em%
+% \TeX
+% }%
+%}
+%\end{verbatim}
+%\end{quote}
+% \begin{macrocode}
+\def\HoLogo@ExTeX#1{%
+ \HoLogoFont@font{ExTeX}{rm}{%
+ \ltx@mbox{%
+ \HOLOGO@MathSetup
+ $%
+ \textstyle
+ \varepsilon_{%
+ \kern-0.15em%
+ \HoLogoFont@font{ExTeX}{sy}{X}%
+ }%
+ $%
+ }%
+ \HOLOGO@discretionary
+ \kern-.15em%
+ \hologo{TeX}%
+ }%
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\HoLogoHtml@ExTeX}
+% \begin{macrocode}
+\def\HoLogoHtml@ExTeX#1{%
+ \HoLogoCss@ExTeX
+ \HoLogoFont@font{ExTeX}{rm}{%
+ \HOLOGO@Span{ExTeX}{%
+ \ltx@mbox{%
+ \HOLOGO@MathSetup
+ $\textstyle\varepsilon$%
+ \HOLOGO@Span{X}{$\textstyle\chi$}%
+ \hologo{TeX}%
+ }%
+ }%
+ }%
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\HoLogoBkm@ExTeX}
+% \begin{macrocode}
+\def\HoLogoBkm@ExTeX#1{%
+ \HOLOGO@PdfdocUnicode{#1{e}{E}x}{\textepsilon\textchi}%
+ \hologo{TeX}%
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\HoLogoCss@ExTeX}
+% \begin{macrocode}
+\def\HoLogoCss@ExTeX{%
+ \Css{%
+ span.HoLogo-ExTeX{%
+ font-family:serif;%
+ }%
+ }%
+ \Css{%
+ span.HoLogo-ExTeX span.HoLogo-TeX{%
+ margin-left:-.15em;%
+ }%
+ }%
+ \global\let\HoLogoCss@ExTeX\relax
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsubsection{\hologo{MiKTeX}}
+%
+% \begin{macro}{\HoLogo@MiKTeX}
+% \begin{macrocode}
+\def\HoLogo@MiKTeX#1{%
+ \HOLOGO@mbox{MiK}%
+ \HOLOGO@discretionary
+ \hologo{TeX}%
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\HoLogoHtml@MiKTeX}
+% \begin{macrocode}
+\let\HoLogoHtml@MiKTeX\HoLogo@MiKTeX
+% \end{macrocode}
+% \end{macro}
+%
+% \subsubsection{\hologo{OzTeX} and friends}
+%
+% Source: \hologo{OzTeX} FAQ \cite{OzTeX}:
+% \begin{quote}
+% |\def\OzTeX{O\kern-.03em z\kern-.15em\TeX}|\\
+% (There is no kerning in OzMF, OzMP and OzTtH.)
+% \end{quote}
+%
+% \begin{macro}{\HoLogo@OzTeX}
+% \begin{macrocode}
+\def\HoLogo@OzTeX#1{%
+ O%
+ \kern-.03em %
+ z%
+ \kern-.15em %
+ \hologo{TeX}%
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\HoLogoHtml@OzTeX}
+% \begin{macrocode}
+\def\HoLogoHtml@OzTeX#1{%
+ \HoLogoCss@OzTeX
+ \HOLOGO@Span{OzTeX}{%
+ O%
+ \HOLOGO@Span{z}{z}%
+ \hologo{TeX}%
+ }%
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\HoLogoCss@OzTeX}
+% \begin{macrocode}
+\def\HoLogoCss@OzTeX{%
+ \Css{%
+ span.HoLogo-OzTeX span.HoLogo-z{%
+ margin-left:-.03em;%
+ margin-right:-.15em;%
+ }%
+ }%
+ \global\let\HoLogoCss@OzTeX\relax
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\HoLogo@OzMF}
+% \begin{macrocode}
+\def\HoLogo@OzMF#1{%
+ \HOLOGO@mbox{OzMF}%
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\HoLogo@OzMP}
+% \begin{macrocode}
+\def\HoLogo@OzMP#1{%
+ \HOLOGO@mbox{OzMP}%
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\HoLogo@OzTtH}
+% \begin{macrocode}
+\def\HoLogo@OzTtH#1{%
+ \HOLOGO@mbox{OzTtH}%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsubsection{\hologo{PCTeX}}
+%
+% \begin{macro}{\HoLogo@PCTeX}
+% \begin{macrocode}
+\def\HoLogo@PCTeX#1{%
+ \HOLOGO@mbox{PC}%
+ \hologo{TeX}%
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\HoLogoHtml@PCTeX}
+% \begin{macrocode}
+\let\HoLogoHtml@PCTeX\HoLogo@PCTeX
+% \end{macrocode}
+% \end{macro}
+%
+% \subsubsection{\hologo{PiCTeX}}
+%
+% The original definitions from \xfile{pictex.tex} \cite{PiCTeX}:
+%\begin{quote}
+%\begin{verbatim}
+%\def\PiC{%
+% P%
+% \kern-.12em%
+% \lower.5ex\hbox{I}%
+% \kern-.075em%
+% C%
+%}
+%\def\PiCTeX{%
+% \PiC
+% \kern-.11em%
+% \TeX
+%}
+%\end{verbatim}
+%\end{quote}
+%
+% \begin{macro}{\HoLogo@PiC}
+% \begin{macrocode}
+\def\HoLogo@PiC#1{%
+ P%
+ \kern-.12em%
+ \lower.5ex\hbox{I}%
+ \kern-.075em%
+ C%
+ \HOLOGO@SpaceFactor
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\HoLogoHtml@PiC}
+% \begin{macrocode}
+\def\HoLogoHtml@PiC#1{%
+ \HoLogoCss@PiC
+ \HOLOGO@Span{PiC}{%
+ P%
+ \HOLOGO@Span{i}{I}%
+ C%
+ }%
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\HoLogoCss@PiC}
+% \begin{macrocode}
+\def\HoLogoCss@PiC{%
+ \Css{%
+ span.HoLogo-PiC span.HoLogo-i{%
+ position:relative;%
+ top:.5ex;%
+ margin-left:-.12em;%
+ margin-right:-.075em;%
+ text-decoration:none;%
+ }%
+ }%
+ \global\let\HoLogoCss@PiC\relax
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\HoLogo@PiCTeX}
+% \begin{macrocode}
+\def\HoLogo@PiCTeX#1{%
+ \hologo{PiC}%
+ \HOLOGO@discretionary
+ \kern-.11em%
+ \hologo{TeX}%
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\HoLogoHtml@PiCTeX}
+% \begin{macrocode}
+\def\HoLogoHtml@PiCTeX#1{%
+ \HoLogoCss@PiCTeX
+ \HOLOGO@Span{PiCTeX}{%
+ \hologo{PiC}%
+ \hologo{TeX}%
+ }%
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\HoLogoCss@PiCTeX}
+% \begin{macrocode}
+\def\HoLogoCss@PiCTeX{%
+ \Css{%
+ span.HoLogo-PiCTeX span.HoLogo-PiC{%
+ margin-right:-.11em;%
+ }%
+ }%
+ \global\let\HoLogoCss@PiCTeX\relax
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsubsection{\hologo{teTeX}}
+%
+% \begin{macro}{\HoLogo@teTeX}
+% \begin{macrocode}
+\def\HoLogo@teTeX#1{%
+ \HOLOGO@mbox{#1{t}{T}e}%
+ \HOLOGO@discretionary
+ \hologo{TeX}%
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\HoLogoCs@teTeX}
+% \begin{macrocode}
+\def\HoLogoCs@teTeX#1{#1{t}{T}dfTeX}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\HoLogoBkm@teTeX}
+% \begin{macrocode}
+\def\HoLogoBkm@teTeX#1{%
+ #1{t}{T}e\hologo{TeX}%
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\HoLogoHtml@teTeX}
+% \begin{macrocode}
+\let\HoLogoHtml@teTeX\HoLogo@teTeX
+% \end{macrocode}
+% \end{macro}
+%
+% \subsubsection{\hologo{TeX4ht}}
+%
+% \begin{macro}{\HoLogo@TeX4ht}
+% \begin{macrocode}
+\expandafter\def\csname HoLogo@TeX4ht\endcsname#1{%
+ \HOLOGO@mbox{\hologo{TeX}4ht}%
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\HoLogoHtml@TeX4ht}
+% \begin{macrocode}
+\expandafter
+\let\csname HoLogoHtml@TeX4ht\expandafter\endcsname
+\csname HoLogo@TeX4ht\endcsname
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \subsubsection{\hologo{SageTeX}}
+%
+% \begin{macro}{\HoLogo@SageTeX}
+% \begin{macrocode}
+\def\HoLogo@SageTeX#1{%
+ \HOLOGO@mbox{Sage}%
+ \HOLOGO@discretionary
+ \HOLOGO@NegativeKerning{eT,oT,To}%
+ \hologo{TeX}%
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\HoLogoHtml@SageTeX}
+% \begin{macrocode}
+\let\HoLogoHtml@SageTeX\HoLogo@SageTeX
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{\hologo{METAFONT} and friends}
+%
+% \begin{macro}{\HoLogo@METAFONT}
+% \begin{macrocode}
+\def\HoLogo@METAFONT#1{%
+ \HoLogoFont@font{METAFONT}{logo}{%
+ \HOLOGO@mbox{META}%
+ \HOLOGO@discretionary
+ \HOLOGO@mbox{FONT}%
+ }%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\HoLogo@METAPOST}
+% \begin{macrocode}
+\def\HoLogo@METAPOST#1{%
+ \HoLogoFont@font{METAPOST}{logo}{%
+ \HOLOGO@mbox{META}%
+ \HOLOGO@discretionary
+ \HOLOGO@mbox{POST}%
+ }%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\HoLogo@MetaFun}
+% \begin{macrocode}
+\def\HoLogo@MetaFun#1{%
+ \HOLOGO@mbox{Meta}%
+ \HOLOGO@discretionary
+ \HOLOGO@mbox{Fun}%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\HoLogo@MetaPost}
+% \begin{macrocode}
+\def\HoLogo@MetaPost#1{%
+ \HOLOGO@mbox{Meta}%
+ \HOLOGO@discretionary
+ \HOLOGO@mbox{Post}%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Others}
+%
+% \subsubsection{\hologo{biber}}
+%
+% \begin{macro}{\HoLogo@biber}
+% \begin{macrocode}
+\def\HoLogo@biber#1{%
+ \HOLOGO@mbox{#1{b}{B}i}%
+ \HOLOGO@discretionary
+ \HOLOGO@mbox{ber}%
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\HoLogoCs@biber}
+% \begin{macrocode}
+\def\HoLogoCs@biber#1{#1{b}{B}iber}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\HoLogoBkm@biber}
+% \begin{macrocode}
+\def\HoLogoBkm@biber#1{%
+ #1{b}{B}iber%
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\HoLogoHtml@biber}
+% \begin{macrocode}
+\let\HoLogoHtml@biber\HoLogo@biber
+% \end{macrocode}
+% \end{macro}
+%
+% \subsubsection{\hologo{KOMAScript}}
+%
+% \begin{macro}{\HoLogo@KOMAScript}
+% The definition for \hologo{KOMAScript} is taken
+% from \hologo{KOMAScript} (\xfile{scrlogo.dtx}, reformatted) \cite{scrlogo}:
+%\begin{quote}
+%\begin{verbatim}
+%\@ifundefined{KOMAScript}{%
+% \DeclareRobustCommand{\KOMAScript}{%
+% \textsf{%
+% K\kern.05em O\kern.05emM\kern.05em A%
+% \kern.1em-\kern.1em %
+% Script%
+% }%
+% }%
+%}{}
+%\end{verbatim}
+%\end{quote}
+% \begin{macrocode}
+\def\HoLogo@KOMAScript#1{%
+ \HoLogoFont@font{KOMAScript}{sf}{%
+ \HOLOGO@mbox{%
+ K\kern.05em%
+ O\kern.05em%
+ M\kern.05em%
+ A%
+ }%
+ \kern.1em%
+ \HOLOGO@hyphen
+ \kern.1em%
+ \HOLOGO@mbox{Script}%
+ }%
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\HoLogoBkm@KOMAScript}
+% \begin{macrocode}
+\def\HoLogoBkm@KOMAScript#1{%
+ KOMA-Script%
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\HoLogoHtml@KOMAScript}
+% \begin{macrocode}
+\def\HoLogoHtml@KOMAScript#1{%
+ \HoLogoCss@KOMAScript
+ \HoLogoFont@font{KOMAScript}{sf}{%
+ \HOLOGO@Span{KOMAScript}{%
+ K%
+ \HOLOGO@Span{O}{O}%
+ M%
+ \HOLOGO@Span{A}{A}%
+ \HOLOGO@Span{hyphen}{-}%
+ Script%
+ }%
+ }%
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\HoLogoCss@KOMAScript}
+% \begin{macrocode}
+\def\HoLogoCss@KOMAScript{%
+ \Css{%
+ span.HoLogo-KOMAScript{%
+ font-family:sans-serif;%
+ }%
+ }%
+ \Css{%
+ span.HoLogo-KOMAScript span.HoLogo-O{%
+ padding-left:.05em;%
+ padding-right:.05em;%
+ }%
+ }%
+ \Css{%
+ span.HoLogo-KOMAScript span.HoLogo-A{%
+ padding-left:.05em;%
+ }%
+ }%
+ \Css{%
+ span.HoLogo-KOMAScript span.HoLogo-hyphen{%
+ padding-left:.1em;%
+ padding-right:.1em;%
+ }%
+ }%
+ \global\let\HoLogoCss@KOMAScript\relax
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsubsection{\hologo{LyX}}
+%
+% \begin{macro}{\HoLogo@LyX}
+% The definition is taken from the documentation source files
+% of \hologo{LyX}, \xfile{Intro.lyx} \cite{LyX}:
+%\begin{quote}
+%\begin{verbatim}
+%\def\LyX{%
+% \texorpdfstring{%
+% L\kern-.1667em\lower.25em\hbox{Y}\kern-.125emX\@%
+% }{%
+% LyX%
+% }%
+%}
+%\end{verbatim}
+%\end{quote}
+% \begin{macrocode}
+\def\HoLogo@LyX#1{%
+ L%
+ \kern-.1667em%
+ \lower.25em\hbox{Y}%
+ \kern-.125em%
+ X%
+ \HOLOGO@SpaceFactor
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\HoLogoHtml@LyX}
+% \begin{macrocode}
+\def\HoLogoHtml@LyX#1{%
+ \HoLogoCss@LyX
+ \HOLOGO@Span{LyX}{%
+ L%
+ \HOLOGO@Span{y}{Y}%
+ X%
+ }%
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\HoLogoCss@LyX}
+% \begin{macrocode}
+\def\HoLogoCss@LyX{%
+ \Css{%
+ span.HoLogo-LyX span.HoLogo-y{%
+ position:relative;%
+ top:.25em;%
+ margin-left:-.1667em;%
+ margin-right:-.125em;%
+ text-decoration:none;%
+ }%
+ }%
+ \global\let\HoLogoCss@LyX\relax
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsubsection{\hologo{NTS}}
+%
+% \begin{macro}{\HoLogo@NTS}
+% Definition for \hologo{NTS} can be found in
+% package \xpackage{etex\textunderscore man} for the \hologo{eTeX} manual \cite{etexman}
+% and in package \xpackage{dtklogos} \cite{dtklogos}:
+%\begin{quote}
+%\begin{verbatim}
+%\def\NTS{%
+% \leavevmode
+% \hbox{%
+% $%
+% \cal N%
+% \kern-0.35em%
+% \lower0.5ex\hbox{$\cal T$}%
+% \kern-0.2em%
+% S%
+% $%
+% }%
+%}
+%\end{verbatim}
+%\end{quote}
+% \begin{macrocode}
+\def\HoLogo@NTS#1{%
+ \HoLogoFont@font{NTS}{sy}{%
+ N\/%
+ \kern-.35em%
+ \lower.5ex\hbox{T\/}%
+ \kern-.2em%
+ S\/%
+ }%
+ \HOLOGO@SpaceFactor
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsubsection{\Hologo{TTH} (\hologo{TeX} to HTML translator)}
+%
+% Source: \url{http://hutchinson.belmont.ma.us/tth/}
+% In the HTML source the second `T' is printed as subscript.
+%\begin{quote}
+%\begin{verbatim}
+%T<sub>T</sub>H
+%\end{verbatim}
+%\end{quote}
+% \begin{macro}{\HoLogo@TTH}
+% \begin{macrocode}
+\def\HoLogo@TTH#1{%
+ \ltx@mbox{%
+ T\HOLOGO@SubScript{T}H%
+ }%
+ \HOLOGO@SpaceFactor
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\HoLogoHtml@TTH}
+% \begin{macrocode}
+\def\HoLogoHtml@TTH#1{%
+ T\HCode{<sub>}T\HCode{</sub>}H%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsubsection{\Hologo{HanTheThanh}}
+%
+% Partial source: Package \xpackage{dtklogos}.
+% The double accent is U+1EBF (latin small letter e with circumflex
+% and acute).
+% \begin{macro}{\HoLogo@HanTheThanh}
+% \begin{macrocode}
+\def\HoLogo@HanTheThanh#1{%
+ \ltx@mbox{H\`an}%
+ \HOLOGO@space
+ \ltx@mbox{%
+ Th%
+ \HOLOGO@IfCharExists{"1EBF}{%
+ \char"1EBF\relax
+ }{%
+ \^e\hbox to 0pt{\hss\raise .5ex\hbox{\'{}}}%
+ }%
+ }%
+ \HOLOGO@space
+ \ltx@mbox{Th\`anh}%
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\HoLogoBkm@HanTheThanh}
+% \begin{macrocode}
+\def\HoLogoBkm@HanTheThanh#1{%
+ H\`an %
+ Th\HOLOGO@PdfdocUnicode{\^e}{\9036\277} %
+ Th\`anh%
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\HoLogoHtml@HanTheThanh}
+% \begin{macrocode}
+\def\HoLogoHtml@HanTheThanh#1{%
+ H\`an %
+ Th\HCode{&\ltx@hashchar x1ebf;} %
+ Th\`anh%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Driver detection}
+%
+% \begin{macrocode}
+\HOLOGO@IfExists\InputIfFileExists{%
+ \InputIfFileExists{hologo.cfg}{}{}%
+}{%
+ \ltx@IfUndefined{pdf@filesize}{%
+ \def\HOLOGO@InputIfExists{%
+ \openin\HOLOGO@temp=hologo.cfg\relax
+ \ifeof\HOLOGO@temp
+ \closein\HOLOGO@temp
+ \else
+ \closein\HOLOGO@temp
+ \begingroup
+ \def\x{LaTeX2e}%
+ \expandafter\endgroup
+ \ifx\fmtname\x
+ \input{hologo.cfg}%
+ \else
+ \input hologo.cfg\relax
+ \fi
+ \fi
+ }%
+ \ltx@IfUndefined{newread}{%
+ \chardef\HOLOGO@temp=15 %
+ \def\HOLOGO@CheckRead{%
+ \ifeof\HOLOGO@temp
+ \HOLOGO@InputIfExists
+ \else
+ \ifcase\HOLOGO@temp
+ \@PackageWarningNoLine{hologo}{%
+ Configuration file ignored, because\MessageBreak
+ a free read register could not be found%
+ }%
+ \else
+ \begingroup
+ \count\ltx@cclv=\HOLOGO@temp
+ \advance\ltx@cclv by \ltx@minusone
+ \edef\x{\endgroup
+ \chardef\noexpand\HOLOGO@temp=\the\count\ltx@cclv
+ \relax
+ }%
+ \x
+ \fi
+ \fi
+ }%
+ }{%
+ \csname newread\endcsname\HOLOGO@temp
+ \HOLOGO@InputIfExists
+ }%
+ }{%
+ \edef\HOLOGO@temp{\pdf@filesize{hologo.cfg}}%
+ \ifx\HOLOGO@temp\ltx@empty
+ \else
+ \ifnum\HOLOGO@temp>0 %
+ \begingroup
+ \def\x{LaTeX2e}%
+ \expandafter\endgroup
+ \ifx\fmtname\x
+ \input{hologo.cfg}%
+ \else
+ \input hologo.cfg\relax
+ \fi
+ \else
+ \@PackageInfoNoLine{hologo}{%
+ Empty configuration file `hologo.cfg' ignored%
+ }%
+ \fi
+ \fi
+ }%
+}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def\HOLOGO@temp#1#2{%
+ \kv@define@key{HoLogoDriver}{#1}[]{%
+ \begingroup
+ \def\HOLOGO@temp{##1}%
+ \ltx@onelevel@sanitize\HOLOGO@temp
+ \ifx\HOLOGO@temp\ltx@empty
+ \else
+ \@PackageError{hologo}{%
+ Value (\HOLOGO@temp) not permitted for option `#1'%
+ }%
+ \@ehc
+ \fi
+ \endgroup
+ \def\hologoDriver{#2}%
+ }%
+}%
+\def\HOLOGO@@temp#1#2{%
+ \ifx\kv@value\relax
+ \HOLOGO@temp{#1}{#1}%
+ \else
+ \HOLOGO@temp{#1}{#2}%
+ \fi
+}%
+\kv@parse@normalized{%
+ pdftex,%
+ luatex=pdftex,%
+ dvipdfm,%
+ dvipdfmx=dvipdfm,%
+ dvips,%
+ dvipsone=dvips,%
+ xdvi=dvips,%
+ xetex,%
+ vtex,%
+}\HOLOGO@@temp
+% \end{macrocode}
+%
+% \begin{macrocode}
+\kv@define@key{HoLogoDriver}{driverfallback}{%
+ \def\HOLOGO@DriverFallback{#1}%
+}
+% \end{macrocode}
+%
+% \begin{macro}{\HOLOGO@DriverFallback}
+% \begin{macrocode}
+\def\HOLOGO@DriverFallback{dvips}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\hologoDriverSetup}
+% \begin{macrocode}
+\def\hologoDriverSetup{%
+ \let\hologoDriver\ltx@undefined
+ \HOLOGO@DriverSetup
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\HOLOGO@DriverSetup}
+% \begin{macrocode}
+\def\HOLOGO@DriverSetup#1{%
+ \kvsetkeys{HoLogoDriver}{#1}%
+ \HOLOGO@CheckDriver
+ \ltx@ifundefined{hologoDriver}{%
+ \begingroup
+ \edef\x{\endgroup
+ \noexpand\kvsetkeys{HoLogoDriver}{\HOLOGO@DriverFallback}%
+ }\x
+ }{}%
+ \@PackageInfoNoLine{hologo}{Using driver `\hologoDriver'}%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\HOLOGO@CheckDriver}
+% \begin{macrocode}
+\def\HOLOGO@CheckDriver{%
+ \ifpdf
+ \def\hologoDriver{pdftex}%
+ \let\HOLOGO@pdfliteral\pdfliteral
+ \ifluatex
+ \ifx\pdfextension\@undefined\else
+ \protected\def\pdfliteral{\pdfextension literal}%
+ \let\HOLOGO@pdfliteral\pdfliteral
+ \fi
+ \ltx@IfUndefined{HOLOGO@pdfliteral}{%
+ \ifnum\luatexversion<36 %
+ \else
+ \begingroup
+ \let\HOLOGO@temp\endgroup
+ \ifcase0%
+ \directlua{%
+ if tex.enableprimitives then %
+ tex.enableprimitives('HOLOGO@', {'pdfliteral'})%
+ else %
+ tex.print('1')%
+ end%
+ }%
+ \ifx\HOLOGO@pdfliteral\@undefined 1\fi%
+ \relax%
+ \endgroup
+ \let\HOLOGO@temp\relax
+ \global\let\HOLOGO@pdfliteral\HOLOGO@pdfliteral
+ \fi%
+ \HOLOGO@temp
+ \fi
+ }{}%
+ \fi
+ \ltx@IfUndefined{HOLOGO@pdfliteral}{%
+ \@PackageWarningNoLine{hologo}{%
+ Cannot find \string\pdfliteral
+ }%
+ }{}%
+ \else
+ \ifxetex
+ \def\hologoDriver{xetex}%
+ \else
+ \ifvtex
+ \def\hologoDriver{vtex}%
+ \fi
+ \fi
+ \fi
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\HOLOGO@WarningUnsupportedDriver}
+% \begin{macrocode}
+\def\HOLOGO@WarningUnsupportedDriver#1{%
+ \@PackageWarningNoLine{hologo}{%
+ Logo `#1' needs driver specific macros,\MessageBreak
+ but driver `\hologoDriver' is not supported.\MessageBreak
+ Use a different driver or\MessageBreak
+ load package `graphics' or `pgf'%
+ }%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsubsection{Reflect box macros}
+%
+% Skip driver part if not needed.
+% \begin{macrocode}
+\ltx@IfUndefined{reflectbox}{}{%
+ \ltx@IfUndefined{rotatebox}{}{%
+ \HOLOGO@AtEnd
+ }%
+}
+\ltx@IfUndefined{pgftext}{}{%
+ \HOLOGO@AtEnd
+}
+\ltx@IfUndefined{psscalebox}{}{%
+ \HOLOGO@AtEnd
+}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def\HOLOGO@temp{LaTeX2e}
+\ifx\fmtname\HOLOGO@temp
+ \RequirePackage{kvoptions}[2011/06/30]%
+ \ProcessKeyvalOptions{HoLogoDriver}%
+\fi
+\HOLOGO@DriverSetup{}
+% \end{macrocode}
+%
+% \begin{macro}{\HOLOGO@ReflectBox}
+% \begin{macrocode}
+\def\HOLOGO@ReflectBox#1{%
+ \begingroup
+ \setbox\ltx@zero\hbox{\begingroup#1\endgroup}%
+ \setbox\ltx@two\hbox{%
+ \kern\wd\ltx@zero
+ \csname HOLOGO@ScaleBox@\hologoDriver\endcsname{-1}{1}{%
+ \hbox to 0pt{\copy\ltx@zero\hss}%
+ }%
+ }%
+ \wd\ltx@two=\wd\ltx@zero
+ \box\ltx@two
+ \endgroup
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\HOLOGO@PointReflectBox}
+% \begin{macrocode}
+\def\HOLOGO@PointReflectBox#1{%
+ \begingroup
+ \setbox\ltx@zero\hbox{\begingroup#1\endgroup}%
+ \setbox\ltx@two\hbox{%
+ \kern\wd\ltx@zero
+ \raise\ht\ltx@zero\hbox{%
+ \csname HOLOGO@ScaleBox@\hologoDriver\endcsname{-1}{-1}{%
+ \hbox to 0pt{\copy\ltx@zero\hss}%
+ }%
+ }%
+ }%
+ \wd\ltx@two=\wd\ltx@zero
+ \box\ltx@two
+ \endgroup
+}
+% \end{macrocode}
+% \end{macro}
+%
+% We must define all variants because of dynamic driver setup.
+% \begin{macrocode}
+\def\HOLOGO@temp#1#2{#2}
+% \end{macrocode}
+%
+% \begin{macro}{\HOLOGO@ScaleBox@pdftex}
+% \begin{macrocode}
+\HOLOGO@temp{pdftex}{%
+ \def\HOLOGO@ScaleBox@pdftex#1#2#3{%
+ \HOLOGO@pdfliteral{%
+ q #1 0 0 #2 0 0 cm%
+ }%
+ #3%
+ \HOLOGO@pdfliteral{%
+ Q%
+ }%
+ }%
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\HOLOGO@ScaleBox@dvips}
+% \begin{macrocode}
+\HOLOGO@temp{dvips}{%
+ \def\HOLOGO@ScaleBox@dvips#1#2#3{%
+ \special{ps:%
+ gsave %
+ currentpoint %
+ currentpoint translate %
+ #1 #2 scale %
+ neg exch neg exch translate%
+ }%
+ #3%
+ \special{ps:%
+ currentpoint %
+ grestore %
+ moveto%
+ }%
+ }%
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\HOLOGO@ScaleBox@dvipdfm}
+% \begin{macrocode}
+\HOLOGO@temp{dvipdfm}{%
+ \let\HOLOGO@ScaleBox@dvipdfm\HOLOGO@ScaleBox@dvips
+}
+% \end{macrocode}
+% \end{macro}
+% Since \hologo{XeTeX} v0.6.
+% \begin{macro}{\HOLOGO@ScaleBox@xetex}
+% \begin{macrocode}
+\HOLOGO@temp{xetex}{%
+ \def\HOLOGO@ScaleBox@xetex#1#2#3{%
+ \special{x:gsave}%
+ \special{x:scale #1 #2}%
+ #3%
+ \special{x:grestore}%
+ }%
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\HOLOGO@ScaleBox@vtex}
+% \begin{macrocode}
+\HOLOGO@temp{vtex}{%
+ \def\HOLOGO@ScaleBox@vtex#1#2#3{%
+ \special{r(#1,0,0,#2,0,0}%
+ #3%
+ \special{r)}%
+ }%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macrocode}
+\HOLOGO@AtEnd%
+%</package>
+% \end{macrocode}
+%% \section{Installation}
+%
+% \subsection{Download}
+%
+% \paragraph{Package.} This package is available on
+% CTAN\footnote{\CTANpkg{hologo}}:
+% \begin{description}
+% \item[\CTAN{macros/latex/contrib/hologo/hologo.dtx}] The source file.
+% \item[\CTAN{macros/latex/contrib/hologo/hologo.pdf}] Documentation.
+% \end{description}
+%
+%
+% \paragraph{Bundle.} All the packages of the bundle `hologo'
+% are also available in a TDS compliant ZIP archive. There
+% the packages are already unpacked and the documentation files
+% are generated. The files and directories obey the TDS standard.
+% \begin{description}
+% \item[\CTANinstall{install/macros/latex/contrib/hologo.tds.zip}]
+% \end{description}
+% \emph{TDS} refers to the standard ``A Directory Structure
+% for \TeX\ Files'' (\CTANpkg{tds}). Directories
+% with \xfile{texmf} in their name are usually organized this way.
+%
+% \subsection{Bundle installation}
+%
+% \paragraph{Unpacking.} Unpack the \xfile{hologo.tds.zip} in the
+% TDS tree (also known as \xfile{texmf} tree) of your choice.
+% Example (linux):
+% \begin{quote}
+% |unzip hologo.tds.zip -d ~/texmf|
+% \end{quote}
+%
+% \subsection{Package installation}
+%
+% \paragraph{Unpacking.} The \xfile{.dtx} file is a self-extracting
+% \docstrip\ archive. The files are extracted by running the
+% \xfile{.dtx} through \plainTeX:
+% \begin{quote}
+% \verb|tex hologo.dtx|
+% \end{quote}
+%
+% \paragraph{TDS.} Now the different files must be moved into
+% the different directories in your installation TDS tree
+% (also known as \xfile{texmf} tree):
+% \begin{quote}
+% \def\t{^^A
+% \begin{tabular}{@{}>{\ttfamily}l@{ $\rightarrow$ }>{\ttfamily}l@{}}
+% hologo.sty & tex/generic/hologo/hologo.sty\\
+% hologo.pdf & doc/latex/hologo/hologo.pdf\\
+% example/hologo-example.tex & doc/latex/hologo/example/hologo-example.tex\\
+% hologo.dtx & source/latex/hologo/hologo.dtx\\
+% \end{tabular}^^A
+% }^^A
+% \sbox0{\t}^^A
+% \ifdim\wd0>\linewidth
+% \begingroup
+% \advance\linewidth by\leftmargin
+% \advance\linewidth by\rightmargin
+% \edef\x{\endgroup
+% \def\noexpand\lw{\the\linewidth}^^A
+% }\x
+% \def\lwbox{^^A
+% \leavevmode
+% \hbox to \linewidth{^^A
+% \kern-\leftmargin\relax
+% \hss
+% \usebox0
+% \hss
+% \kern-\rightmargin\relax
+% }^^A
+% }^^A
+% \ifdim\wd0>\lw
+% \sbox0{\small\t}^^A
+% \ifdim\wd0>\linewidth
+% \ifdim\wd0>\lw
+% \sbox0{\footnotesize\t}^^A
+% \ifdim\wd0>\linewidth
+% \ifdim\wd0>\lw
+% \sbox0{\scriptsize\t}^^A
+% \ifdim\wd0>\linewidth
+% \ifdim\wd0>\lw
+% \sbox0{\tiny\t}^^A
+% \ifdim\wd0>\linewidth
+% \lwbox
+% \else
+% \usebox0
+% \fi
+% \else
+% \lwbox
+% \fi
+% \else
+% \usebox0
+% \fi
+% \else
+% \lwbox
+% \fi
+% \else
+% \usebox0
+% \fi
+% \else
+% \lwbox
+% \fi
+% \else
+% \usebox0
+% \fi
+% \else
+% \lwbox
+% \fi
+% \else
+% \usebox0
+% \fi
+% \end{quote}
+% If you have a \xfile{docstrip.cfg} that configures and enables \docstrip's
+% TDS installing feature, then some files can already be in the right
+% place, see the documentation of \docstrip.
+%
+% \subsection{Refresh file name databases}
+%
+% If your \TeX~distribution
+% (\TeX\,Live, \mikTeX, \dots) relies on file name databases, you must refresh
+% these. For example, \TeX\,Live\ users run \verb|texhash| or
+% \verb|mktexlsr|.
+%
+% \subsection{Some details for the interested}
+%
+% \paragraph{Unpacking with \LaTeX.}
+% The \xfile{.dtx} chooses its action depending on the format:
+% \begin{description}
+% \item[\plainTeX:] Run \docstrip\ and extract the files.
+% \item[\LaTeX:] Generate the documentation.
+% \end{description}
+% If you insist on using \LaTeX\ for \docstrip\ (really,
+% \docstrip\ does not need \LaTeX), then inform the autodetect routine
+% about your intention:
+% \begin{quote}
+% \verb|latex \let\install=y\input{hologo.dtx}|
+% \end{quote}
+% Do not forget to quote the argument according to the demands
+% of your shell.
+%
+% \paragraph{Generating the documentation.}
+% You can use both the \xfile{.dtx} or the \xfile{.drv} to generate
+% the documentation. The process can be configured by the
+% configuration file \xfile{ltxdoc.cfg}. For instance, put this
+% line into this file, if you want to have A4 as paper format:
+% \begin{quote}
+% \verb|\PassOptionsToClass{a4paper}{article}|
+% \end{quote}
+% An example follows how to generate the
+% documentation with pdf\LaTeX:
+% \begin{quote}
+%\begin{verbatim}
+%pdflatex hologo.dtx
+%makeindex -s gind.ist hologo.idx
+%pdflatex hologo.dtx
+%makeindex -s gind.ist hologo.idx
+%pdflatex hologo.dtx
+%\end{verbatim}
+% \end{quote}
+%
+% \begin{thebibliography}{9}
+% \raggedright
+%
+% \bibitem{btxdoc}
+% Oren Patashnik,
+% \textit{\hologo{BibTeX}ing},
+% 1988-02-08.\\
+% \CTANpkg{bibtex}
+%
+% \bibitem{dtklogos}
+% Gerd Neugebauer, DANTE,
+% \textit{Package \xpackage{dtklogos}},
+% 2011-04-25.\\
+% \url{http://mirrors.ctan.org/usergrps/dante/dtk/dtk-logos.sty}
+%
+% \bibitem{etexman}
+% The \hologo{NTS} Team,
+% \textit{The \hologo{eTeX} manual},
+% 1998-02.\\
+% \CTANpkg{etex}
+%
+% \bibitem{ExTeX-FAQ}
+% The \hologo{ExTeX} group,
+% \textit{\hologo{ExTeX}: FAQ -- How is \hologo{ExTeX} typeset?},
+% 2007-04-14.\\
+% \url{http://www.extex.org/documentation/faq.html}
+%
+% \bibitem{LyX}
+% ^^A@MISC{ LyX,
+% ^^A title = {{LyX 2.0.0 -- The Document Processor [Computer software and manual]}},
+% ^^A author = {{The LyX Team}},
+% ^^A howpublished = {Internet: http://www.lyx.org},
+% ^^A year = {2011-05-08},
+% ^^A note = {Retrieved May 10, 2011, from http://www.lyx.org},
+% ^^A url = {http://www.lyx.org/}
+% ^^A}
+% The \hologo{LyX} Team,
+% \textit{\hologo{LyX} -- The Document Processor},
+% 2011-05-08.\\
+% \url{https://www.lyx.org/}
+%
+% \bibitem{OzTeX}
+% Andrew Trevorrow,
+% \hologo{OzTeX} FAQ: What is the correct way to typeset ``\hologo{OzTeX}''?,
+% 2011-09-15 (visited).
+% \url{http://www.trevorrow.com/oztex/ozfaq.html#oztex-logo}
+%
+% \bibitem{PiCTeX}
+% Michael Wichura,
+% \textit{The \hologo{PiCTeX} macro package},
+% 1987-09-21.
+% \CTANpkg{pictex}
+%
+% \bibitem{scrlogo}
+% Markus Kohm,
+% \textit{\hologo{KOMAScript} Datei \xfile{scrlogo.dtx}},
+% 2009-01-30.\\
+% \CTANinstall{install/macros/latex/contrib/koma-script.tds.zip}
+%
+% \end{thebibliography}
+%
+% \begin{History}
+% \begin{Version}{2010/04/08 v1.0}
+% \item
+% The first version.
+% \end{Version}
+% \begin{Version}{2010/04/16 v1.1}
+% \item
+% \cs{Hologo} added for support of logos at start of a sentence.
+% \item
+% \cs{hologoSetup} and \cs{hologoLogoSetup} added.
+% \item
+% Options \xoption{break}, \xoption{hyphenbreak}, \xoption{spacebreak}
+% added.
+% \item
+% Variant support added by option \xoption{variant}.
+% \end{Version}
+% \begin{Version}{2010/04/24 v1.2}
+% \item
+% \hologo{LaTeX3} added.
+% \item
+% \hologo{VTeX} added.
+% \end{Version}
+% \begin{Version}{2010/11/21 v1.3}
+% \item
+% \hologo{iniTeX}, \hologo{virTeX} added.
+% \end{Version}
+% \begin{Version}{2011/03/25 v1.4}
+% \item
+% \hologo{ConTeXt} with variants added.
+% \item
+% Option \xoption{discretionarybreak} added as refinement for
+% option \xoption{break}.
+% \end{Version}
+% \begin{Version}{2011/04/21 v1.5}
+% \item
+% Wrong TDS directory for test files fixed.
+% \end{Version}
+% \begin{Version}{2011/10/01 v1.6}
+% \item
+% Support for package \xpackage{tex4ht} added.
+% \item
+% Support for \cs{csname} added if \cs{ifincsname} is available.
+% \item
+% New logos:
+% \hologo{(La)TeX},
+% \hologo{biber},
+% \hologo{BibTeX} (\xoption{sc}, \xoption{sf}),
+% \hologo{emTeX},
+% \hologo{ExTeX},
+% \hologo{KOMAScript},
+% \hologo{La},
+% \hologo{LyX},
+% \hologo{MiKTeX},
+% \hologo{NTS},
+% \hologo{OzMF},
+% \hologo{OzMP},
+% \hologo{OzTeX},
+% \hologo{OzTtH},
+% \hologo{PCTeX},
+% \hologo{PiC},
+% \hologo{PiCTeX},
+% \hologo{METAFONT},
+% \hologo{MetaFun},
+% \hologo{METAPOST},
+% \hologo{MetaPost},
+% \hologo{SLiTeX} (\xoption{lift}, \xoption{narrow}, \xoption{simple}),
+% \hologo{SliTeX} (\xoption{narrow}, \xoption{simple}, \xoption{lift}),
+% \hologo{teTeX}.
+% \item
+% Fixes:
+% \hologo{iniTeX},
+% \hologo{pdfLaTeX},
+% \hologo{pdfTeX},
+% \hologo{virTeX}.
+% \item
+% \cs{hologoFontSetup} and \cs{hologoLogoFontSetup} added.
+% \item
+% \cs{hologoVariant} and \cs{HologoVariant} added.
+% \end{Version}
+% \begin{Version}{2011/11/22 v1.7}
+% \item
+% New logos:
+% \hologo{BibTeX8},
+% \hologo{LaTeXML},
+% \hologo{SageTeX},
+% \hologo{TeX4ht},
+% \hologo{TTH}.
+% \item
+% \hologo{Xe} and friends: Driver stuff fixed.
+% \item
+% \hologo{Xe} and friends: Support for italic added.
+% \item
+% \hologo{Xe} and friends: Package support for \xpackage{pgf}
+% and \xpackage{pstricks} added.
+% \end{Version}
+% \begin{Version}{2011/11/29 v1.8}
+% \item
+% New logos:
+% \hologo{HanTheThanh}.
+% \end{Version}
+% \begin{Version}{2011/12/21 v1.9}
+% \item
+% Patch for package \xpackage{ifxetex} added for the case that
+% \cs{newif} is undefined in \hologo{iniTeX}.
+% \item
+% Some fixes for \hologo{iniTeX}.
+% \end{Version}
+% \begin{Version}{2012/04/26 v1.10}
+% \item
+% Fix in bookmark version of logo ``\hologo{HanTheThanh}''.
+% \end{Version}
+% \begin{Version}{2016/05/12 v1.11}
+% \item
+% Update HOLOGO@IfCharExists (previously in texlive)
+% \item define pdfliteral in current luatex.
+% \end{Version}
+% \begin{Version}{2016/05/16 v1.12}
+% \item
+% Documentation updates.
+% \end{Version}
+% \begin{Version}{2017/05/01 v1.13}
+% \item
+% Removing spurious comments in bibliography. (github PR from yudai-nkt)
+% \end{Version}
+% \begin{Version}{2019/12/05 v1.14}
+% \item
+% Documentation updates.
+% \end{Version}
+% \end{History}
+%
+% \PrintIndex
+%
+% \Finale
+\endinput
diff --git a/macros/latex/contrib/hologo/hologo.pdf b/macros/latex/contrib/hologo/hologo.pdf
new file mode 100644
index 0000000000..a5f4b321a4
--- /dev/null
+++ b/macros/latex/contrib/hologo/hologo.pdf
Binary files differ