% \iffalse meta-comment
% This is file `graph-theory-symbol.dtx'.
% This file is part of GraphTheorySymbol.
%
% GraphTheorySymbol is free software:
% you can redistribute it and/or modify it
% under the terms of the GNU Lesser General Public License
% as published by the Free Software Foundation,
% either version 3 of the License,
% or (at your option) any later version.
%
% GraphTheorySymbol is distributed
% in the hope that it will be useful,
% but WITHOUT ANY WARRANTY;
% without even the implied warranty of
% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
% See the GNU Lesser General Public License for more details.
%
% You should have received a copy of
% the GNU Lesser General Public License
% along with GraphTheorySymbol.
% If not, see <https://www.gnu.org/licenses/>.
%
% This work is maintained by Laurent Lyaudet.
%
% This work consists of the files graph-theory-symbol.dtx,
%                                 graph-theory-symbol.ins,
%                                 tex/memo-symbols-standard.tex,
%                                 tex/memo-symbols-monochrome.tex,
%                                 tex/memo-symbols-meta-logic.tex,
%                                 tex/memo-preamble.tex,
%                                 tex/memo-versatile-macros.tex,
%                                 graph-theory-symbol-memo.tex, and
%                                 test.tex,
% and the derived files           graph-theory-symbol.sty,
%                                 graph-theory-symbol-doc-A4.pdf,
%                                 graph-theory-symbol-doc-USLetter.pdf,
%                                 graph-theory-symbol-doc-Book.pdf,
%                                 graph-theory-symbol-memo-A4.pdf,
%                                 graph-theory-symbol-memo-USLetter.pdf,
%                                 graph-theory-symbol-memo-Book.pdf,
%                                 test-A4.pdf,
%                                 test-USLetter.pdf, and
%                                 test-Book.pdf.
%
% ©Copyright 2026 Laurent Frédéric Bernard François Lyaudet
% \fi
%
% \iffalse
%<*driver>
\ProvidesFile{graph-theory-symbol.dtx}
%</driver>
%<*package>
\NeedsTeXFormat{LaTeX2e}[2025/11/01]
\ProvidesPackage{graph-theory-symbol}%
[2026/09/18 v1.6.0 %
A set of LaTeX commands to have symbols designed for Graph Theory]
%</package>
%<*driver>
\if\buildtarget0% A4 paper
\documentclass{ltxdoc}
\usepackage[a4paper,vmargin=20mm,left=27mm,right=27mm,nohead]{geometry}
\else\if\buildtarget1% US Letter paper
\documentclass{ltxdoc}
\usepackage[letterpaper,vmargin=20mm,left=27mm,right=27mm,nohead]{geometry}
\else\if\buildtarget2% Book with US Letter paper
\documentclass[twoside]{ltxdoc}
\usepackage[letterpaper,vmargin=20mm,outer=24mm,inner=24mm,nohead,
bindingoffset=5mm]{geometry}
\fi
\fi
\fi
\usepackage[numbered]{hypdoc}
\usepackage{longtable}
\usepackage[columns=1]{idxlayout}
\usepackage{graph-theory-symbol}

\newcommand{\usageExampleIII}[5]{
\texttt{A.\textbackslash{}#3/A.}\\
or \texttt{A.\textbackslash{}#4/A.}\\
or \texttt{A.\textbackslash{}#5/A.}\\
will yield A.\csname #5\endcsname/A.\\
\texttt{#1 \textbackslash{}#3/ #2}\\
or \texttt{#1 \textbackslash{}#4/ #2}\\
or \texttt{#1 \textbackslash{}#5/ #2}\\
will yield #1 \csname #5\endcsname/ #2.\\
\texttt{\$#1 \textbackslash{}#3/ #2\$}\\
or \texttt{\$#1 \textbackslash{}#4/ #2\$}\\
or \texttt{\$#1 \textbackslash{}#5/ #2\$}\\
will yield $#1 \csname #5\endcsname/ #2$.
}

\newcommand{\usageExampleRelIII}[5]{
\texttt{\$#1\textbackslash{}#3/#2\$}\\
or \texttt{\$#1\textbackslash{}#4/#2\$}\\
or \texttt{\$#1\textbackslash{}#5/#2\$}\\
will yield $#1\csname #5\endcsname/#2$.
}

\newcommand{\usageExampleIV}[6]{
\texttt{A.\textbackslash{}#3/A.}\\
or \texttt{A.\textbackslash{}#4/A.}\\
or \texttt{A.\textbackslash{}#5/A.}\\
or \texttt{A.\textbackslash{}#6/A.}\\
will yield A.\csname #6\endcsname/A.\\
\texttt{#1 \textbackslash{}#3/ #2}\\
or \texttt{#1 \textbackslash{}#4/ #2}\\
or \texttt{#1 \textbackslash{}#5/ #2}\\
or \texttt{#1 \textbackslash{}#6/ #2}\\
will yield #1 \csname #6\endcsname/ #2.\\
\texttt{\$#1 \textbackslash{}#3/ #2\$}\\
or \texttt{\$#1 \textbackslash{}#4/ #2\$}\\
or \texttt{\$#1 \textbackslash{}#5/ #2\$}\\
or \texttt{\$#1 \textbackslash{}#6/ #2\$}\\
will yield $#1 \csname #6\endcsname/ #2$.
}

\newcommand{\usageExampleRelIV}[6]{
\texttt{\$#1\textbackslash{}#3/#2\$}\\
or \texttt{\$#1\textbackslash{}#4/#2\$}\\
or \texttt{\$#1\textbackslash{}#5/#2\$}\\
or \texttt{\$#1\textbackslash{}#6/#2\$}\\
will yield $#1\csname #6\endcsname/#2$.
}

\newcommand{\usageExampleAdjIII}[3]{\usageExampleIII{u}{v}{#1}{#2}{#3}}
\newcommand{\usageExampleAdjRelIII}[3]{%
\usageExampleRelIII{u}{v}{#1}{#2}{#3}%
}
\newcommand{\usageExampleAdjIV}[4]{%
\usageExampleIV{u}{v}{#1}{#2}{#3}{#4}%
}
\newcommand{\usageExampleAdjRelIV}[4]{%
\usageExampleRelIV{u}{v}{#1}{#2}{#3}{#4}%
}

\newcommand{\usageExampleIncIII}[3]{\usageExampleIII{v}{e}{#1}{#2}{#3}}
\newcommand{\usageExampleIncRelIII}[3]{%
\usageExampleRelIII{v}{e}{#1}{#2}{#3}%
}
\newcommand{\usageExampleIncIV}[4]{%
\usageExampleIV{v}{e}{#1}{#2}{#3}{#4}%
}
\newcommand{\usageExampleIncRelIV}[4]{%
\usageExampleRelIV{v}{e}{#1}{#2}{#3}{#4}%
}

\EnableCrossrefs
\CodelineIndex
\RecordChanges
\SetupDoc{reportchangedates}
\begin{document}
  \DocInput{graph-theory-symbol.dtx}
\end{document}
%</driver>
% \fi
%
% \GetFileInfo{graph-theory-symbol.sty}
% \DoNotIndex{\@ifdefinable,\bullet,\circ,\def,\define@key,\edef,\else}
% \DoNotIndex{\empty,\endinput,\ensuremath,\fi,\hspace,\if,\lnot}
% \DoNotIndex{\mathcolor,\mathrel,\newcommand,\protected,\raisebox}
% \DoNotIndex{\RequirePackage,\scalebox,\setkeys,\smallblacksquare,\text}
% \DoNotIndex{\textasciicircum,\textbackslash,\textcolor,\vee,\wedge}
%
% \title{^^A
%   \textsf{GraphTheorySymbol}:\\^^A
%   \LaTeX{} Commands with Symbols for Graph Theory^^A
% }
% \date{\large\fileversion\quad\filedate}
% \author{^^A
%   Laurent Frédéric Bernard François Lyaudet\\^^A
%   Website:^^A
%   \texorpdfstring{\url{https://lyaudet.eu/laurent/}}^^A
% {https://lyaudet.eu/laurent/}\\^^A
%   Email:^^A
%   \href{mailto:Laurent.Lyaudet@gmail.com}{Laurent.Lyaudet@gmail.com}^^A
% }
% \maketitle
% \changes{v0.1.0}{2026-08-01}{Initial version}
% \changes{v1.0.0}{2026-08-26}{First public release}
% \changes{v1.1.0}{2026-08-29}{Added a memo}
% \changes{v1.1.1}{2026-08-30}{Small corrections and improvements}
% \changes{v1.2.0}{2026-09-06}%
% {CTAN URL, new macros for same set of symbols}
% \changes{v1.2.1}{2026-09-08}{Smaller tests output}
% \changes{v1.3.0}{2026-09-08}{New macros for monochrome symbols}
% \changes{v1.4.0}{2026-09-12}%
% {New macros for symbols for logical operations on relations}
% \changes{v1.5.0}{2026-09-12}{One macro to rule them all}
% \changes{v1.5.1}{2026-09-13}%
% {Use noprint option of doc package to avoid too big left margins,%
% and use paragraph command instead}
% \changes{v1.5.2}{2026-09-14}%
% {Add A4, USLetter, and Book variants of PDFs.}
% \changes{v1.6.0}{2026-09-18}%
% {Add verbatim code for compound adjacency in memo.}
% \begin{abstract}\noindent
% This documentation is for \LaTeX{} package GraphTheorySymbol.
% It provides symbols used in graph theory.
% The adjacency and incidence symbols,
% and the meta-logical operators symbols
% were created by the author of this package.
% \end{abstract}
% \tableofcontents
%
% \section{Introduction}
%
% This documentation is for \LaTeX{} package GraphTheorySymbol.
% It provides symbols used in graph theory.
% The adjacency and incidence symbols,
% and the meta-logical operators symbols
% were created by the author of this package.
%
% This package is licenced under Lesser GNU General Public License version
% 3 or later (LGPLv3+).
% It means you are free do anything with it,
% but if you do improve the code of the symbols that we provide,
% please do share these improvements in a similar way.
% There is no restriction on other graph theory symbols/code,
% even if it would be a good fit for inclusion in this package.
% There is also no need to share in a similar way what you build
% with this package.
% The text of the licenses is available at:\\
% \url{https://www.gnu.org/licenses/}.
%
% The git repository of this source code is also available at:\\
% \url{https://github.com/LLyaudet/GraphTheorySymbol/}.\\
% Clone it with this URL:\\
% \url{git@github.com:LLyaudet/GraphTheorySymbol.git}.
%
% This package is available on CTAN:\\
% \url{https://ctan.org/pkg/graph-theory-symbol}.
%
% This is our first \LaTeX{} package.
% It may be that our macros are quite slow and that a document making
% extensive use of these macros will be slow to compile.
% If you know how to produce better \LaTeX{} code,
% please submit a pull request on GitHub.
%
% \newpage
% \section{Usage}
%
% \if\buildtarget0
% \else\if\buildtarget1
% \vspace{-0.4cm}
% \else\if\buildtarget2
% \vspace{-0.4cm}
% \fi
% \fi
% \fi
% \subsection{Memo or for the impatient}
%
% \if\buildtarget0
% \else\if\buildtarget1
% \vspace{-0.2cm}
% \else\if\buildtarget2
% \vspace{-0.2cm}
% \fi
% \fi
% \fi
% {\catcode`\%=14 \input{./tex/memo-preamble.tex}}
%
% \if\buildtarget0
% \medskip
% \else\if\buildtarget1
% \else\if\buildtarget2
% \fi
% \fi
% \fi
% {\catcode`\%=14 \input{./tex/memo-symbols-standard.tex}}
%
% \if\buildtarget0
% \bigskip
% \hrule
%
% \bigskip
% \else\if\buildtarget1
% \hrule
%
% \else\if\buildtarget2
% \hrule
%
% \fi
% \fi
% \fi
% {\catcode`\%=14 \input{./tex/memo-symbols-monochrome.tex}}
%
% \newpage
% \GTSsetMainColor{blue}
% |\GTSsetMainColor{blue}|
%
% {\catcode`\%=14 \input{./tex/memo-symbols-standard.tex}}
% \GTSsetMainColor{black}
%
% \bigskip
% \hrule
%
% \bigskip
% \if\buildtarget0
% \else\if\buildtarget1
% \vspace{0.2cm}
% \else\if\buildtarget2
% \vspace{0.2cm}
% \fi
% \fi
% \fi
% {\catcode`\%=14 \input{./tex/memo-symbols-meta-logic.tex}}
%
% \bigskip
% \hrule
%
% \bigskip
% {\catcode`\%=14 \input{./tex/memo-versatile-macros.tex}}
%
% \newpage
% \subsection{Detailed usage}
%
% First you need to add in your preamble:
% |\usepackage{graph-theory-symbol}|.
%
% All symbols macros were designed with ease of use in mind:
% they are called with a trailing slash, they can be called in text mode or
% in math mode, a variant with relation spacing for math mode exists with
% suffix ``relation''.
%
% \subsubsection{General macros}
%
% \paragraph{\textbackslash{}GTS@newcommand}
%
% \DescribeMacro[noprint]{\GTS@newcommand}
% This macro will enforce that the other macros are called with a trailing
% slash, avoiding problems with spaces after macro call.\\
% Arguments:\\
% \marg{commandname} The name of the command to create.\\
% \marg{commandcode} The code of the command to create.
%
% \paragraph{\textbackslash{}GTS@newprotectedcommand}
%
% \DescribeMacro[noprint]{\GTS@newprotectedcommand}
% This macro will enforce that the other macros are called with a trailing
% slash, avoiding problems with spaces after macro call.\\
% Arguments:\\
% \marg{commandname} The name of the command to create.\\
% \marg{commandcode} The code of the command to create.
%
% \paragraph{\textbackslash{}GTSsetMainColor}
%
% \DescribeMacro[noprint]{\GTSsetMainColor}
% This macro will set the main color used in GraphTheorySymbol.
% This color has initial value ``black''.\\
% Argument:\\
% \marg{color} The color that must be used by GraphTheorySymbol afterward.
%
% \paragraph{\textbackslash{}GTSsetSecondColor}
%
% \DescribeMacro[noprint]{\GTSsetSecondColor}
% This macro will set the second color used in GraphTheorySymbol.
% This color has initial value ``gray''.\\
% Argument:\\
% \marg{color} The color that must be used by GraphTheorySymbol afterward.
%
% \subsubsection{Standard adjacency macros}
%
% \paragraph{\textbackslash{}GTS@a}
%
% \DescribeMacro[noprint]{\GTS@a}
% This macro will draw any of the adjacency symbols
% if the correct arguments are given.
% It is not expected to be used directly.
% See the macros derived from it and \cs{GTS@b}: \cs{GTSxadjacency},
% \cs{GTSxadj}, and \cs{GTSxa}.\\
% Arguments:\\
% \marg{mainColor} If non-empty, this color will be used as main color.\\
% \marg{secondColor} If non-empty, this color will be used as second
% color.\\
% \marg{drawSlash} Non-empty implies that a negation will be drawn.\\
% \marg{drawUpArrow} Non-empty implies that an up-arrow will be drawn.\\
% \marg{drawDownArrow} Non-empty implies that a down-arrow will be drawn.
%
% \paragraph{\textbackslash{}GTS@b}
%
% \DescribeMacro[noprint]{\GTS@b}
% This macro builds on top of \cs{GTS@a} to handle mathematical relation
% spacing if sixth argument is not empty.
% It is not expected to be used directly.
% See the macros derived from it and \cs{GTS@a}: \cs{GTSxadjacency},
% \cs{GTSxadj}, and \cs{GTSxa}.\\
% Arguments:\\
% \marg{mainColor} If non-empty, this color will be used as main color.\\
% \marg{secondColor} If non-empty, this color will be used as second
% color.\\
% \marg{drawSlash} Non-empty implies that a negation will be drawn.\\
% \marg{drawUpArrow} Non-empty implies that an up-arrow will be drawn.\\
% \marg{drawDownArrow} Non-empty implies that a down-arrow will be drawn.\\
% \marg{relation} Non-empty implies that relation spacing will be added.
%
% \paragraph{\textbackslash{}GTSxadjacency,
% \textbackslash{}GTSxadj,
% \textbackslash{}GTSxa}
%
% \DescribeMacro[noprint]{\GTSxadjacency}
% \DescribeMacro[noprint]{\GTSxadj}
% \DescribeMacro[noprint]{\GTSxa}
% Versatile macros for adjacency that can be given options.\\
% Argument:\\
% \oarg{optionsList} Sets the following options if not empty:\\
% |mainColor=color1| or |mainC=color1| or |mColor=color1| or |mC=color1|,\\
% |secondColor=color2| or |secondC=color2| or |sColor=color2|
% or |sC=color2|,\\
% |monochrome| or |mono| or |mon| or |m|
% (equivalent to |mC=black,sC=black|),\\
% |negated| or |not| or |n|,\\
% |up| or |u|,\\
% |down| or |d|,\\
% |relation| or |rel| or |r|.
%
% \paragraph{\textbackslash{}GTSadjacency,
% \textbackslash{}GTSadj,
% \textbackslash{}GTSa}
%
% \DescribeMacro[noprint]{\GTSadjacency}
% \DescribeMacro[noprint]{\GTSadj}
% \DescribeMacro[noprint]{\GTSa}
% This macro will draw an adjacency symbol.
% A first drawing didn't include the small dots in the middle of the two
% circles corresponding to the graph vertices.
% But it was too similar to `` spoon'' and multimap symbols,
% and could be confused with a graph with only two vertices and one edge.
% Hence, these dots were added and they have the nice property to remind
% of the classical textual notation of adjacency relation as Adj(.,.).\\
% \usageExampleAdjIII{GTSadjacency}{GTSadj}{GTSa}
%
% \paragraph{\textbackslash{}GTSadjacencyRelation,
% \textbackslash{}GTSadjRel,
% \textbackslash{}GTSaR}
%
% \DescribeMacro[noprint]{\GTSadjacencyRelation}
% \DescribeMacro[noprint]{\GTSadjRel}
% \DescribeMacro[noprint]{\GTSaR}
% This macro will draw an adjacency symbol.\\
% \usageExampleAdjRelIII{GTSadjacencyRelation}{GTSadjRel}{GTSaR}
%
% \paragraph{\textbackslash{}GTSunadjacency,
% \textbackslash{}GTSunadj,
% \textbackslash{}GTSu}
%
% \DescribeMacro[noprint]{\GTSunadjacency}
% \DescribeMacro[noprint]{\GTSunadj}
% \DescribeMacro[noprint]{\GTSu}
% This macro will draw an unadjacency symbol.\\
% \usageExampleAdjIII{GTSunadjacency}{GTSunadj}{GTSu}
%
% \paragraph{\textbackslash{}GTSunadjacencyRelation,
% \textbackslash{}GTSunadjRel,
% \textbackslash{}GTSuR}
%
% \DescribeMacro[noprint]{\GTSunadjacencyRelation}
% \DescribeMacro[noprint]{\GTSunadjRel}
% \DescribeMacro[noprint]{\GTSuR}
% This macro will draw an unadjacency symbol.\\
% \usageExampleAdjRelIII{GTSunadjacencyRelation}{GTSunadjRel}{GTSuR}
%
% \paragraph{\textbackslash{}GTSdirectedAdjacencyUp,
% \textbackslash{}GTSdirAdjUp,
% \textbackslash{}GTSdAU}
%
% \DescribeMacro[noprint]{\GTSdirectedAdjacencyUp}
% \DescribeMacro[noprint]{\GTSdirAdjUp}
% \DescribeMacro[noprint]{\GTSdAU}
% This macro will draw a directed adjacency upward symbol.
% The operand on the left of the symbol should be considered the source
% of the arc;
% the operand on the right of the symbol should be considered the target
% of the arc.\\
% \usageExampleAdjIII{GTSdirectedAdjacencyUp}{GTSdirAdjUp}{GTSdAU}
%
% \paragraph{\textbackslash{}GTSdirectedAdjacencyUpRelation,
% \textbackslash{}GTSdirAdjUpRel,
% \textbackslash{}GTSdAUR}
%
% \DescribeMacro[noprint]{\GTSdirectedAdjacencyUpRelation}
% \DescribeMacro[noprint]{\GTSdirAdjUpRel}
% \DescribeMacro[noprint]{\GTSdAUR}
% This macro will draw a directed adjacency upward symbol
% with relation spacing in math mode.\\
% \usageExampleAdjRelIII{GTSdirectedAdjacencyUpRelation}{GTSdirAdjUpRel}%
% {GTSdAUR}
%
% \paragraph{\textbackslash{}GTSnegatedDirectedAdjacencyUp,
% \textbackslash{}GTSnegDirAdjUp,
% \textbackslash{}GTSnDAU}
%
% \DescribeMacro[noprint]{\GTSnegatedDirectedAdjacencyUp}
% \DescribeMacro[noprint]{\GTSnegDirAdjUp}
% \DescribeMacro[noprint]{\GTSnDAU}
% This macro will draw a negated directed adjacency upward symbol.\\
% \usageExampleAdjIII{GTSnegatedDirectedAdjacencyUp}{GTSnegDirAdjUp}%
% {GTSnDAU}
%
% \paragraph{\textbackslash{}GTSnegatedDirectedAdjacencyUpRelation,
% \textbackslash{}GTSnegDirAdjUpRel,
% \textbackslash{}GTSnDAUR}
%
% \DescribeMacro[noprint]{\GTSnegatedDirectedAdjacencyUpRelation}
% \DescribeMacro[noprint]{\GTSnegDirAdjUpRel}
% \DescribeMacro[noprint]{\GTSnDAUR}
% This macro will draw a negated directed adjacency upward symbol
% with relation spacing in math mode.\\
% \usageExampleAdjRelIII{GTSnegatedDirectedAdjacencyUpRelation}%
% {GTSnegDirAdjUpRel}{GTSnDAUR}
%
% \paragraph{\textbackslash{}GTSdirectedAdjacencyDown,
% \textbackslash{}GTSdirAdjDown,
% \textbackslash{}GTSdAD}
%
% \DescribeMacro[noprint]{\GTSdirectedAdjacencyDown}
% \DescribeMacro[noprint]{\GTSdirAdjDown}
% \DescribeMacro[noprint]{\GTSdAD}
% This macro will draw a directed adjacency downward symbol.
% The operand on the left of the symbol should be considered the target
% of the arc;
% the operand on the right of the symbol should be considered the source
% of the arc.\\
% \usageExampleAdjIII{GTSdirectedAdjacencyDown}{GTSdirAdjDown}{GTSnDAD}
%
% \paragraph{\textbackslash{}GTSdirectedAdjacencyDownRelation,
% \textbackslash{}GTSdirAdjDownRel,
% \textbackslash{}GTSdADR}
%
% \DescribeMacro[noprint]{\GTSdirectedAdjacencyDownRelation}
% \DescribeMacro[noprint]{\GTSdirAdjDownRel}
% \DescribeMacro[noprint]{\GTSdADR}
% This macro will draw a directed adjacency downward symbol
% with relation spacing in math mode.\\
% \usageExampleAdjRelIII{GTSdirectedAdjacencyDownRelation}%
% {GTSdirAdjDownRel}{GTSdADR}
%
% \paragraph{\textbackslash{}GTSnegatedDirectedAdjacencyDown,
% \textbackslash{}GTSnegDirAdjDown,
% \textbackslash{}GTSnDAD}
%
% \DescribeMacro[noprint]{\GTSnegatedDirectedAdjacencyDown}
% \DescribeMacro[noprint]{\GTSnegDirAdjDown}
% \DescribeMacro[noprint]{\GTSnDAD}
% This macro will draw a negated directed adjacency downward symbol.\\
% \usageExampleAdjIII{GTSnegatedDirectedAdjacencyDown}{GTSnegDirAdjDown}%
% {GTSnDAD}
%
% \paragraph{\textbackslash{}GTSnegatedDirectedAdjacencyDownRelation,
% \textbackslash{}GTSnegDirAdjDownRel,
% \textbackslash{}GTSnDADR}
%
% \DescribeMacro[noprint]{\GTSnegatedDirectedAdjacencyDownRelation}
% \DescribeMacro[noprint]{\GTSnegDirAdjDownRel}
% \DescribeMacro[noprint]{\GTSnDADR}
% This macro will draw a negated directed adjacency downward symbol
% with relation spacing in math mode.\\
% \usageExampleAdjRelIII{GTSnegatedDirectedAdjacencyDownRelation}%
% {GTSnegDirAdjDownRel}{GTSnDADR}
%
% \subsubsection{Standard incidence macros}
%
% \paragraph{\textbackslash{}GTS@i}
%
% \DescribeMacro[noprint]{\GTS@i}
% This macro will draw any of the incidence symbols
% if the correct arguments are given.
% It is not expected to be used directly.
% See the macros derived from it and \cs{GTS@j}: \cs{GTSxincidence},
% \cs{GTSxinc}, and \cs{GTSxi}.
% The operand on the left of the symbol should be considered the vertex
% to which the edge/the operand on the right of the symbol is incident.\\
% Arguments:\\
% \marg{mainColor} If non-empty, this color will be used as main color.\\
% \marg{secondColor} If non-empty, this color will be used as second
% color.\\
% \marg{drawSlash} Non-empty implies that a negation will be drawn.\\
% \marg{drawUpArrow} Non-empty implies that an up-arrow will be drawn.\\
% \marg{drawDownArrow} Non-empty implies that a down-arrow will be drawn.
%
% \paragraph{\textbackslash{}GTS@j}
%
% \DescribeMacro[noprint]{\GTS@j}
% This macro builds on top of \cs{GTS@i} to handle mathematical relation
% spacing if sixth argument is not empty.
% It is not expected to be used directly.
% See the macros derived from it and \cs{GTS@i}: \cs{GTSxincidence},
% \cs{GTSxinc}, and \cs{GTSxi}.\\
% Arguments:\\
% \marg{mainColor} If non-empty, this color will be used as main color.\\
% \marg{secondColor} If non-empty, this color will be used as second
% color.\\
% \marg{drawSlash} Non-empty implies that a negation will be drawn.\\
% \marg{drawUpArrow} Non-empty implies that an up-arrow will be drawn.\\
% \marg{drawDownArrow} Non-empty implies that a down-arrow will be drawn.\\
% \marg{relation} Non-empty implies that relation spacing will be added.
%
% \paragraph{\textbackslash{}GTSxincidence,
% \textbackslash{}GTSxinc,
% \textbackslash{}GTSxi}
%
% \DescribeMacro[noprint]{\GTSxincidence}
% \DescribeMacro[noprint]{\GTSxinc}
% \DescribeMacro[noprint]{\GTSxi}
% Versatile macros for incidence that can be given options.\\
% Argument:\\
% \oarg{optionsList} Sets the following options if not empty:\\
% |mainColor=color1| or |mainC=color1| or |mColor=color1| or |mC=color1|,\\
% |secondColor=color2| or |secondC=color2| or |sColor=color2|
% or |sC=color2|,\\
% |monochrome| or |mono| or |mon| or |m|
% (equivalent to |mC=black,sC=black|),\\
% |negated| or |not| or |n|,\\
% |in| or |i|,\\
% |out| or |o|,\\
% |relation| or |rel| or |r|.
%
% \paragraph{\textbackslash{}GTSincidence,
% \textbackslash{}GTSinc,
% \textbackslash{}GTSi}
%
% \DescribeMacro[noprint]{\GTSincidence}
% \DescribeMacro[noprint]{\GTSinc}
% \DescribeMacro[noprint]{\GTSi}
% This macro will draw an incidence symbol.
% The operand on the left of the symbol should be considered the vertex
% to which the edge/the operand on the right of the symbol is incident.\\
% \usageExampleIncIII{GTSincidence}{GTSinc}{GTSi}
%
% \paragraph{\textbackslash{}GTSincidenceRelation,
% \textbackslash{}GTSincRel,
% \textbackslash{}GTSiR}
%
% \DescribeMacro[noprint]{\GTSincidenceRelation}
% \DescribeMacro[noprint]{\GTSincRel}
% \DescribeMacro[noprint]{\GTSiR}
% This macro will draw an incidence symbol with relation spacing in math
% mode.\\
% \usageExampleIncRelIII{GTSincidenceRelation}{GTSincRel}{GTSiR}
%
% \paragraph{\textbackslash{}GTSnegatedIncidence,
% \textbackslash{}GTSnegInc,
% \textbackslash{}GTSnI}
%
% \DescribeMacro[noprint]{\GTSnegatedIncidence}
% \DescribeMacro[noprint]{\GTSnegInc}
% \DescribeMacro[noprint]{\GTSnI}
% This macro will draw a negated incidence symbol.\\
% \usageExampleIncIII{GTSnegatedIncidence}{GTSnegInc}{GTSnI}
%
% \paragraph{\textbackslash{}GTSnegatedIncidenceRelation,
% \textbackslash{}GTSnegIncRel,
% \textbackslash{}GTSnIR}
%
% \DescribeMacro[noprint]{\GTSnegatedIncidenceRelation}
% \DescribeMacro[noprint]{\GTSnegIncRel}
% \DescribeMacro[noprint]{\GTSnIR}
% This macro will draw a negated incidence symbol with relation spacing
% in math mode.\\
% \usageExampleIncRelIII{GTSnegatedIncidenceRelation}{GTSnegIncRel}{GTSnIR}
%
% \paragraph{\textbackslash{}GTSoutIncidence,
% \textbackslash{}GTSoutInc,
% \textbackslash{}GTSoI}
%
% \DescribeMacro[noprint]{\GTSoutIncidence}
% \DescribeMacro[noprint]{\GTSoutInc}
% \DescribeMacro[noprint]{\GTSoI}
% This macro will draw a directed incidence upward (out(ward) incidence)
% symbol.
% The operand on the left of the symbol should be considered the vertex
% to which the arc/the operand on the right of the symbol is incident.\\
% \usageExampleIncIII{GTSoutIncidence}{GTSoutInc}{GTSoI}
%
% \paragraph{\textbackslash{}GTSoutIncidenceRelation,
% \textbackslash{}GTSoutIncRel,
% \textbackslash{}GTSoIR}
%
% \DescribeMacro[noprint]{\GTSoutIncidenceRelation}
% \DescribeMacro[noprint]{\GTSoutIncRel}
% \DescribeMacro[noprint]{\GTSoIR}
% This macro will draw a directed incidence upward (out(ward) incidence)
% symbol with relation spacing in math mode.\\
% \usageExampleIncRelIII{GTSoutIncidenceRelation}{GTSoutIncRel}{GTSoIR}
%
% \paragraph{\textbackslash{}GTSnegatedOutIncidence,
% \textbackslash{}GTSnegOutInc,
% \textbackslash{}GTSnOI}
%
% \DescribeMacro[noprint]{\GTSnegatedOutIncidence}
% \DescribeMacro[noprint]{\GTSnegOutInc}
% \DescribeMacro[noprint]{\GTSnOI}
% This macro will draw a negated directed incidence upward
% (out(ward) incidence) symbol.\\
% \usageExampleIncIII{GTSnegatedOutIncidence}{GTSnegOutInc}{GTSnOI}
%
% \paragraph{\textbackslash{}GTSnegatedOutIncidenceRelation,
% \textbackslash{}GTSnegOutIncRel,
% \textbackslash{}GTSnOIR}
%
% \DescribeMacro[noprint]{\GTSnegatedOutIncidenceRelation}
% \DescribeMacro[noprint]{\GTSnegOutIncRel}
% \DescribeMacro[noprint]{\GTSnOIR}
% This macro will draw a negated directed incidence upward
% (out(ward) incidence) symbol with relation spacing in math mode.\\
% \usageExampleIncRelIII{GTSnegatedOutIncidenceRelation}{GTSnegOutIncRel}%
% {GTSnOIR}
%
% \paragraph{\textbackslash{}GTSinIncidence,
% \textbackslash{}GTSinInc,
% \textbackslash{}GTSiI}
%
% \DescribeMacro[noprint]{\GTSinIncidence}
% \DescribeMacro[noprint]{\GTSinInc}
% \DescribeMacro[noprint]{\GTSiI}
% This macro will draw a directed incidence downward (in(ward) incidence)
% symbol.
% The operand on the left of the symbol should be considered the vertex
% to which the arc/the operand on the right of the symbol is incident.\\
% \usageExampleIncIII{GTSinIncidence}{GTSinInc}{GTSiI}
%
% \paragraph{\textbackslash{}GTSinIncidenceRelation,
% \textbackslash{}GTSinIncRel,
% \textbackslash{}GTSiIR}
%
% \DescribeMacro[noprint]{\GTSinIncidenceRelation}
% \DescribeMacro[noprint]{\GTSinIncRel}
% \DescribeMacro[noprint]{\GTSiIR}
% This macro will draw a directed incidence downward (in(ward) incidence)
% symbol with relation spacing in math mode.\\
% \usageExampleIncRelIII{GTSinIncidenceRelation}{GTSinIncRel}{GTSiIR}
%
% \paragraph{\textbackslash{}GTSnegatedInIncidence,
% \textbackslash{}GTSnegInInc,
% \textbackslash{}GTSnII}
%
% \DescribeMacro[noprint]{\GTSnegatedInIncidence}
% \DescribeMacro[noprint]{\GTSnegInInc}
% \DescribeMacro[noprint]{\GTSnII}
% This macro will draw a negated directed incidence downward
% (in(ward) incidence) symbol.\\
% \usageExampleIncIII{GTSnegatedInIncidence}{GTSnegInInc}{GTSnII}
%
% \paragraph{\textbackslash{}GTSnegatedInIncidenceRelation,
% \textbackslash{}GTSnegInIncRel,
% \textbackslash{}GTSnIIR}
%
% \DescribeMacro[noprint]{\GTSnegatedInIncidenceRelation}
% \DescribeMacro[noprint]{\GTSnegInIncRel}
% \DescribeMacro[noprint]{\GTSnIIR}
% This macro will draw a negated directed incidence downward
% (in(ward) incidence) symbol with relation spacing in math mode.\\
% \usageExampleIncRelIII{GTSnegatedInIncidenceRelation}{GTSnegInIncRel}%
% {GTSnIIR}
%
%
% \subsubsection{Monochrome adjacency macros}
%
% \paragraph{\textbackslash{}GTSadjacencyMonochrome,
% \textbackslash{}GTSadjMono,
% \textbackslash{}GTSadjMon,
% \textbackslash{}GTSaM}
%
% \DescribeMacro[noprint]{\GTSadjacencyMonochrome}
% \DescribeMacro[noprint]{\GTSadjMono}
% \DescribeMacro[noprint]{\GTSadjMon}
% \DescribeMacro[noprint]{\GTSaM}
% This macro will draw a monochrome adjacency symbol.\\
% \usageExampleAdjIV{GTSadjacencyMonochrome}{GTSadjMono}{GTSadjMon}{GTSaM}
%
% \paragraph{\textbackslash{}GTSadjacencyMonochromeRelation,
% \textbackslash{}GTSadjMonoRel,
% \textbackslash{}GTSadjMonRel,
% \textbackslash{}GTSaMR}
%
% \DescribeMacro[noprint]{\GTSadjacencyMonochromeRelation}
% \DescribeMacro[noprint]{\GTSadjMonoRel}
% \DescribeMacro[noprint]{\GTSadjMonRel}
% \DescribeMacro[noprint]{\GTSaMR}
% This macro will draw a monochrome adjacency symbol with relation spacing
% in math mode.\\
% \usageExampleAdjRelIV{GTSadjacencyMonochromeRelation}{GTSadjMonoRel}%
% {GTSadjMonRel}{GTSaMR}
%
% \paragraph{\textbackslash{}GTSunadjacencyMonochrome,
% \textbackslash{}GTSunadjMono,
% \textbackslash{}GTSunadjMon,
% \textbackslash{}GTSuM}
%
% \DescribeMacro[noprint]{\GTSunadjacencyMonochrome}
% \DescribeMacro[noprint]{\GTSunadjMono}
% \DescribeMacro[noprint]{\GTSunadjMon}
% \DescribeMacro[noprint]{\GTSuM}
% This macro will draw a monochrome unadjacency symbol.\\
% \usageExampleAdjIV{GTSunadjacencyMonochrome}{GTSunadjMono}{GTSunadjMon}%
% {GTSuM}
%
% \paragraph{\textbackslash{}GTSunadjacencyMonochromeRelation,
% \textbackslash{}GTSunadjMonoRel,
% \textbackslash{}GTSunadjMonRel,
% \textbackslash{}GTSuMR}
%
% \DescribeMacro[noprint]{\GTSunadjacencyMonochromeRelation}
% \DescribeMacro[noprint]{\GTSunadjMonoRel}
% \DescribeMacro[noprint]{\GTSunadjMonRel}
% \DescribeMacro[noprint]{\GTSuMR}
% This macro will draw a monochrome unadjacency symbol
% with relation spacing in math mode.\\
% \usageExampleAdjRelIV{GTSunadjacencyMonochromeRelation}{GTSunadjMonoRel}%
% {GTSunadjMonRel}{GTSuMR}
%
% \paragraph{\textbackslash{}GTSdirectedAdjacencyUpMonochrome,
% \textbackslash{}GTSdirAdjUpMono,
% \textbackslash{}GTSdirAdjUpMon,
% \textbackslash{}GTSdAUM}
%
% \DescribeMacro[noprint]{\GTSdirectedAdjacencyUpMonochrome}
% \DescribeMacro[noprint]{\GTSdirAdjUpMono}
% \DescribeMacro[noprint]{\GTSdirAdjUpMon}
% \DescribeMacro[noprint]{\GTSdAUM}
% This macro will draw a monochrome directed adjacency upward symbol.
% The operand on the left of the symbol should be considered the source
% of the arc;
% the operand on the right of the symbol should be considered the target
% of the arc.\\
% \usageExampleAdjIV{GTSdirectedAdjacencyUpMonochrome}{GTSdirAdjUpMono}%
% {GTSdirAdjUpMon}{GTSdAUM}
%
% \paragraph{\textbackslash{}GTSdirectedAdjacencyUpMonochromeRelation,
% \textbackslash{}GTSdirAdjUpMonoRel,
% \textbackslash{}GTSdirAdjUpMonRel,
% \textbackslash{}GTSdAUMR}
%
% \DescribeMacro[noprint]{\GTSdirectedAdjacencyUpMonochromeRelation}
% \DescribeMacro[noprint]{\GTSdirAdjUpMonoRel}
% \DescribeMacro[noprint]{\GTSdirAdjUpMonRel}
% \DescribeMacro[noprint]{\GTSdAUMR}
% This macro will draw a monochrome directed adjacency upward symbol
% with relation spacing in math mode.\\
% \usageExampleAdjRelIV{GTSdirectedAdjacencyUpMonochromeRelation}%
% {GTSdirAdjUpMonoRel}{GTSdirAdjUpMonRel}{GTSdAUMR}
%
% \paragraph{\textbackslash{}GTSnegatedDirectedAdjacencyUpMonochrome,
% \textbackslash{}GTSnegDirAdjUpMono,
% \textbackslash{}GTSnegDirAdjUpMon,
% \textbackslash{}GTSnDAUM}
%
% \DescribeMacro[noprint]{\GTSnegatedDirectedAdjacencyUpMonochrome}
% \DescribeMacro[noprint]{\GTSnegDirAdjUpMono}
% \DescribeMacro[noprint]{\GTSnegDirAdjUpMon}
% \DescribeMacro[noprint]{\GTSnDAUM}
% This macro will draw a
% monochrome negated directed adjacency upward symbol.\\
% \usageExampleAdjIV{GTSnegatedDirectedAdjacencyUpMonochrome}%
% {GTSnegDirAdjUpMono}{GTSnegDirAdjUpMon}{GTSnDAUM}
%
% \def\textbs{\textbackslash}
% \paragraph{\textbs{}GTSnegatedDirectedAdjacencyUpMonochromeRelation,
% \textbackslash{}GTSnegDirAdjUpMonoRel,
% \textbackslash{}GTSnegDirAdjUpMonRel,
% \textbackslash{}GTSnDAUMR}
%
% \DescribeMacro[noprint]{\GTSnegatedDirectedAdjacencyUpMonochromeRelation}
% \DescribeMacro[noprint]{\GTSnegDirAdjUpMonoRel}
% \DescribeMacro[noprint]{\GTSnegDirAdjUpMonRel}
% \DescribeMacro[noprint]{\GTSnDAUMR}
% This macro will draw a
% monochrome negated directed adjacency upward symbol
% with relation spacing in math mode.\\
% \usageExampleAdjRelIV{GTSnegatedDirectedAdjacencyUpMonochromeRelation}%
% {GTSnegDirAdjUpMonoRel}{GTSnegDirAdjUpMonRel}{GTSnDAUMR}
%
% \paragraph{\textbackslash{}GTSdirectedAdjacencyDownMonochrome,
% \textbackslash{}GTSdirAdjDownMono,
% \textbackslash{}GTSdirAdjDownMon,
% \textbackslash{}GTSdADM}
%
% \DescribeMacro[noprint]{\GTSdirectedAdjacencyDownMonochrome}
% \DescribeMacro[noprint]{\GTSdirAdjDownMono}
% \DescribeMacro[noprint]{\GTSdirAdjDownMon}
% \DescribeMacro[noprint]{\GTSdADM}
% This macro will draw a monochrome directed adjacency downward symbol.
% The operand on the left of the symbol should be considered the target
% of the arc;
% the operand on the right of the symbol should be considered the source
% of the arc.\\
% \usageExampleAdjIV{GTSdirectedAdjacencyDownMonochrome}%
% {GTSdirAdjDownMono}{GTSdirAdjDownMon}{GTSdADM}
%
% \paragraph{\textbackslash{}GTSdirectedAdjacencyDownMonochromeRelation,
% \textbackslash{}GTSdirAdjDownMonoRel,
% \textbackslash{}GTSdirAdjDownMonRel,
% \textbackslash{}GTSdADMR}
%
% \DescribeMacro[noprint]{\GTSdirectedAdjacencyDownMonochromeRelation}
% \DescribeMacro[noprint]{\GTSdirAdjDownMonoRel}
% \DescribeMacro[noprint]{\GTSdirAdjDownMonRel}
% \DescribeMacro[noprint]{\GTSdADMR}
% This macro will draw a monochrome directed adjacency downward symbol
% with relation spacing in math mode.\\
% \usageExampleAdjRelIV{GTSdirectedAdjacencyDownMonochromeRelation}%
% {GTSdirAdjDownMonoRel}{GTSdirAdjDownMonRel}{GTSdADMR}
%
% \paragraph{\textbackslash{}GTSnegatedDirectedAdjacencyDownMonochrome,
% \textbackslash{}GTSnegDirAdjDownMono,
% \textbackslash{}GTSnegDirAdjDownMon,
% \textbackslash{}GTSnDADM}
%
% \DescribeMacro[noprint]{\GTSnegatedDirectedAdjacencyDownMonochrome}
% \DescribeMacro[noprint]{\GTSnegDirAdjDownMono}
% \DescribeMacro[noprint]{\GTSnegDirAdjDownMon}
% \DescribeMacro[noprint]{\GTSnDADM}
% This macro will draw a
% monochrome negated directed adjacency downward symbol.\\
% \usageExampleAdjIV{GTSnegatedDirectedAdjacencyDownMonochrome}%
% {GTSnegDirAdjDownMono}{GTSnegDirAdjDownMon}{GTSnDADM}
%
% \paragraph{\textbs{}GTSnegatedDirectedAdjacencyDownMonochromeRelation,
% \textbackslash{}GTSnegDirAdjDownMonoRel,
% \textbackslash{}GTSnegDirAdjDownMonRel,
% \textbackslash{}GTSnDADMR}
%
% \DescribeMacro[noprint]%
% {\GTSnegatedDirectedAdjacencyDownMonochromeRelation}
% \DescribeMacro[noprint]{\GTSnegDirAdjDownMonoRel}
% \DescribeMacro[noprint]{\GTSnegDirAdjDownMonRel}
% \DescribeMacro[noprint]{\GTSnDADMR}
% This macro will draw a
% monochrome negated directed adjacency downward symbol
% with relation spacing in math mode.\\
% \usageExampleAdjRelIV{GTSnegatedDirectedAdjacencyDownMonochromeRelation}%
% {GTSnegDirAdjDownMonoRel}{GTSnegDirAdjDownMonRel}{GTSnDADMR}
%
%
% \subsubsection{Monochrome incidence macros}
%
% \paragraph{\textbackslash{}GTSincidenceMonochrome,
% \textbackslash{}GTSincMono,
% \textbackslash{}GTSincMon,
% \textbackslash{}GTSiM}
%
% \DescribeMacro[noprint]{\GTSincidenceMonochrome}
% \DescribeMacro[noprint]{\GTSincMono}
% \DescribeMacro[noprint]{\GTSincMon}
% \DescribeMacro[noprint]{\GTSiM}
% This macro will draw a monochrome incidence symbol.
% The operand on the left of the symbol should be considered the vertex
% to which the edge/the operand on the right of the symbol is incident.\\
% \usageExampleIncIV{GTSincidenceMonochrome}{GTSincMono}{GTSincMon}{GTSiM}
%
% \paragraph{\textbackslash{}GTSincidenceMonochromeRelation,
% \textbackslash{}GTSincMonoRel,
% \textbackslash{}GTSincMonRel,
% \textbackslash{}GTSiMR}
%
% \DescribeMacro[noprint]{\GTSincidenceMonochromeRelation}
% \DescribeMacro[noprint]{\GTSincMonoRel}
% \DescribeMacro[noprint]{\GTSincMonRel}
% \DescribeMacro[noprint]{\GTSiMR}
% This macro will draw a monochrome incidence symbol
% with relation spacing in math mode.\\
% \usageExampleIncRelIV{GTSincidenceMonochromeRelation}{GTSincMonoRel}%
% {GTSincMonRel}{GTSiMR}
%
% \paragraph{\textbackslash{}GTSnegatedIncidenceMonochrome,
% \textbackslash{}GTSnegIncMono,
% \textbackslash{}GTSnegIncMon,
% \textbackslash{}GTSnIM}
%
% \DescribeMacro[noprint]{\GTSnegatedIncidenceMonochrome}
% \DescribeMacro[noprint]{\GTSnegIncMono}
% \DescribeMacro[noprint]{\GTSnegIncMon}
% \DescribeMacro[noprint]{\GTSnIM}
% This macro will draw a monochrome negated incidence symbol.\\
% \usageExampleIncIV{GTSnegatedIncidenceMonochrome}{GTSnegIncMono}%
% {GTSnegIncMon}{GTSnIM}
%
% \paragraph{\textbackslash{}GTSnegatedIncidenceMonochromeRelation,
% \textbackslash{}GTSnegIncMonoRel,
% \textbackslash{}GTSnegIncMonRel,
% \textbackslash{}GTSnIMR}
%
% \DescribeMacro[noprint]{\GTSnegatedIncidenceMonochromeRelation}
% \DescribeMacro[noprint]{\GTSnegIncMonoRel}
% \DescribeMacro[noprint]{\GTSnegIncMonRel}
% \DescribeMacro[noprint]{\GTSnIMR}
% This macro will draw a monochrome negated incidence symbol
% with relation spacing in math mode.\\
% \usageExampleIncRelIV{GTSnegatedIncidenceMonochromeRelation}%
% {GTSnegIncMonoRel}{GTSnegIncMonRel}{GTSnIMR}
%
% \paragraph{\textbackslash{}GTSoutIncidenceMonochrome,
% \textbackslash{}GTSoutIncMono,
% \textbackslash{}GTSoutIncMon,
% \textbackslash{}GTSoIM}
%
% \DescribeMacro[noprint]{\GTSoutIncidenceMonochrome}
% \DescribeMacro[noprint]{\GTSoutIncMono}
% \DescribeMacro[noprint]{\GTSoutIncMon}
% \DescribeMacro[noprint]{\GTSoIM}
% This macro will draw a
% monochrome directed incidence upward (out(ward) incidence) symbol.
% The operand on the left of the symbol should be considered the vertex
% to which the arc/the operand on the right of the symbol is incident.\\
% \usageExampleIncIV{GTSoutIncidenceMonochrome}{GTSoutIncMono}%
% {GTSoutIncMon}{GTSoIM}
%
% \paragraph{\textbackslash{}GTSoutIncidenceMonochromeRelation,
% \textbackslash{}GTSoutIncMonoRel,
% \textbackslash{}GTSoutIncMonRel,
% \textbackslash{}GTSoIMR}
%
% \DescribeMacro[noprint]{\GTSoutIncidenceMonochromeRelation}
% \DescribeMacro[noprint]{\GTSoutIncMonoRel}
% \DescribeMacro[noprint]{\GTSoutIncMonRel}
% \DescribeMacro[noprint]{\GTSoIMR}
% This macro will draw a monochrome directed incidence upward
% (out(ward) incidence) symbol with relation spacing in math mode.\\
% \usageExampleIncRelIV{GTSoutIncidenceMonochromeRelation}%
% {GTSoutIncMonoRel}{GTSoutIncMonRel}{GTSoIMR}
%
% \paragraph{\textbackslash{}GTSnegatedOutIncidenceMonochrome,
% \textbackslash{}GTSnegOutIncMono,
% \textbackslash{}GTSnegOutIncMon,
% \textbackslash{}GTSnOIM}
%
% \DescribeMacro[noprint]{\GTSnegatedOutIncidenceMonochrome}
% \DescribeMacro[noprint]{\GTSnegOutIncMono}
% \DescribeMacro[noprint]{\GTSnegOutIncMon}
% \DescribeMacro[noprint]{\GTSnOIM}
% This macro will draw a monochrome negated directed incidence upward
% (out(ward) incidence) symbol.\\
% \usageExampleIncIV{GTSnegatedOutIncidenceMonochrome}{GTSnegOutIncMono}%
% {GTSnegOutIncMon}{GTSnOIM}
%
% \paragraph{\textbackslash{}GTSnegatedOutIncidenceMonochromeRelation,
% \textbackslash{}GTSnegOutIncMonoRel,
% \textbackslash{}GTSnegOutIncMonRel,
% \textbackslash{}GTSnOIMR}
%
% \DescribeMacro[noprint]{\GTSnegatedOutIncidenceMonochromeRelation}
% \DescribeMacro[noprint]{\GTSnegOutIncMonoRel}
% \DescribeMacro[noprint]{\GTSnegOutIncMonRel}
% \DescribeMacro[noprint]{\GTSnOIMR}
% This macro will draw a monochrome negated directed incidence upward
% (out(ward) incidence) symbol with relation spacing in math mode.\\
% \usageExampleIncRelIV{GTSnegatedOutIncidenceMonochromeRelation}%
% {GTSnegOutIncMonoRel}{GTSnegOutIncMonRel}{GTSnOIMR}
%
% \paragraph{\textbackslash{}GTSinIncidenceMonochrome,
% \textbackslash{}GTSinIncMono,
% \textbackslash{}GTSinIncMon,
% \textbackslash{}GTSiIM}
%
% \DescribeMacro[noprint]{\GTSinIncidenceMonochrome}
% \DescribeMacro[noprint]{\GTSinIncMono}
% \DescribeMacro[noprint]{\GTSinIncMon}
% \DescribeMacro[noprint]{\GTSiIM}
% This macro will draw a monochrome directed incidence downward
% (in(ward) incidence) symbol.
% The operand on the left of the symbol should be considered the vertex
% to which the arc/the operand on the right of the symbol is incident.\\
% \usageExampleIncIV{GTSinIncidenceMonochrome}{GTSinIncMono}{GTSinIncMon}%
% {GTSiIM}
%
% \paragraph{\textbackslash{}GTSinIncidenceMonochromeRelation,
% \textbackslash{}GTSinIncMonoRel,
% \textbackslash{}GTSinIncMonRel,
% \textbackslash{}GTSiIMR}
%
% \DescribeMacro[noprint]{\GTSinIncidenceMonochromeRelation}
% \DescribeMacro[noprint]{\GTSinIncMonoRel}
% \DescribeMacro[noprint]{\GTSinIncMonRel}
% \DescribeMacro[noprint]{\GTSiIMR}
% This macro will draw a monochrome directed incidence downward
% (in(ward) incidence) symbol with relation spacing in math mode.\\
% \usageExampleIncRelIV{GTSinIncidenceMonochromeRelation}{GTSinIncMonoRel}%
% {GTSinIncMonRel}{GTSiIMR}
%
% \paragraph{\textbackslash{}GTSnegatedInIncidenceMonochrome,
% \textbackslash{}GTSnegInIncMono,
% \textbackslash{}GTSnegInIncMon,
% \textbackslash{}GTSnIIM}
%
% \DescribeMacro[noprint]{\GTSnegatedInIncidenceMonochrome}
% \DescribeMacro[noprint]{\GTSnegInIncMono}
% \DescribeMacro[noprint]{\GTSnegInIncMon}
% \DescribeMacro[noprint]{\GTSnIIM}
% This macro will draw a monochrome negated directed incidence downward
% (in(ward) incidence) symbol.\\
% \usageExampleIncIV{GTSnegatedInIncidenceMonochrome}{GTSnegInIncMono}%
% {GTSnegInIncMon}{GTSnIIM}
%
% \paragraph{\textbackslash{}GTSnegatedInIncidenceMonochromeRelation,
% \textbackslash{}GTSnegInIncMonoRel,
% \textbackslash{}GTSnegInIncMonRel,
% \textbackslash{}GTSnIIMR}
%
% \DescribeMacro[noprint]{\GTSnegatedInIncidenceMonochromeRelation}
% \DescribeMacro[noprint]{\GTSnegInIncMonoRel}
% \DescribeMacro[noprint]{\GTSnegInIncMonRel}
% \DescribeMacro[noprint]{\GTSnIIMR}
% This macro will draw a monochrome negated directed incidence downward
% (in(ward) incidence) symbol with relation spacing in math mode.\\
% \usageExampleIncRelIV{GTSnegatedInIncidenceMonochromeRelation}%
% {GTSnegInIncMonoRel}{GTSnegInIncMonRel}{GTSnIIMR}
%
%
% \subsubsection{Meta-logic macros}
%
% \paragraph{\textbackslash{}GTSmetaNot, \textbackslash{}GTSmN}
%
% \DescribeMacro[noprint]{\GTSmetaNot}
% \DescribeMacro[noprint]{\GTSmN}
% This macro will draw a meta-not or relation-not symbol.\\
% |A.\GTSmetaNot/A.|\\
% or |A.\GTSmN/A.|\\
% will yield A.\GTSmN/A.\\
% |u \GTSmetaNot/\GTSdAU/ v|\\
% or |u \GTSmN/\GTSdAU/ v|\\
% will yield u \GTSmN/\GTSdAU/ v.\\
% |$u \GTSmetaNot/ \GTSdAU/ v$|\\
% or |$u \GTSmN/ \GTSdAU/ v$|\\
% will yield $u \GTSmN/ \GTSdAU/ v$.
%
% \paragraph{\textbackslash{}GTSmetaAnd, \textbackslash{}GTSmA}
%
% \DescribeMacro[noprint]{\GTSmetaAnd}
% \DescribeMacro[noprint]{\GTSmA}
% This macro will draw a meta-and or relations-and symbol.
% This is your duty to check that all relations have same arity.
% It should be easy as long as you remain in the realm of
% graphs/2-structures/binary structures.
% We didn't use Tarski's notation,
% since square cup has taken the preemptive meaning of disjoint union.
% Similarly, doublewedge or other wedge symbols have taken
% various meanings,
% whilst we want an unambiguous symbol.\\
% Look at the discussion after all logical symbols for less trivial uses
% and recommendations.\\
% |A.\GTSmetaAnd/A.|\\
% or |A.\GTSmA/A.|\\
% will yield A.\GTSmA/A.\\
% |u \GTSdAD/\GTSmetaAnd/\GTSdAU/ v|\\
% or |u \GTSdAD/\GTSmA/\GTSdAU/ v|\\
% will yield u \GTSdAD/\GTSmA/\GTSdAU/ v.\\
% |$u \GTSdAD/ \GTSmetaAnd/ \GTSdAU/ v$|\\
% or |$u \GTSdAD/ \GTSmA/ \GTSdAU/ v$|\\
% will yield $u \GTSdAD/ \GTSmA/ \GTSdAU/ v$.
%
% \paragraph{\textbackslash{}GTSmetaAndRelation,
% \textbackslash{}GTSmetaAndRel,
% \textbackslash{}GTSmAR}
%
% \DescribeMacro[noprint]{\GTSmetaAndRelation}
% \DescribeMacro[noprint]{\GTSmetaAndRel}
% \DescribeMacro[noprint]{\GTSmAR}
% This macro will draw a meta-and symbol with relation spacing
% in math mode.\\
% |$u \GTSdAD/\GTSmetaAndRelation/\GTSdAU/ v$|\\
% or |$u \GTSdAD/\GTSmetaAndRel/\GTSdAU/ v$|\\
% or |$u \GTSdAD/\GTSmAR/\GTSdAU/ v$|\\
% will yield $u \GTSdAD/\GTSmAR/\GTSdAU/ v$.
%
% \paragraph{\textbackslash{}GTSmetaOr, \textbackslash{}GTSmO}
%
% \DescribeMacro[noprint]{\GTSmetaOr}
% \DescribeMacro[noprint]{\GTSmO}
% This macro will draw a meta-or or relations-or symbol.
% This is your duty to check that all relations have same arity.
% It should be easy as long as you remain in the realm of
% graphs/2-structures/binary structures.
% We didn't use Tarski's notation,
% since square cup has taken the preemptive meaning of disjoint union.
% Similarly, doublewedge or other wedge symbols have taken
% various meanings,
% whilst we want an unambiguous symbol.\\
% Look at the discussion after all logical symbols for less trivial uses
% and recommendations.\\
% |A.\GTSmetaOr/A.|\\
% or |A.\GTSmO/A.|\\
% will yield A.\GTSmO/A.\\
% |u \GTSdAD/\GTSmetaOr/\GTSdAU/ v|\\
% or |u \GTSdAD/\GTSmO/\GTSdAU/ v|\\
% will yield u \GTSdAD/\GTSmO/\GTSdAU/ v.\\
% |$u \GTSdAD/ \GTSmetaOr/ \GTSdAU/ v$|\\
% or |$u \GTSdAD/ \GTSmO/ \GTSdAU/ v$|\\
% will yield $u \GTSdAD/ \GTSmO/ \GTSdAU/ v$.
%
% \paragraph{\textbackslash{}GTSmetaOrRelation,
% \textbackslash{}GTSmetaOrRel,
% \textbackslash{}GTSmOR}
%
% \DescribeMacro[noprint]{\GTSmetaOrRelation}
% \DescribeMacro[noprint]{\GTSmetaOrRel}
% \DescribeMacro[noprint]{\GTSmOR}
% This macro will draw a meta-or symbol with relation spacing
% in math mode.\\
% |$u \GTSdAD/\GTSmetaOrRelation/\GTSdAU/ v$|\\
% or |$u \GTSdAD/\GTSmetaOrRel/\GTSdAU/ v$|\\
% or |$u \GTSdAD/\GTSmOR/\GTSdAU/ v$|\\
% will yield $u \GTSdAD/\GTSmOR/\GTSdAU/ v$.
%
% \paragraph{\textbackslash{}GTSxmetalogic, \textbackslash{}GTSxml}
%
% \DescribeMacro[noprint]{\GTSxmetalogic}
% \DescribeMacro[noprint]{\GTSxml}
% Versatile macros for meta-logic symbols that can be given options.\\
% Argument:\\
% \oarg{optionsList} Sets the following options if not empty:\\
% |not| or |n|,\\
% |and| or |a|,\\
% |or| or |o|,\\
% |relation| or |rel| or |r|.\\
% Of course first three options are incompatible,
% and the fourth is compatible only with the second and third options.
%
% \paragraph{\textbackslash{}GTSx}
%
% \DescribeMacro[noprint]{\GTSx}
% One macro to rule them all.
% Versatile macro for all symbols that can be given options,
% and a symbol type mandatory switch.\\
% Argument:\\
% \oarg{optionsList} Sets the following options if not empty:\\
% \begin{itemize}
% \item If \marg{symbolType} below is |a|, see \cs{GTSxa}:\\
% |mainColor=color1| or |mainC=color1| or |mColor=color1| or |mC=color1|,\\
% |secondColor=color2| or |secondC=color2| or |sColor=color2|
% or |sC=color2|,\\
% |monochrome| or |mono| or |mon| or |m|
% (equivalent to |mC=black,sC=black|),\\
% |negated| or |not| or |n|,\\
% |up| or |u|,\\
% |down| or |d|,\\
% |relation| or |rel| or |r|.
% \item If \marg{symbolType} below is |i|, see \cs{GTSxi}:\\
% |mainColor=color1| or |mainC=color1| or |mColor=color1| or |mC=color1|,\\
% |secondColor=color2| or |secondC=color2| or |sColor=color2|
% or |sC=color2|,\\
% |monochrome| or |mono| or |mon| or |m|
% (equivalent to |mC=black,sC=black|),\\
% |negated| or |not| or |n|,\\
% |in| or |i|,\\
% |out| or |o|,\\
% |relation| or |rel| or |r|.
% \item If \marg{symbolType} below is |m|, see \cs{GTSxml}:\\
% |not| or |n|,\\
% |and| or |a|,\\
% |or| or |o|,\\
% |relation| or |rel| or |r|.
% \end{itemize}
% \marg{symbolType} a mandatory switch;
% it can take value |a| for adjacency, |i| for incidence,
% |m| for meta-logic.
%
% \subsection{Good practices}
%
% As is customary in algebra and logic, the conjunction/multiplication
% can be replaced by concatenation,
% and has higher priority than disjunction.
% So the following formulas are equivalent;
% we recommend using the shortest one:\\
% Tournament adjacency:\\
% $\forall u,v, u \mathrel{\GTSdAD/\GTSnDAU/\GTSmO/\GTSnDAD/\GTSdAU/} v$\\
% is prefered over\\
% $\forall u,v,
% u \mathrel{\GTSdAD/\GTSmA/\GTSnDAU/\GTSmO/\GTSnDAD/\GTSmA/\GTSdAU/} v$,\\
% or $\forall u,v, u
% \mathrel{(\GTSdAD/\GTSmA/\GTSnDAU/)\GTSmO/(\GTSnDAD/\GTSmA/\GTSdAU/)}
% v$,\\
% or even $\forall u,v,
% ((u \GTSdADR/ v) \land (u \GTSnDAUR/ v))
% \lor ((u \GTSnDADR/ v) \land (u\GTSdAUR/ v))$.\\
% Note the use of macros without Relation suffix above, and adding a single
% |\mathrel{}| around the composition of all relations:\\
% |\mathrel{\GTSdAD/\GTSnDAU/\GTSmO/\GTSnDAD/\GTSdAU/}|.\\
% This is the spacing practice that we recommend,
% although for very long compositions, it may be quite unreadable,
% and then spacing everything with Relation could/should be prefered.
%
% We also recommend using brackets when the composition reflects all of the
% adjacencies between two vertices:\\
% Tournament adjacency:\\
% $\forall u,v,
% u \mathrel{[\GTSdAD/\GTSnDAU/\GTSmO/\GTSnDAD/\GTSdAU/]} v$.\\
% Tournament adjacency with maybe some colored edge also, who knows?:\\
% $\forall u,v,
% u \mathrel{\GTSdAD/\GTSnDAU/\GTSmO/\GTSnDAD/\GTSdAU/} v$.\\
% Directed graph:\\
% $\forall u,v,
% u \mathrel{[\GTSdAD/\GTSnDAU/\GTSmO/\GTSnDAD/\GTSdAU/
% \GTSmO/\GTSdAD/\GTSdAU/\GTSmO/\GTSnDAD/\GTSnDAU/]} v$.\\
% Oriented graph:\\
% $\forall u,v,
% u \mathrel{[\GTSdAD/\GTSnDAU/\GTSmO/\GTSnDAD/\GTSdAU/
% \GTSmO/\GTSnDAD/\GTSnDAU/]} v$.
%
% Finally, we recommend prefix notation without ``big'' symbol for a
% sequence of consecutive ors or ands (with parentheses if needed):\\
% $\exists u,v, u
% \mathrel{[\GTSmO/\GTSxa[mC=red,d]\GTSxa[mC=green,d]\GTSxa[mC=blue,u]]}
% v$.\\
% $\exists v,e, v
% \mathrel{[\GTSmO/\GTSxi[mC=red,i]\GTSxi[mC=green,i]\GTSxi[mC=blue,o]]}
% e$.
%
% \MaybeStop{^^A
% \PrintChanges
% \PrintIndex
% }
% \section{Implementation}
%
% \def\paragraphII#1{\textbf{#1}\ \ }
%
%    \begin{macrocode}
%<*package>
\RequirePackage{amsmath}
\RequirePackage{amssymb}
\RequirePackage{graphicx}
\RequirePackage{keyval}
\RequirePackage{fdsymbol}
\RequirePackage{lua-unicode-math}
\RequirePackage{xcolor}

\def\GTS@mainColor{black}
\def\GTS@secondColor{gray}
\def\GTS@mainColorBackup{black}
\def\GTS@secondColorBackup{gray}
\def\GTS@drawSlash{}
\def\GTS@drawUpArrow{}
\def\GTS@drawDownArrow{}

%    \end{macrocode}
% \begin{macro}[noprint]{\GTS@newcommand}
% \paragraphII{\textbackslash{}GTS@newcommand}
% This macro will enforce that the other macros are called with a trailing
% slash, avoiding problems with spaces after macro call.\\
% Arguments:\\
% \marg{commandname} The name of the command to create.\\
% \marg{commandcode} The code of the command to create.
%    \begin{macrocode}
\@ifdefinable{\GTS@newcommand}{\def\GTS@newcommand#1#2{%
  \@ifdefinable{#1}{\def#1/{#2}}
}}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}[noprint]{\GTS@newprotectedcommand}
% \paragraphII{\textbackslash{}GTS@newprotectedcommand}
% This macro will enforce that the other macros are called with a trailing
% slash, avoiding problems with spaces after macro call.\\
% Arguments:\\
% \marg{commandname} The name of the command to create.\\
% \marg{commandcode} The code of the command to create.
%    \begin{macrocode}
\@ifdefinable{\GTS@newprotectedcommand}{\def\GTS@newprotectedcommand#1#2{%
  \@ifdefinable{#1}{\protected\def#1/{#2}}
}}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}[noprint]{\GTSsetMainColor}
% \paragraphII{\textbackslash{}GTSsetMainColor}
% This macro will set the main color used in GraphTheorySymbol.
% This color has initial value ``black''.\\
% Argument:\\
% \marg{color} The color that must be used by GraphTheorySymbol afterward.
%    \begin{macrocode}
\newcommand{\GTSsetMainColor}[1]{%
\edef\GTS@mainColorTemp{#1}%
\edef\GTS@mainColorBackup{\GTS@mainColor}%
\edef\GTS@mainColor{\GTS@mainColorTemp}%
}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}[noprint]{\GTSsetSecondColor}
% \paragraphII{\textbackslash{}GTSsetSecondColor}
% This macro will set the second color used in GraphTheorySymbol.
% This color has initial value ``gray''.\\
% Argument:\\
% \marg{color} The color that must be used by GraphTheorySymbol afterward.
%    \begin{macrocode}
\newcommand{\GTSsetSecondColor}[1]{%
\edef\GTS@secondColorTemp{#1}%
\edef\GTS@secondColorBackup{\GTS@secondColor}%
\edef\GTS@secondColor{\GTS@secondColorTemp}%
}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}[noprint]{\GTS@a}
% \paragraphII{\textbackslash{}GTS@a}
% This macro will draw any adjacency symbol given the correct parameters.
% Its use is purely technical.
% See the macros derived from it and \cs{GTS@b}: \cs{GTSxadjacency},
% \cs{GTSxadj}, and \cs{GTSxa}.\\
% Arguments:\\
% \marg{mainColor} If non-empty, this color will be used as main color.\\
% \marg{secondColor} If non-empty, this color will be used as second
% color.\\
% \marg{drawSlash} Non-empty implies that a negation will be drawn.\\
% \marg{drawUpArrow} Non-empty implies that an up-arrow will be drawn.\\
% \marg{drawDownArrow} Non-empty implies that a down-arrow will be drawn.
%    \begin{macrocode}
\newcommand{\GTS@a}[5]{%
\if#1\empty\else%
\GTSsetMainColor{#1}%
\fi%
\if#2\empty\else%
\GTSsetSecondColor{#2}%
\fi%
\text{\ensuremath{%
\raisebox{-0.32ex}{\scalebox{1.5}[1.5]{%
%
\raisebox{0.7ex}{\scalebox{0.7}[0.7]{%
$\mathcolor{\GTS@secondColor}{\circ}$%
}}%
\hspace{-0.39ex}%
\raisebox{1.05ex}{\scalebox{0.1}[0.1]{%
$\mathcolor{\GTS@secondColor}{\bullet}$%
}}%
\hspace{-0.12ex}%
\raisebox{0.11ex}{\scalebox{0.1}[0.73]{%
$\mathcolor{\GTS@mainColor}{\smallblacksquare}$%
}}%
\hspace{-0.40ex}%
\raisebox{-0.3ex}{\scalebox{0.7}[0.7]{%
$\mathcolor{\GTS@secondColor}{\circ}$%
}}%
\hspace{-0.39ex}%
\raisebox{0.05ex}{\scalebox{0.1}[0.1]{%
$\mathcolor{\GTS@secondColor}{\bullet}$%
}}%
\hspace{0.27ex}%
%    \end{macrocode}
% if GTS@drawUpArrow empty else
%    \begin{macrocode}
\if#4\empty\else%
\hspace{-0.65ex}%
\raisebox{-0.18ex}{\scalebox{0.5}[0.5]{%
\textcolor{\GTS@mainColor}{\textasciicircum}%
}}%
\fi%
%    \end{macrocode}
% if GTS@drawDownArrow empty else
%    \begin{macrocode}
\if#5\empty\else%
\hspace{-0.65ex}%
\raisebox{1.37ex}{\scalebox{0.5}[-0.5]{%
\textcolor{\GTS@mainColor}{\textasciicircum}%
}}%
\fi%
%    \end{macrocode}
% if GTS@drawSlash empty else
%    \begin{macrocode}
\if#3\empty\else%
\hspace{-0.65ex}%
\raisebox{0.25ex}{\scalebox{0.6}[0.6]{%
\textcolor{black}{/}%
}}%
\fi%
%
}}%
}}%
\if#1\empty\else%
\GTSsetMainColor{\GTS@mainColorBackup}%
\fi%
\if#2\empty\else%
\GTSsetSecondColor{\GTS@secondColorBackup}%
\fi%
}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}[noprint]{\GTS@b}
% \paragraphII{\textbackslash{}GTS@b}
% This macro will handle wrapping in mathematical relation spacing
% if needed.
% Its use is purely technical.
% See the macros derived from it and \cs{GTS@a}: \cs{GTSxadjacency},
% \cs{GTSxadj}, and \cs{GTSxa}.\\
% Arguments:\\
% \marg{mainColor} If non-empty, this color will be used as main color.\\
% \marg{secondColor} If non-empty, this color will be used as second
% color.\\
% \marg{drawSlash} Non-empty implies that a negation will be drawn.\\
% \marg{drawUpArrow} Non-empty implies that an up-arrow will be drawn.\\
% \marg{drawDownArrow} Non-empty implies that a down-arrow will be drawn.\\
% \marg{relation} Non-empty implies that relation spacing will be added.
%    \begin{macrocode}
\newcommand{\GTS@b}[6]{%
\if#61%
\mathrel{\GTS@a{#1}{#2}{#3}{#4}{#5}}%
\else%
\GTS@a{#1}{#2}{#3}{#4}{#5}%
\fi%
}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}[noprint]{\GTSxa,\GTSxadj,\GTSxadjacency}
% \paragraphII{\textbackslash{}GTSxadjacency,
% \textbackslash{}GTSxadj,
% \textbackslash{}GTSxa}
% Versatile macros for adjacency that can be given options.\\
% Argument:\\
% \oarg{optionsList} Sets the following options if not empty:\\
% |mainColor=color1| or |mainC=color1| or |mColor=color1| or |mC=color1|,\\
% |secondColor=color2| or |secondC=color2| or |sColor=color2|
% or |sC=color2|,\\
% |monochrome| or |mono| or |mon| or |m|
% (equivalent to |mC=black,sC=black|),\\
% |negated| or |not| or |n|,\\
% |up| or |u|,\\
% |down| or |d|,\\
% |relation| or |rel| or |r|.
%    \begin{macrocode}
\define@key{GTSxa}{mainColor}{\def\GTS@@mainColor{#1}}
\define@key{GTSxa}{mainC}{\def\GTS@@mainColor{#1}}
\define@key{GTSxa}{mColor}{\def\GTS@@mainColor{#1}}
\define@key{GTSxa}{mC}{\def\GTS@@mainColor{#1}}
\define@key{GTSxa}{secondColor}{\def\GTS@@secondColor{#1}}
\define@key{GTSxa}{secondC}{\def\GTS@@secondColor{#1}}
\define@key{GTSxa}{sColor}{\def\GTS@@secondColor{#1}}
\define@key{GTSxa}{sC}{\def\GTS@@secondColor{#1}}
\define@key{GTSxa}{monochrome}[1]%
{\def\GTS@@mainColor{black}\def\GTS@@secondColor{black}}
\define@key{GTSxa}{mono}[1]%
{\def\GTS@@mainColor{black}\def\GTS@@secondColor{black}}
\define@key{GTSxa}{mon}[1]%
{\def\GTS@@mainColor{black}\def\GTS@@secondColor{black}}
\define@key{GTSxa}{m}[1]%
{\def\GTS@@mainColor{black}\def\GTS@@secondColor{black}}
\define@key{GTSxa}{negated}[1]{\def\GTS@@drawSlash{1}}
\define@key{GTSxa}{not}[1]{\def\GTS@@drawSlash{1}}
\define@key{GTSxa}{n}[1]{\def\GTS@@drawSlash{1}}
\define@key{GTSxa}{up}[1]{\def\GTS@@drawUpArrow{1}}
\define@key{GTSxa}{u}[1]{\def\GTS@@drawUpArrow{1}}
\define@key{GTSxa}{down}[1]{\def\GTS@@drawDownArrow{1}}
\define@key{GTSxa}{d}[1]{\def\GTS@@drawDownArrow{1}}
\define@key{GTSxa}{relation}[1]{\def\GTS@@relation{1}}
\define@key{GTSxa}{rel}[1]{\def\GTS@@relation{1}}
\define@key{GTSxa}{r}[1]{\def\GTS@@relation{1}}

\newcommand{\GTSxa}[1][]{%
\def\GTS@@mainColor{}%
\def\GTS@@secondColor{}%
\def\GTS@@drawSlash{}%
\def\GTS@@drawUpArrow{}%
\def\GTS@@drawDownArrow{}%
\def\GTS@@relation{}%
\setkeys{GTSxa}{#1}%
\GTS@b{\GTS@@mainColor}{\GTS@@secondColor}{\GTS@@drawSlash}%
{\GTS@@drawUpArrow}{\GTS@@drawDownArrow}{\GTS@@relation}%
}

\newcommand{\GTSxadj}[1][]{\GTSxa[#1]}

\newcommand{\GTSxadjacency}[1][]{\GTSxa[#1]}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}[noprint]{\GTSadjacency,\GTSadj,\GTSa}
% \paragraphII{\textbackslash{}GTSadjacency,
% \textbackslash{}GTSadj,
% \textbackslash{}GTSa}
% This macro will draw an adjacency symbol.
%    \begin{macrocode}
\GTS@newcommand{\GTSadjacency}{\GTS@a{}{}{}{}{}}
\GTS@newcommand{\GTSadj}{\GTS@a{}{}{}{}{}}
\GTS@newcommand{\GTSa}{\GTS@a{}{}{}{}{}}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}[noprint]{\GTSadjacencyRelation,\GTSadjRel,\GTSaR}
% \paragraphII{\textbackslash{}GTSadjacencyRelation,
% \textbackslash{}GTSadjRel,
% \textbackslash{}GTSaR}
% This macro will draw an adjacency symbol with relation spacing in math
% mode.
%    \begin{macrocode}
\GTS@newcommand{\GTSadjacencyRelation}{\mathrel{\GTSa/}}
\GTS@newcommand{\GTSadjRel}{\mathrel{\GTSa/}}
\GTS@newcommand{\GTSaR}{\mathrel{\GTSa/}}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}[noprint]{\GTSunadjacency,\GTSunadj,\GTSu}
% \paragraphII{\textbackslash{}GTSunadjacency,
% \textbackslash{}GTSunadj,
% \textbackslash{}GTSu}
% This macro will draw an unadjacency symbol.
%    \begin{macrocode}
\GTS@newcommand{\GTSunadjacency}{\GTS@a{}{}{1}{}{}}
\GTS@newcommand{\GTSunadj}{\GTS@a{}{}{1}{}{}}
\GTS@newcommand{\GTSu}{\GTS@a{}{}{1}{}{}}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}[noprint]{\GTSunadjacencyRelation,\GTSunadjRel,\GTSuR}
% \paragraphII{\textbackslash{}GTSunadjacencyRelation,
% \textbackslash{}GTSunadjRel,
% \textbackslash{}GTSuR}
% This macro will draw an unadjacency symbol with relation spacing in math
% mode.
%    \begin{macrocode}
\GTS@newcommand{\GTSunadjacencyRelation}{\mathrel{\GTSu/}}
\GTS@newcommand{\GTSunadjRel}{\mathrel{\GTSu/}}
\GTS@newcommand{\GTSuR}{\mathrel{\GTSu/}}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}[noprint]{\GTSdirectedAdjacencyUp,\GTSdirAdjUp,\GTSdAU}
% \paragraphII{\textbackslash{}GTSdirectedAdjacencyUp,
% \textbackslash{}GTSdirAdjUp,
% \textbackslash{}GTSdAU}
% This macro will draw a directed adjacency upward symbol.
% The operand on the left of the symbol should be considered the source
% of the arc;
% the operand on the right of the symbol should be considered the target
% of the arc.
%    \begin{macrocode}
\GTS@newcommand{\GTSdirectedAdjacencyUp}{\GTS@a{}{}{}{1}{}}
\GTS@newcommand{\GTSdirAdjUp}{\GTS@a{}{}{}{1}{}}
\GTS@newcommand{\GTSdAU}{\GTS@a{}{}{}{1}{}}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}[noprint]{\GTSdirectedAdjacencyUpRelation,\GTSdirAdjUpRel,
% \GTSdAUR}
% \paragraphII{\textbackslash{}GTSdirectedAdjacencyUpRelation,
% \textbackslash{}GTSdirAdjUpRel,
% \textbackslash{}GTSdAUR}
% This macro will draw a directed adjacency upward symbol
% with relation spacing in math mode.
%    \begin{macrocode}
\GTS@newcommand{\GTSdirectedAdjacencyUpRelation}{\mathrel{\GTSdAU/}}
\GTS@newcommand{\GTSdirAdjUpRel}{\mathrel{\GTSdAU/}}
\GTS@newcommand{\GTSdAUR}{\mathrel{\GTSdAU/}}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}[noprint]{\GTSnegatedDirectedAdjacencyUp,\GTSnegDirAdjUp,%
% \GTSnDAU}
% \paragraphII{\textbackslash{}GTSnegatedDirectedAdjacencyUp,
% \textbackslash{}GTSnegDirAdjUp,
% \textbackslash{}GTSnDAU}
% This macro will draw a negated directed adjacency upward symbol.
%    \begin{macrocode}
\GTS@newcommand{\GTSnegatedDirectedAdjacencyUp}{\GTS@a{}{}{1}{1}{}}
\GTS@newcommand{\GTSnegDirAdjUp}{\GTS@a{}{}{1}{1}{}}
\GTS@newcommand{\GTSnDAU}{\GTS@a{}{}{1}{1}{}}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}[noprint]{\GTSnegatedDirectedAdjacencyUpRelation,%
% \GTSnegDirAdjUpRel,\GTSnDAUR}
% \paragraphII{\textbackslash{}GTSnegatedDirectedAdjacencyUpRelation,
% \textbackslash{}GTSnegDirAdjUpRel,
% \textbackslash{}GTSnDAUR}
% This macro will draw a negated directed adjacency upward symbol
% with relation spacing in math mode.
%    \begin{macrocode}
\GTS@newcommand{\GTSnegatedDirectedAdjacencyUpRelation}{%
\mathrel{\GTSnDAU/}%
}
\GTS@newcommand{\GTSnegDirAdjUpRel}{\mathrel{\GTSnDAU/}}
\GTS@newcommand{\GTSnDAUR}{\mathrel{\GTSnDAU/}}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}[noprint]{\GTSdirectedAdjacencyDown,\GTSdirAdjDown,\GTSdAD}
% \paragraphII{\textbackslash{}GTSdirectedAdjacencyDown,
% \textbackslash{}GTSdirAdjDown,
% \textbackslash{}GTSdAD}
% This macro will draw a directed adjacency downward symbol.
% The operand on the left of the symbol should be considered the target
% of the arc;
% the operand on the right of the symbol should be considered the source
% of the arc.
%    \begin{macrocode}
\GTS@newcommand{\GTSdirectedAdjacencyDown}{\GTS@a{}{}{}{}{1}}
\GTS@newcommand{\GTSdirAdjDown}{\GTS@a{}{}{}{}{1}}
\GTS@newcommand{\GTSdAD}{\GTS@a{}{}{}{}{1}}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}[noprint]{\GTSdirectedAdjacencyDownRelation,%
% \GTSdirAdjDownRel,\GTSdADR}
% \paragraphII{\textbackslash{}GTSdirectedAdjacencyDownRelation,
% \textbackslash{}GTSdirAdjDownRel,
% \textbackslash{}GTSdADR}
% This macro will draw a directed adjacency downward symbol
% with relation spacing in math mode.
%    \begin{macrocode}
\GTS@newcommand{\GTSdirectedAdjacencyDownRelation}{\mathrel{\GTSdAD/}}
\GTS@newcommand{\GTSdirAdjDownRel}{\mathrel{\GTSdAD/}}
\GTS@newcommand{\GTSdADR}{\mathrel{\GTSdAD/}}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}[noprint]{\GTSnegatedDirectedAdjacencyDown,%
% \GTSnegDirAdjDown,\GTSnDAD}
% \paragraphII{\textbackslash{}GTSnegatedDirectedAdjacencyDown,
% \textbackslash{}GTSnegDirAdjDown,
% \textbackslash{}GTSnDAD}
% This macro will draw a negated directed adjacency downward symbol.
%    \begin{macrocode}
\GTS@newcommand{\GTSnegatedDirectedAdjacencyDown}{\GTS@a{}{}{1}{}{1}}
\GTS@newcommand{\GTSnegDirAdjDown}{\GTS@a{}{}{1}{}{1}}
\GTS@newcommand{\GTSnDAD}{\GTS@a{}{}{1}{}{1}}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}[noprint]{\GTSnegatedDirectedAdjacencyDownRelation,%
% \GTSnegDirAdjDownRel,\GTSnDADR}
% \paragraphII{\textbackslash{}GTSnegatedDirectedAdjacencyDownRelation,
% \textbackslash{}GTSnegDirAdjDownRel,
% \textbackslash{}GTSnDADR}
% This macro will draw a negated directed adjacency downward symbol
% with relation spacing in math mode.
%    \begin{macrocode}
\GTS@newcommand{\GTSnegatedDirectedAdjacencyDownRelation}{%
\mathrel{\GTSnDAD/}%
}
\GTS@newcommand{\GTSnegDirAdjDownRel}{\mathrel{\GTSnDAD/}}
\GTS@newcommand{\GTSnDADR}{\mathrel{\GTSnDAD/}}
%    \end{macrocode}
% \end{macro}
%
%
%
% \begin{macro}[noprint]{\GTS@i}
% \paragraphII{\textbackslash{}GTS@i}
% This macro will draw any incidence symbol given the correct parameters.
% Its use is purely technical.
% See the macros derived from it and \cs{GTS@j}: \cs{GTSxincidence},
% \cs{GTSxinc}, and \cs{GTSxi}.
% The operand on the left of the symbol should be considered the vertex
% to which the edge/the operand on the right of the symbol is incident.\\
% Arguments:\\
% \marg{mainColor} If non-empty, this color will be used as main color.\\
% \marg{secondColor} If non-empty, this color will be used as second
% color.\\
% \marg{drawSlash} Non-empty implies that a negation will be drawn.\\
% \marg{drawUpArrow} Non-empty implies that an up-arrow will be drawn.\\
% \marg{drawDownArrow} Non-empty implies that a down-arrow will be drawn.
%    \begin{macrocode}
\newcommand{\GTS@i}[5]{%
\if#1\empty\else%
\GTSsetMainColor{#1}%
\fi%
\if#2\empty\else%
\GTSsetSecondColor{#2}%
\fi%
\text{\ensuremath{%
\raisebox{-0.22ex}{\scalebox{2.05}[2.05]{%
%
\raisebox{-0.3ex}{\scalebox{0.7}[0.7]{%
$\mathcolor{\GTS@secondColor}{\circ}$%
}}%
\hspace{-0.39ex}%
\raisebox{0.05ex}{\scalebox{0.1}[0.1]{%
$\mathcolor{\GTS@secondColor}{\bullet}$%
}}%
\hspace{-0.12ex}%
\raisebox{0.11ex}{\scalebox{0.1}[0.73]{%
$\mathcolor{\GTS@secondColor}{\smallblacksquare}$%
}}%
\hspace{-0.18ex}%
\raisebox{0.15ex}{\scalebox{0.2}[0.2]{%
$\mathcolor{\GTS@mainColor}{\smallblacksquare}$%
}}%
\hspace{0.2ex}%
%    \end{macrocode}
% if GTS@drawUpArrow empty else
%    \begin{macrocode}
\if#4\empty\else%
\hspace{-0.65ex}%
\raisebox{-0.18ex}{\scalebox{0.5}[0.5]{%
\textcolor{\GTS@secondColor}{\textasciicircum}%
}}%
\fi%
%    \end{macrocode}
% if GTS@drawDownArrow empty else
%    \begin{macrocode}
\if#5\empty\else%
\hspace{-0.65ex}%
\raisebox{1.37ex}{\scalebox{0.5}[-0.5]{%
\textcolor{\GTS@secondColor}{\textasciicircum}%
}}%
\fi%
%    \end{macrocode}
% if GTS@drawSlash empty else
%    \begin{macrocode}
\if#3\empty\else%
\hspace{-0.65ex}%
\raisebox{0.1ex}{\scalebox{0.5}[0.5]{%
\textcolor{black}{/}%
}}%
\fi%
%
}}%
}}%
\if#1\empty\else%
\GTSsetMainColor{\GTS@mainColorBackup}%
\fi%
\if#2\empty\else%
\GTSsetSecondColor{\GTS@secondColorBackup}%
\fi%
}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}[noprint]{\GTS@j}
% \paragraphII{\textbackslash{}GTS@j}
% This macro will handle wrapping in mathematical relation spacing
% if needed.
% Its use is purely technical.
% See the macros derived from it and \cs{GTS@i}: \cs{GTSxincidence},
% \cs{GTSxinc}, and \cs{GTSxi}.\\
% Arguments:\\
% \marg{mainColor} If non-empty, this color will be used as main color.\\
% \marg{secondColor} If non-empty, this color will be used as second
% color.\\
% \marg{drawSlash} Non-empty implies that a negation will be drawn.\\
% \marg{drawUpArrow} Non-empty implies that an up-arrow will be drawn.\\
% \marg{drawDownArrow} Non-empty implies that a down-arrow will be drawn.\\
% \marg{relation} Non-empty implies that relation spacing will be added.
%    \begin{macrocode}
\newcommand{\GTS@j}[6]{%
\if#61%
\mathrel{\GTS@i{#1}{#2}{#3}{#4}{#5}}%
\else%
\GTS@i{#1}{#2}{#3}{#4}{#5}%
\fi%
}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}[noprint]{\GTSxincidence,\GTSxinc,\GTSxi}
% \paragraphII{\textbackslash{}GTSxincidence,
% \textbackslash{}GTSxinc,
% \textbackslash{}GTSxi}
% Versatile macros for incidence that can be given options.\\
% Argument:\\
% \oarg{optionsList} Sets the following options if not empty:\\
% |mainColor=color1| or |mainC=color1| or |mColor=color1| or |mC=color1|,\\
% |secondColor=color2| or |secondC=color2| or |sColor=color2|
% or |sC=color2|,\\
% |monochrome| or |mono| or |mon| or |m|
% (equivalent to |mC=black,sC=black|),\\
% |negated| or |not| or |n|,\\
% |in| or |i|,\\
% |out| or |o|,\\
% |relation| or |rel| or |r|.
%    \begin{macrocode}
\define@key{GTSxi}{mainColor}{\def\GTS@@mainColor{#1}}
\define@key{GTSxi}{mainC}{\def\GTS@@mainColor{#1}}
\define@key{GTSxi}{mColor}{\def\GTS@@mainColor{#1}}
\define@key{GTSxi}{mC}{\def\GTS@@mainColor{#1}}
\define@key{GTSxi}{secondColor}{\def\GTS@@secondColor{#1}}
\define@key{GTSxi}{secondC}{\def\GTS@@secondColor{#1}}
\define@key{GTSxi}{sColor}{\def\GTS@@secondColor{#1}}
\define@key{GTSxi}{sC}{\def\GTS@@secondColor{#1}}
\define@key{GTSxi}{monochrome}[1]%
{\def\GTS@@mainColor{black}\def\GTS@@secondColor{black}}
\define@key{GTSxi}{mono}[1]%
{\def\GTS@@mainColor{black}\def\GTS@@secondColor{black}}
\define@key{GTSxi}{mon}[1]%
{\def\GTS@@mainColor{black}\def\GTS@@secondColor{black}}
\define@key{GTSxi}{m}[1]%
{\def\GTS@@mainColor{black}\def\GTS@@secondColor{black}}
\define@key{GTSxi}{negated}[1]{\def\GTS@@drawSlash{1}}
\define@key{GTSxi}{not}[1]{\def\GTS@@drawSlash{1}}
\define@key{GTSxi}{n}[1]{\def\GTS@@drawSlash{1}}
\define@key{GTSxi}{out}[1]{\def\GTS@@drawUpArrow{1}}
\define@key{GTSxi}{o}[1]{\def\GTS@@drawUpArrow{1}}
\define@key{GTSxi}{in}[1]{\def\GTS@@drawDownArrow{1}}
\define@key{GTSxi}{i}[1]{\def\GTS@@drawDownArrow{1}}
\define@key{GTSxi}{relation}[1]{\def\GTS@@relation{1}}
\define@key{GTSxi}{rel}[1]{\def\GTS@@relation{1}}
\define@key{GTSxi}{r}[1]{\def\GTS@@relation{1}}

\newcommand{\GTSxi}[1][]{%
\def\GTS@@mainColor{}%
\def\GTS@@secondColor{}%
\def\GTS@@drawSlash{}%
\def\GTS@@drawUpArrow{}%
\def\GTS@@drawDownArrow{}%
\def\GTS@@relation{}%
\setkeys{GTSxi}{#1}%
\GTS@j{\GTS@@mainColor}{\GTS@@secondColor}{\GTS@@drawSlash}%
{\GTS@@drawUpArrow}{\GTS@@drawDownArrow}{\GTS@@relation}%
}

\newcommand{\GTSxinc}[1][]{\GTSxi[#1]}

\newcommand{\GTSxincidence}[1][]{\GTSxi[#1]}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}[noprint]{\GTSincidence,\GTSinc,\GTSi}
% \paragraphII{\textbackslash{}GTSincidence,
% \textbackslash{}GTSinc,
% \textbackslash{}GTSi}
% This macro will draw an incidence symbol.
% The operand on the left of the symbol should be considered the vertex
% to which the edge/the operand on the right of the symbol is incident.
%    \begin{macrocode}
\GTS@newcommand{\GTSincidence}{\GTS@i{}{}{}{}{}}
\GTS@newcommand{\GTSinc}{\GTS@i{}{}{}{}{}}
\GTS@newcommand{\GTSi}{\GTS@i{}{}{}{}{}}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}[noprint]{\GTSincidenceRelation,\GTSincRel,\GTSiR}
% \paragraphII{\textbackslash{}GTSincidenceRelation,
% \textbackslash{}GTSincRel,
% \textbackslash{}GTSiR}
% This macro will draw an incidence symbol with relation spacing in math
% mode.
%    \begin{macrocode}
\GTS@newcommand{\GTSincidenceRelation}{\mathrel{\GTSi/}}
\GTS@newcommand{\GTSincRel}{\mathrel{\GTSi/}}
\GTS@newcommand{\GTSiR}{\mathrel{\GTSi/}}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}[noprint]{\GTSnegatedIncidence,\GTSnegInc,\GTSnI}
% \paragraphII{\textbackslash{}GTSnegatedIncidence,
% \textbackslash{}GTSnegInc,
% \textbackslash{}GTSnI}
% This macro will draw a negated incidence symbol.
%    \begin{macrocode}
\GTS@newcommand{\GTSnegatedIncidence}{\GTS@i{}{}{1}{}{}}
\GTS@newcommand{\GTSnegInc}{\GTS@i{}{}{1}{}{}}
\GTS@newcommand{\GTSnI}{\GTS@i{}{}{1}{}{}}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}[noprint]{\GTSnegatedIncidenceRelation,\GTSnegIncRel,%
% \GTSnIR}
% \paragraphII{\textbackslash{}GTSnegatedIncidenceRelation,
% \textbackslash{}GTSnegIncRel,
% \textbackslash{}GTSnIR}
% This macro will draw a negated incidence symbol with relation spacing
% in math mode.
%    \begin{macrocode}
\GTS@newcommand{\GTSnegatedIncidenceRelation}{\mathrel{\GTSnI/}}
\GTS@newcommand{\GTSnegIncRel}{\mathrel{\GTSnI/}}
\GTS@newcommand{\GTSnIR}{\mathrel{\GTSnI/}}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}[noprint]{\GTSoutIncidence,\GTSoutInc,\GTSoI}
% \paragraphII{\textbackslash{}GTSoutIncidence,
% \textbackslash{}GTSoutInc,
% \textbackslash{}GTSoI}
% This macro will draw a directed incidence upward (out(ward) incidence)
% symbol.
% The operand on the left of the symbol should be considered the vertex
% to which the arc/the operand on the right of the symbol is incident.
%    \begin{macrocode}
\GTS@newcommand{\GTSoutIncidence}{\GTS@i{}{}{}{1}{}}
\GTS@newcommand{\GTSoutInc}{\GTS@i{}{}{}{1}{}}
\GTS@newcommand{\GTSoI}{\GTS@i{}{}{}{1}{}}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}[noprint]{\GTSoutIncidenceRelation,\GTSoutIncRel,\GTSoIR}
% \paragraphII{\textbackslash{}GTSoutIncidenceRelation,
% \textbackslash{}GTSoutIncRel,
% \textbackslash{}GTSoIR}
% This macro will draw a directed incidence upward (out(ward) incidence)
% symbol with relation spacing in math mode.
%    \begin{macrocode}
\GTS@newcommand{\GTSoutIncidenceRelation}{\mathrel{\GTSoI/}}
\GTS@newcommand{\GTSoutIncRel}{\mathrel{\GTSoI/}}
\GTS@newcommand{\GTSoIR}{\mathrel{\GTSoI/}}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}[noprint]{\GTSnegatedOutIncidence,\GTSnegOutInc,\GTSnOI}
% \paragraphII{\textbackslash{}GTSnegatedOutIncidence,
% \textbackslash{}GTSnegOutInc,
% \textbackslash{}GTSnOI}
% This macro will draw a negated directed incidence upward
% (out(ward) incidence) symbol.
%    \begin{macrocode}
\GTS@newcommand{\GTSnegatedOutIncidence}{\GTS@i{}{}{1}{1}{}}
\GTS@newcommand{\GTSnegOutInc}{\GTS@i{}{}{1}{1}{}}
\GTS@newcommand{\GTSnOI}{\GTS@i{}{}{1}{1}{}}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}[noprint]{\GTSnegatedOutIncidenceRelation,\GTSnegOutIncRel,%
% \GTSnOIR}
% \paragraphII{\textbackslash{}GTSnegatedOutIncidenceRelation,
% \textbackslash{}GTSnegOutIncRel,
% \textbackslash{}GTSnOIR}
% This macro will draw a negated directed incidence upward
% (out(ward) incidence) symbol with relation spacing in math mode.
%    \begin{macrocode}
\GTS@newcommand{\GTSnegatedOutIncidenceRelation}{\mathrel{\GTSnOI/}}
\GTS@newcommand{\GTSnegOutIncRel}{\mathrel{\GTSnOI/}}
\GTS@newcommand{\GTSnOIR}{\mathrel{\GTSnOI/}}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}[noprint]{\GTSinIncidence,\GTSinInc,\GTSiI}
% \paragraphII{\textbackslash{}GTSinIncidence,
% \textbackslash{}GTSinInc,
% \textbackslash{}GTSiI}
% This macro will draw a directed incidence downward (in(ward) incidence)
% symbol.
% The operand on the left of the symbol should be considered the vertex
% to which the arc/the operand on the right of the symbol is incident.
%    \begin{macrocode}
\GTS@newcommand{\GTSinIncidence}{\GTS@i{}{}{}{}{1}}
\GTS@newcommand{\GTSinInc}{\GTS@i{}{}{}{}{1}}
\GTS@newcommand{\GTSiI}{\GTS@i{}{}{}{}{1}}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}[noprint]{\GTSinIncidenceRelation,\GTSinIncRel,\GTSiIR}
% \paragraphII{\textbackslash{}GTSinIncidenceRelation,
% \textbackslash{}GTSinIncRel,
% \textbackslash{}GTSiIR}
% This macro will draw a directed incidence downward (in(ward) incidence)
% symbol with relation spacing in math mode.
%    \begin{macrocode}
\GTS@newcommand{\GTSinIncidenceRelation}{\mathrel{\GTSiI/}}
\GTS@newcommand{\GTSinIncRel}{\mathrel{\GTSiI/}}
\GTS@newcommand{\GTSiIR}{\mathrel{\GTSiI/}}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}[noprint]{\GTSnegatedInIncidence,\GTSnegInInc,\GTSnII}
% \paragraphII{\textbackslash{}GTSnegatedInIncidence,
% \textbackslash{}GTSnegInInc,
% \textbackslash{}GTSnII}
% This macro will draw a negated directed incidence downward
% (in(ward) incidence) symbol.
%    \begin{macrocode}
\GTS@newcommand{\GTSnegatedInIncidence}{\GTS@i{}{}{1}{}{1}}
\GTS@newcommand{\GTSnegInInc}{\GTS@i{}{}{1}{}{1}}
\GTS@newcommand{\GTSnII}{\GTS@i{}{}{1}{}{1}}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}[noprint]{\GTSnegatedInIncidenceRelation,\GTSnegInIncRel,%
% \GTSnIIR}
% \paragraphII{\textbackslash{}GTSnegatedInIncidenceRelation,
% \textbackslash{}GTSnegInIncRel,
% \textbackslash{}GTSnIIR}
% This macro will draw a negated directed incidence downward
% (in(ward) incidence) symbol with relation spacing in math mode.
%    \begin{macrocode}
\GTS@newcommand{\GTSnegatedInIncidenceRelation}{\mathrel{\GTSnII/}}
\GTS@newcommand{\GTSnegInIncRel}{\mathrel{\GTSnII/}}
\GTS@newcommand{\GTSnIIR}{\mathrel{\GTSnII/}}
%    \end{macrocode}
% \end{macro}
%
%
%
%
% \begin{macro}[noprint]{\GTSadjacencyMonochrome,\GTSadjMono,\GTSadjMon,%
% \GTSaM}
% \paragraphII{\textbackslash{}GTSadjacencyMonochrome,
% \textbackslash{}GTSadjMono,
% \textbackslash{}GTSadjMon,
% \textbackslash{}GTSaM}
% This macro will draw a monochrome adjacency symbol.
%    \begin{macrocode}
\GTS@newcommand{\GTSadjacencyMonochrome}{\GTS@a{black}{black}{}{}{}}
\GTS@newcommand{\GTSadjMono}{\GTS@a{black}{black}{}{}{}}
\GTS@newcommand{\GTSadjMon}{\GTS@a{black}{black}{}{}{}}
\GTS@newcommand{\GTSaM}{\GTS@a{black}{black}{}{}{}}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}[noprint]{\GTSadjacencyMonochromeRelation,\GTSadjMonoRel,%
% \GTSadjMonRel,\GTSaMR}
% \paragraphII{\textbackslash{}GTSadjacencyMonochromeRelation,
% \textbackslash{}GTSadjMonoRel,
% \textbackslash{}GTSadjMonRel,
% \textbackslash{}GTSaMR}
% This macro will draw a monochrome adjacency symbol with relation spacing
% in math mode.
%    \begin{macrocode}
\GTS@newcommand{\GTSadjacencyMonochromeRelation}{\mathrel{\GTSaM/}}
\GTS@newcommand{\GTSadjMonoRel}{\mathrel{\GTSaM/}}
\GTS@newcommand{\GTSadjMonRel}{\mathrel{\GTSaM/}}
\GTS@newcommand{\GTSaMR}{\mathrel{\GTSaM/}}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}[noprint]{\GTSunadjacencyMonochrome,\GTSunadjMono,%
% \GTSunadjMon,\GTSuM}
% \paragraphII{\textbackslash{}GTSunadjacencyMonochrome,
% \textbackslash{}GTSunadjMono,
% \textbackslash{}GTSunadjMon,
% \textbackslash{}GTSuM}
% This macro will draw a monochrome unadjacency symbol.
%    \begin{macrocode}
\GTS@newcommand{\GTSunadjacencyMonochrome}{\GTS@a{black}{black}{1}{}{}}
\GTS@newcommand{\GTSunadjMono}{\GTS@a{black}{black}{1}{}{}}
\GTS@newcommand{\GTSunadjMon}{\GTS@a{black}{black}{1}{}{}}
\GTS@newcommand{\GTSuM}{\GTS@a{black}{black}{1}{}{}}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}[noprint]{\GTSunadjacencyMonochromeRelation,%
% \GTSunadjMonoRel,\GTSunadjMonRel,\GTSuMR}
% \paragraphII{\textbackslash{}GTSunadjacencyMonochromeRelation,
% \textbackslash{}GTSunadjMonoRel,
% \textbackslash{}GTSunadjMonRel,
% \textbackslash{}GTSuMR}
% This macro will draw a monochrome unadjacency symbol
% with relation spacing in math mode.
%    \begin{macrocode}
\GTS@newcommand{\GTSunadjacencyMonochromeRelation}{\mathrel{\GTSuM/}}
\GTS@newcommand{\GTSunadjMonoRel}{\mathrel{\GTSuM/}}
\GTS@newcommand{\GTSunadjMonRel}{\mathrel{\GTSuM/}}
\GTS@newcommand{\GTSuMR}{\mathrel{\GTSuM/}}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}[noprint]{\GTSdirectedAdjacencyUpMonochrome,%
% \GTSdirAdjUpMono,\GTSdirAdjUpMon,\GTSdAUM}
% \paragraphII{\textbackslash{}GTSdirectedAdjacencyUpMonochrome,
% \textbackslash{}GTSdirAdjUpMono,
% \textbackslash{}GTSdirAdjUpMon,
% \textbackslash{}GTSdAUM}
% This macro will draw a monochrome directed adjacency upward symbol.
% The operand on the left of the symbol should be considered the source
% of the arc;
% the operand on the right of the symbol should be considered the target
% of the arc.
%    \begin{macrocode}
\GTS@newcommand{\GTSdirectedAdjacencyUpMonochrome}{%
\GTS@a{black}{black}{}{1}{}%
}
\GTS@newcommand{\GTSdirAdjUpMono}{\GTS@a{black}{black}{}{1}{}}
\GTS@newcommand{\GTSdirAdjUpMon}{\GTS@a{black}{black}{}{1}{}}
\GTS@newcommand{\GTSdAUM}{\GTS@a{black}{black}{}{1}{}}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}[noprint]{\GTSdirectedAdjacencyUpMonochromeRelation,%
% \GTSdirAdjUpMonoRel,\GTSdirAdjUpMonRel,\GTSdAUMR}
% \paragraphII{\textbackslash{}GTSdirectedAdjacencyUpMonochromeRelation,
% \textbackslash{}GTSdirAdjUpMonoRel,
% \textbackslash{}GTSdirAdjUpMonRel,
% \textbackslash{}GTSdAUMR}
% This macro will draw a monochrome directed adjacency upward symbol
% with relation spacing in math mode.
%    \begin{macrocode}
\GTS@newcommand{\GTSdirectedAdjacencyUpMonochromeRelation}{%
\mathrel{\GTSdAUM/}%
}
\GTS@newcommand{\GTSdirAdjUpMonoRel}{\mathrel{\GTSdAUM/}}
\GTS@newcommand{\GTSdirAdjUpMonRel}{\mathrel{\GTSdAUM/}}
\GTS@newcommand{\GTSdAUMR}{\mathrel{\GTSdAUM/}}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}[noprint]{\GTSnegatedDirectedAdjacencyUpMonochrome,%
% \GTSnegDirAdjUpMono,\GTSnegDirAdjUpMon,\GTSnDAUM}
% \paragraphII{\textbackslash{}GTSnegatedDirectedAdjacencyUpMonochrome,
% \textbackslash{}GTSnegDirAdjUpMono,
% \textbackslash{}GTSnegDirAdjUpMon,
% \textbackslash{}GTSnDAUM}
% This macro will draw a
% monochrome negated directed adjacency upward symbol.
%    \begin{macrocode}
\GTS@newcommand{\GTSnegatedDirectedAdjacencyUpMonochrome}{%
\GTS@a{black}{black}{1}{1}{}%
}
\GTS@newcommand{\GTSnegDirAdjUpMono}{\GTS@a{black}{black}{1}{1}{}}
\GTS@newcommand{\GTSnegDirAdjUpMon}{\GTS@a{black}{black}{1}{1}{}}
\GTS@newcommand{\GTSnDAUM}{\GTS@a{black}{black}{1}{1}{}}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}[noprint]{\GTSnegatedDirectedAdjacencyUpMonochromeRelation,%
% \GTSnegDirAdjUpMonRel,\GTSnegDirAdjUpMonoRel,\GTSnDAUMR}
% \paragraphII{\textbs{}GTSnegatedDirectedAdjacencyUpMonochromeRelation,
% \textbackslash{}GTSnegDirAdjUpMonoRel,
% \textbackslash{}GTSnegDirAdjUpMonRel,
% \textbackslash{}GTSnDAUMR}
% This macro will draw a
% monochrome negated directed adjacency upward symbol
% with relation spacing in math mode.
%    \begin{macrocode}
\GTS@newcommand{\GTSnegatedDirectedAdjacencyUpMonochromeRelation}{%
\mathrel{\GTSnDAUM/}%
}
\GTS@newcommand{\GTSnegDirAdjUpMonoRel}{\mathrel{\GTSnDAUM/}}
\GTS@newcommand{\GTSnegDirAdjUpMonRel}{\mathrel{\GTSnDAUM/}}
\GTS@newcommand{\GTSnDAUMR}{\mathrel{\GTSnDAUM/}}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}[noprint]{\GTSdirectedAdjacencyDownMonochrome,%
% \GTSdirAdjDownMono,\GTSdirAdjDownMon,\GTSdADM}
% \paragraphII{\textbackslash{}GTSdirectedAdjacencyDownMonochrome,
% \textbackslash{}GTSdirAdjDownMono,
% \textbackslash{}GTSdirAdjDownMon,
% \textbackslash{}GTSdADM}
% This macro will draw a monochrome directed adjacency downward symbol.
% The operand on the left of the symbol should be considered the target
% of the arc;
% the operand on the right of the symbol should be considered the source
% of the arc.
%    \begin{macrocode}
\GTS@newcommand{\GTSdirectedAdjacencyDownMonochrome}{%
\GTS@a{black}{black}{}{}{1}%
}
\GTS@newcommand{\GTSdirAdjDownMono}{\GTS@a{black}{black}{}{}{1}}
\GTS@newcommand{\GTSdirAdjDownMon}{\GTS@a{black}{black}{}{}{1}}
\GTS@newcommand{\GTSdADM}{\GTS@a{black}{black}{}{}{1}}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}[noprint]{\GTSdirectedAdjacencyDownMonochromeRelation,%
% \GTSdirAdjDownMonoRel,\GTSdirAdjDownMonRel,\GTSdADMR}
% \paragraphII{\textbackslash{}GTSdirectedAdjacencyDownMonochromeRelation,
% \textbackslash{}GTSdirAdjDownMonoRel,
% \textbackslash{}GTSdirAdjDownMonRel,
% \textbackslash{}GTSdADMR}
% This macro will draw a monochrome directed adjacency downward symbol
% with relation spacing in math mode.
%    \begin{macrocode}
\GTS@newcommand{\GTSdirectedAdjacencyDownMonochromeRelation}{%
\mathrel{\GTSdADM/}%
}
\GTS@newcommand{\GTSdirAdjDownMonoRel}{\mathrel{\GTSdADM/}}
\GTS@newcommand{\GTSdirAdjDownMonRel}{\mathrel{\GTSdADM/}}
\GTS@newcommand{\GTSdADMR}{\mathrel{\GTSdADM/}}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}[noprint]{\GTSnegatedDirectedAdjacencyDownMonochrome,%
% \GTSnegDirAdjDownMono,\GTSnegDirAdjDownMon,\GTSnDADM}
% \paragraphII{\textbackslash{}GTSnegatedDirectedAdjacencyDownMonochrome,
% \textbackslash{}GTSnegDirAdjDownMono,
% \textbackslash{}GTSnegDirAdjDownMon,
% \textbackslash{}GTSnDADM}
% This macro will draw a
% monochrome negated directed adjacency downward symbol.
%    \begin{macrocode}
\GTS@newcommand{\GTSnegatedDirectedAdjacencyDownMonochrome}{%
\GTS@a{black}{black}{1}{}{1}%
}
\GTS@newcommand{\GTSnegDirAdjDownMono}{\GTS@a{black}{black}{1}{}{1}}
\GTS@newcommand{\GTSnegDirAdjDownMon}{\GTS@a{black}{black}{1}{}{1}}
\GTS@newcommand{\GTSnDADM}{\GTS@a{black}{black}{1}{}{1}}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}[noprint]%
% {\GTSnegatedDirectedAdjacencyDownMonochromeRelation,%
% \GTSnegDirAdjDownMonoRel,\GTSnegDirAdjDownMonRel,\GTSnDADMR}
% \paragraphII{\textbs{}GTSnegatedDirectedAdjacencyDownMonochromeRelation,
% \textbackslash{}GTSnegDirAdjDownMonoRel,
% \textbackslash{}GTSnegDirAdjDownMonRel,
% \textbackslash{}GTSnDADMR}
% This macro will draw a
% monochrome negated directed adjacency downward symbol
% with relation spacing in math mode.
%    \begin{macrocode}
\GTS@newcommand{\GTSnegatedDirectedAdjacencyDownMonochromeRelation}{%
\mathrel{\GTSnDADM/}%
}
\GTS@newcommand{\GTSnegDirAdjDownMonoRel}{\mathrel{\GTSnDADM/}}
\GTS@newcommand{\GTSnegDirAdjDownMonRel}{\mathrel{\GTSnDADM/}}
\GTS@newcommand{\GTSnDADMR}{\mathrel{\GTSnDADM/}}
%    \end{macrocode}
% \end{macro}
%
%
%
% \begin{macro}[noprint]{\GTSincidenceMonochrome,\GTSincMono,\GTSincMon,%
% \GTSiM}
% \paragraphII{\textbackslash{}GTSincidenceMonochrome,
% \textbackslash{}GTSincMono,
% \textbackslash{}GTSincMon,
% \textbackslash{}GTSiM}
% This macro will draw a monochrome incidence symbol.
% The operand on the left of the symbol should be considered the vertex
% to which the edge/the operand on the right of the symbol is incident.
%    \begin{macrocode}
\GTS@newcommand{\GTSincidenceMonochrome}{\GTS@i{black}{black}{}{}{}}
\GTS@newcommand{\GTSincMono}{\GTS@i{black}{black}{}{}{}}
\GTS@newcommand{\GTSincMon}{\GTS@i{black}{black}{}{}{}}
\GTS@newcommand{\GTSiM}{\GTS@i{black}{black}{}{}{}}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}[noprint]{\GTSincidenceMonochromeRelation,\GTSincMonoRel,%
% \GTSincMonRel,\GTSiMR}
% \paragraphII{\textbackslash{}GTSincidenceMonochromeRelation,
% \textbackslash{}GTSincMonoRel,
% \textbackslash{}GTSincMonRel,
% \textbackslash{}GTSiMR}
% This macro will draw a monochrome incidence symbol
% with relation spacing in math mode.
%    \begin{macrocode}
\GTS@newcommand{\GTSincidenceMonochromeRelation}{\mathrel{\GTSiM/}}
\GTS@newcommand{\GTSincMonoRel}{\mathrel{\GTSiM/}}
\GTS@newcommand{\GTSincMonRel}{\mathrel{\GTSiM/}}
\GTS@newcommand{\GTSiMR}{\mathrel{\GTSiM/}}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}[noprint]{\GTSnegatedIncidenceMonochrome,\GTSnegIncMono,%
% \GTSnegIncMon,\GTSnIM}
% \paragraphII{\textbackslash{}GTSnegatedIncidenceMonochrome,
% \textbackslash{}GTSnegIncMono,
% \textbackslash{}GTSnegIncMon,
% \textbackslash{}GTSnIM}
% This macro will draw a monochrome negated incidence symbol.
%    \begin{macrocode}
\GTS@newcommand{\GTSnegatedIncidenceMonochrome}{%
\GTS@i{black}{black}{1}{}{}%
}
\GTS@newcommand{\GTSnegIncMono}{\GTS@i{black}{black}{1}{}{}}
\GTS@newcommand{\GTSnegIncMon}{\GTS@i{black}{black}{1}{}{}}
\GTS@newcommand{\GTSnIM}{\GTS@i{black}{black}{1}{}{}}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}[noprint]{\GTSnegatedIncidenceMonochromeRelation,%
% \GTSnegIncMonoRel,\GTSnegIncMonRel,\GTSnIMR}
% \paragraphII{\textbackslash{}GTSnegatedIncidenceMonochromeRelation,
% \textbackslash{}GTSnegIncMonoRel,
% \textbackslash{}GTSnegIncMonRel,
% \textbackslash{}GTSnIMR}
% This macro will draw a monochrome negated incidence symbol
% with relation spacing in math mode.
%    \begin{macrocode}
\GTS@newcommand{\GTSnegatedIncidenceMonochromeRelation}{\mathrel{\GTSnIM/}}
\GTS@newcommand{\GTSnegIncMonoRel}{\mathrel{\GTSnIM/}}
\GTS@newcommand{\GTSnegIncMonRel}{\mathrel{\GTSnIM/}}
\GTS@newcommand{\GTSnIMR}{\mathrel{\GTSnIM/}}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}[noprint]{\GTSoutIncidenceMonochrome,\GTSoutIncMono,%
% \GTSoutIncMon,\GTSoIM}
% \paragraphII{\textbackslash{}GTSoutIncidenceMonochrome,
% \textbackslash{}GTSoutIncMono,
% \textbackslash{}GTSoutIncMon,
% \textbackslash{}GTSoIM}
% This macro will draw a
% monochrome directed incidence upward (out(ward) incidence) symbol.
% The operand on the left of the symbol should be considered the vertex
% to which the arc/the operand on the right of the symbol is incident.
%    \begin{macrocode}
\GTS@newcommand{\GTSoutIncidenceMonochrome}{\GTS@i{black}{black}{}{1}{}}
\GTS@newcommand{\GTSoutIncMono}{\GTS@i{black}{black}{}{1}{}}
\GTS@newcommand{\GTSoutIncMon}{\GTS@i{black}{black}{}{1}{}}
\GTS@newcommand{\GTSoIM}{\GTS@i{black}{black}{}{1}{}}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}[noprint]{\GTSoutIncidenceMonochromeRelation,%
% \GTSoutIncMonoRel,\GTSoutIncMonRel,\GTSoIMR}
% \paragraphII{\textbackslash{}GTSoutIncidenceMonochromeRelation,
% \textbackslash{}GTSoutIncMonoRel,
% \textbackslash{}GTSoutIncMonRel,
% \textbackslash{}GTSoIMR}
% This macro will draw a monochrome directed incidence upward
% (out(ward) incidence) symbol with relation spacing in math mode.
%    \begin{macrocode}
\GTS@newcommand{\GTSoutIncidenceMonochromeRelation}{\mathrel{\GTSoIM/}}
\GTS@newcommand{\GTSoutIncMonoRel}{\mathrel{\GTSoIM/}}
\GTS@newcommand{\GTSoutIncMonRel}{\mathrel{\GTSoIM/}}
\GTS@newcommand{\GTSoIMR}{\mathrel{\GTSoIM/}}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}[noprint]{\GTSnegatedOutIncidenceMonochrome,%
% \GTSnegOutIncMono,\GTSnegOutIncMon,\GTSnOIM}
% \paragraphII{\textbackslash{}GTSnegatedOutIncidenceMonochrome,
% \textbackslash{}GTSnegOutIncMono,
% \textbackslash{}GTSnegOutIncMon,
% \textbackslash{}GTSnOIM}
% This macro will draw a monochrome negated directed incidence upward
% (out(ward) incidence) symbol.
%    \begin{macrocode}
\GTS@newcommand{\GTSnegatedOutIncidenceMonochrome}{%
\GTS@i{black}{black}{1}{1}{}%
}
\GTS@newcommand{\GTSnegOutIncMono}{\GTS@i{black}{black}{1}{1}{}}
\GTS@newcommand{\GTSnegOutIncMon}{\GTS@i{black}{black}{1}{1}{}}
\GTS@newcommand{\GTSnOIM}{\GTS@i{black}{black}{1}{1}{}}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}[noprint]{\GTSnegatedOutIncidenceMonochromeRelation,%
% \GTSnegOutIncMonoRel,\GTSnegOutIncMonRel,\GTSnOIMR}
% \paragraphII{\textbackslash{}GTSnegatedOutIncidenceMonochromeRelation,
% \textbackslash{}GTSnegOutIncMonoRel,
% \textbackslash{}GTSnegOutIncMonRel,
% \textbackslash{}GTSnOIMR}
% This macro will draw a monochrome negated directed incidence upward
% (out(ward) incidence) symbol with relation spacing in math mode.
%    \begin{macrocode}
\GTS@newcommand{\GTSnegatedOutIncidenceMonochromeRelation}{%
\mathrel{\GTSnOIM/}%
}
\GTS@newcommand{\GTSnegOutIncMonoRel}{\mathrel{\GTSnOIM/}}
\GTS@newcommand{\GTSnegOutIncMonRel}{\mathrel{\GTSnOIM/}}
\GTS@newcommand{\GTSnOIMR}{\mathrel{\GTSnOIM/}}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}[noprint]{\GTSinIncidenceMonochrome,\GTSinIncMono,%
% \GTSinIncMon,\GTSiIM}
% \paragraphII{\textbackslash{}GTSinIncidenceMonochrome,
% \textbackslash{}GTSinIncMono,
% \textbackslash{}GTSinIncMon,
% \textbackslash{}GTSiIM}
% This macro will draw a monochrome directed incidence downward
% (in(ward) incidence) symbol.
% The operand on the left of the symbol should be considered the vertex
% to which the arc/the operand on the right of the symbol is incident.
%    \begin{macrocode}
\GTS@newcommand{\GTSinIncidenceMonochrome}{\GTS@i{black}{black}{}{}{1}}
\GTS@newcommand{\GTSinIncMono}{\GTS@i{black}{black}{}{}{1}}
\GTS@newcommand{\GTSinIncMon}{\GTS@i{black}{black}{}{}{1}}
\GTS@newcommand{\GTSiIM}{\GTS@i{black}{black}{}{}{1}}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}[noprint]{\GTSinIncidenceMonochromeRelation,%
% \GTSinIncMonoRel,\GTSinIncMonRel,\GTSiIMR}
% \paragraphII{\textbackslash{}GTSinIncidenceMonochromeRelation,
% \textbackslash{}GTSinIncMonoRel,
% \textbackslash{}GTSinIncMonRel,
% \textbackslash{}GTSiIMR}
% This macro will draw a monochrome directed incidence downward
% (in(ward) incidence) symbol with relation spacing in math mode.
%    \begin{macrocode}
\GTS@newcommand{\GTSinIncidenceMonochromeRelation}{\mathrel{\GTSiIM/}}
\GTS@newcommand{\GTSinIncMonoRel}{\mathrel{\GTSiIM/}}
\GTS@newcommand{\GTSinIncMonRel}{\mathrel{\GTSiIM/}}
\GTS@newcommand{\GTSiIMR}{\mathrel{\GTSiIM/}}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}[noprint]{\GTSnegatedInIncidenceMonochrome,%
% \GTSnegInIncMono,\GTSnegInIncMon,\GTSnIIM}
% \paragraphII{\textbackslash{}GTSnegatedInIncidenceMonochrome,
% \textbackslash{}GTSnegInIncMono,
% \textbackslash{}GTSnegInIncMon,
% \textbackslash{}GTSnIIM}
% This macro will draw a monochrome negated directed incidence downward
% (in(ward) incidence) symbol.
%    \begin{macrocode}
\GTS@newcommand{\GTSnegatedInIncidenceMonochrome}{%
\GTS@i{black}{black}{1}{}{1}%
}
\GTS@newcommand{\GTSnegInIncMono}{\GTS@i{black}{black}{1}{}{1}}
\GTS@newcommand{\GTSnegInIncMon}{\GTS@i{black}{black}{1}{}{1}}
\GTS@newcommand{\GTSnIIM}{\GTS@i{black}{black}{1}{}{1}}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}[noprint]{\GTSnegatedInIncidenceMonochromeRelation,%
% \GTSnegInIncMonoRel,\GTSnegInIncMonRel,\GTSnIIMR}
% \paragraphII{\textbackslash{}GTSnegatedInIncidenceMonochromeRelation,
% \textbackslash{}GTSnegInIncMonoRel,
% \textbackslash{}GTSnegInIncMonRel,
% \textbackslash{}GTSnIIMR}
% This macro will draw a monochrome negated directed incidence downward
% (in(ward) incidence) symbol with relation spacing in math mode.
%    \begin{macrocode}
\GTS@newcommand{\GTSnegatedInIncidenceMonochromeRelation}{%
\mathrel{\GTSnIIM/}%
}
\GTS@newcommand{\GTSnegInIncMonoRel}{\mathrel{\GTSnIIM/}}
\GTS@newcommand{\GTSnegInIncMonRel}{\mathrel{\GTSnIIM/}}
\GTS@newcommand{\GTSnIIMR}{\mathrel{\GTSnIIM/}}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}[noprint]{\GTSmetaNot,\GTSmN}
% \paragraphII{\textbackslash{}GTSmetaNot, \textbackslash{}GTSmN}
% This macro will draw a meta-not or relation-not symbol.
%    \begin{macrocode}
\GTS@newprotectedcommand{\GTSmN}{%
\text{\ensuremath{%
\raisebox{-0.44ex}{\scalebox{1}[1]{%
\raisebox{0ex}{\scalebox{1}[1]{$\lnot$}}%
\hspace{-1.46ex}%
\raisebox{1.2ex}{\scalebox{0.7}[0.7]{m}}%
\hspace{0.2ex}%
}}%
}}%
}
\GTS@newcommand{\GTSmetaNot}{\GTSmN/}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}[noprint]{\GTSmetaAnd,\GTSmA}
% \paragraphII{\textbackslash{}GTSmetaAnd, \textbackslash{}GTSmA}
% This macro will draw a meta-and or relations-and symbol.
% This is your duty to check that all relations have same arity.
% It should be easy as long as you remain in the realm of
% graphs/2-structures/binary structures.
% We didn't use Tarski's notation,
% since square cup has taken the preemptive meaning of disjoint union.
% Similarly, doublewedge or other wedge symbols have taken
% various meanings,
% whilst we want an unambiguous symbol.
%    \begin{macrocode}
\GTS@newprotectedcommand{\GTSmA}{%
\text{\ensuremath{%
\raisebox{-0.44ex}{\scalebox{0.95}[0.95]{%
\raisebox{0ex}{\scalebox{1}[1]{$\wedge$}}%
\hspace{-1.46ex}%
\raisebox{1.5ex}{\scalebox{0.7}[0.7]{m}}%
}}%
}}%
}
\GTS@newcommand{\GTSmetaAnd}{\GTSmA/}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}[noprint]{\GTSmetaAndRelation,\GTSmetaAndRel,\GTSmAR}
% \paragraphII{\textbackslash{}GTSmetaAndRelation,
% \textbackslash{}GTSmetaAndRel,
% \textbackslash{}GTSmAR}
% This macro will draw a meta-and symbol with relation spacing
% in math mode.
%    \begin{macrocode}
\GTS@newcommand{\GTSmetaAndRelation}{\mathrel{\GTSmA/}}
\GTS@newcommand{\GTSmetaAndRel}{\mathrel{\GTSmA/}}
\GTS@newcommand{\GTSmAR}{\mathrel{\GTSmA/}}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}[noprint]{\GTSmetaOr,\GTSmO}
% \paragraphII{\textbackslash{}GTSmetaOr, \textbackslash{}GTSmO}
% This macro will draw a meta-or or relations-or symbol.
% This is your duty to check that all relations have same arity.
% It should be easy as long as you remain in the realm of
% graphs/2-structures/binary structures ;).
% We didn't use Tarski's notation,
% since square cup has taken the preemptive meaning of disjoint union.
% Similarly, doublevee or other vee symbols have taken
% various meanings,
% whilst we want an unambiguous symbol.
%    \begin{macrocode}
\GTS@newprotectedcommand{\GTSmO}{%
\text{\ensuremath{%
\raisebox{-0.44ex}{\scalebox{0.95}[0.95]{%
\raisebox{0ex}{\scalebox{1}[1]{$\vee$}}%
\hspace{-1.46ex}%
\raisebox{1.5ex}{\scalebox{0.7}[0.7]{m}}%
}}%
}}%
}
\GTS@newcommand{\GTSmetaOr}{\GTSmO/}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}[noprint]{\GTSmetaOrRelation,\GTSmetaOrRel,\GTSmOR}
% \paragraphII{\textbackslash{}GTSmetaOrRelation,
% \textbackslash{}GTSmetaOrRel,
% \textbackslash{}GTSmOR}
% This macro will draw a meta-or symbol with relation spacing
% in math mode.
%    \begin{macrocode}
\GTS@newcommand{\GTSmetaOrRelation}{\mathrel{\GTSmO/}}
\GTS@newcommand{\GTSmetaOrRel}{\mathrel{\GTSmO/}}
\GTS@newcommand{\GTSmOR}{\mathrel{\GTSmO/}}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}[noprint]{\GTSxml,\GTSxmetalogic}
% \paragraphII{\textbackslash{}GTSxmetalogic, \textbackslash{}GTSxml}
% Versatile macros for meta-logic symbols that can be given options.\\
% Argument:\\
% \oarg{optionsList} Sets the following options if not empty:\\
% |not| or |n|,\\
% |and| or |a|,\\
% |or| or |o|,\\
% |relation| or |rel| or |r|.\\
% Of course first three options are incompatible,
% and the fourth is compatible only with the second and third options.
%    \begin{macrocode}
\define@key{GTSxml}{not}[1]{\def\GTS@@drawMetaNot{1}}
\define@key{GTSxml}{n}[1]{\def\GTS@@drawMetaNot{1}}
\define@key{GTSxml}{and}[1]{\def\GTS@@drawMetaAnd{1}}
\define@key{GTSxml}{a}[1]{\def\GTS@@drawMetaAnd{1}}
\define@key{GTSxml}{or}[1]{\def\GTS@@drawMetaOr{1}}
\define@key{GTSxml}{o}[1]{\def\GTS@@drawMetaOr{1}}
\define@key{GTSxml}{relation}[1]{\def\GTS@@relation{1}}
\define@key{GTSxml}{rel}[1]{\def\GTS@@relation{1}}
\define@key{GTSxml}{r}[1]{\def\GTS@@relation{1}}

\newcommand{\GTSxml}[1][]{%
\def\GTS@@drawMetaNot{}%
\def\GTS@@drawMetaAnd{}%
\def\GTS@@drawMetaOr{}%
\def\GTS@@relation{}%
\setkeys{GTSxml}{#1}%
\if\GTS@@drawMetaNot1%
\GTSmN/%
\else\if\GTS@@drawMetaAnd1%
\if\GTS@@relation{}1%
\GTSmAR/%
\else%
\GTSmA/%
\fi%
\else\if\GTS@@drawMetaOr1%
\if\GTS@@relation{}1%
\GTSmOR/%
\else%
\GTSmO/%
\fi%
\else%
Wrong call to \textbackslash{}GTSxml%
\fi%
\fi%
\fi%
}

\newcommand{\GTSxmetalogic}[1][]{\GTSxml[#1]}
%    \end{macrocode}
% \end{macro}
%
% \medskip
% \begin{macro}[noprint]{\GTSx}
% \paragraphII{\textbackslash{}GTSx}
% One macro to rule them all.
% Versatile macro for all symbols that can be given options,
% and a symbol type mandatory switch.\\
% Argument:\\
% \oarg{optionsList} Sets the following options if not empty:\\
% \begin{itemize}
% \item If \marg{symbolType} below is |a|, see \cs{GTSxa}:\\
% |mainColor=color1| or |mainC=color1| or |mColor=color1| or |mC=color1|,\\
% |secondColor=color2| or |secondC=color2| or |sColor=color2|
% or |sC=color2|,\\
% |monochrome| or |mono| or |mon| or |m|
% (equivalent to |mC=black,sC=black|),\\
% |negated| or |not| or |n|,\\
% |up| or |u|,\\
% |down| or |d|,\\
% |relation| or |rel| or |r|.
% \item If \marg{symbolType} below is |i|, see \cs{GTSxi}:\\
% |mainColor=color1| or |mainC=color1| or |mColor=color1| or |mC=color1|,\\
% |secondColor=color2| or |secondC=color2| or |sColor=color2|
% or |sC=color2|,\\
% |monochrome| or |mono| or |mon| or |m|
% (equivalent to |mC=black,sC=black|),\\
% |negated| or |not| or |n|,\\
% |in| or |i|,\\
% |out| or |o|,\\
% |relation| or |rel| or |r|.
% \item If \marg{symbolType} below is |m|, see \cs{GTSxml}:\\
% |not| or |n|,\\
% |and| or |a|,\\
% |or| or |o|,\\
% |relation| or |rel| or |r|.
% \end{itemize}
% \marg{symbolType} a mandatory switch;
% it can take value |a| for adjacency, |i| for incidence,
% |m| for meta-logic.
%    \begin{macrocode}
\newcommand{\GTSx}[2][]{%
\if#2a%
\GTSxa[#1]%
\else\if#2i%
\GTSxi[#1]%
\else\if#2m%
\GTSxml[#1]%
\else%
Wrong call to \textbackslash{}GTSx%
\fi%
\fi%
\fi%
}
%    \end{macrocode}
% \end{macro}
%
%    \begin{macrocode}
\endinput
%</package>
%    \end{macrocode}
%
% \section{Acknowledgments}
%
% Thank You God! Thank You Father! Thank You Jesus! Thank You Holy-Spirit!
%
% \section{Support}
%
% This package is gratis and free.
% But if you can star it on GitHub, it is a nice encouragement.
%
%\Finale
