% \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 . % % 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} % %<*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] % %<*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} % % \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 % % \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