Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package gap-typeset for openSUSE:Factory checked in at 2026-04-29 19:19:35 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/gap-typeset (Old) and /work/SRC/openSUSE:Factory/.gap-typeset.new.30200 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "gap-typeset" Wed Apr 29 19:19:35 2026 rev:2 rq:1349924 version:1.2.4 Changes: -------- --- /work/SRC/openSUSE:Factory/gap-typeset/gap-typeset.changes 2025-10-21 11:15:55.049524871 +0200 +++ /work/SRC/openSUSE:Factory/.gap-typeset.new.30200/gap-typeset.changes 2026-04-29 19:21:17.297546201 +0200 @@ -1,0 +2,6 @@ +Wed Apr 29 06:58:25 UTC 2026 - Jan Engelhardt <[email protected]> + +- Update to release 1.2.4 + * Updated internal package metadata + +------------------------------------------------------------------- Old: ---- typeset-1.2.3.tar.gz New: ---- typeset-1.2.4.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ gap-typeset.spec ++++++ --- /var/tmp/diff_new_pack.LDgT32/_old 2026-04-29 19:21:18.013575508 +0200 +++ /var/tmp/diff_new_pack.LDgT32/_new 2026-04-29 19:21:18.013575508 +0200 @@ -1,7 +1,7 @@ # -# spec file for package gap-alco +# spec file for package gap-typeset # -# Copyright (c) 2025 SUSE LLC and contributors +# Copyright (c) 2026 SUSE LLC and contributors # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -17,7 +17,7 @@ Name: gap-typeset -Version: 1.2.3 +Version: 1.2.4 Release: 0 Summary: GAP: Automatic typesetting framework for common GAP objects License: GPL-2.0-or-later ++++++ _scmsync.obsinfo ++++++ --- /var/tmp/diff_new_pack.LDgT32/_old 2026-04-29 19:21:18.053577146 +0200 +++ /var/tmp/diff_new_pack.LDgT32/_new 2026-04-29 19:21:18.057577309 +0200 @@ -1,5 +1,5 @@ -mtime: 1760953712 -commit: 8de35e6bd1d78976daecddf974d9ef42cdb030c05dff908fb4be7864893f8333 +mtime: 1777446090 +commit: da61726117f2a93975fff7bbe8549644e6a171541177d0c98ccbad0608e8c18e url: https://src.opensuse.org/jengelh/gap-typeset revision: master ++++++ build.specials.obscpio ++++++ ++++++ build.specials.obscpio ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/.gitignore new/.gitignore --- old/.gitignore 1970-01-01 01:00:00.000000000 +0100 +++ new/.gitignore 2026-04-29 09:01:30.000000000 +0200 @@ -0,0 +1 @@ +.osc ++++++ typeset-1.2.3.tar.gz -> typeset-1.2.4.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/typeset-1.2.3/CHANGELOG.md new/typeset-1.2.4/CHANGELOG.md --- old/typeset-1.2.3/CHANGELOG.md 2025-07-03 01:10:29.000000000 +0200 +++ new/typeset-1.2.4/CHANGELOG.md 2026-04-28 02:00:00.000000000 +0200 @@ -7,21 +7,22 @@ <br/> -## [v] - yyyy-mm-dd -### Added +## [v1.2.4] - 2026-04-28 +- Added Olexandr Konovalov as well as the GAP Team as package maintainers +- Added `NeededSystemPackages` and `ExternalConditions` to the package + metadata in `PackageInfo.g` +- Updated `makedoc.g` to not use obsolete call syntax for `AutoDoc` +## [v1.2.3] - 2025-07-03 ### Fixed - -## [v1.2.3] - 2025-07-03 (current release) -## Fixed - Fixed test suite failing with the next major GAP release. -## [v1.2.2] - 2024-03-01 (current release) -## Fixed +## [v1.2.2] - 2024-03-01 +### Fixed - Excluded digraphs tests when the digraphs package is not loaded ## [v1.2.1] - 2024-02-20 -## Fixed +### Fixed - Fixed test suite failing when minimal dependencies are loaded - Updated package status to deposited diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/typeset-1.2.3/PackageInfo.g new/typeset-1.2.4/PackageInfo.g --- old/typeset-1.2.3/PackageInfo.g 2025-07-03 01:10:29.000000000 +0200 +++ new/typeset-1.2.4/PackageInfo.g 2026-04-28 02:00:00.000000000 +0200 @@ -10,8 +10,8 @@ PackageName := "typeset", Subtitle := "Automatic typesetting framework for common GAP objects, with LaTeX generation", -Version := "1.2.3", -Date := "03/07/2025", # dd/mm/yyyy format +Version := "1.2.4", +Date := "28/04/2026", # dd/mm/yyyy format License := "GPL-2.0-or-later", Persons := [ @@ -21,9 +21,29 @@ WWWHome := "https://zachnewbery.com", Email := "[email protected]", IsAuthor := true, - IsMaintainer := true, - Place := "St. Andrews", - Institution := "University of St. Andrews", + IsMaintainer := true + ), + rec( + LastName := "Konovalov", + FirstNames := "Olexandr", + IsAuthor := false, + IsMaintainer := true, + Email := "[email protected]", + WWWHome := "https://olexandr-konovalov.github.io/", + PostalAddress := Concatenation( [ + "School of Computer Science\n", + "University of St Andrews\n", + "Jack Cole Building, North Haugh,\n", + "St Andrews, Fife, KY16 9SX, Scotland" ] ), + Place := "St Andrews", + Institution := "University of St Andrews" + ), + rec( + LastName := "GAP Team", + FirstNames := "The", + IsAuthor := false, + IsMaintainer := true, + Email := "[email protected]", ), ], @@ -66,7 +86,8 @@ GAP := ">= 4.11", NeededOtherPackages := [ ], SuggestedOtherPackages := [["digraphs", ">=1.5.0"],], - ExternalConditions := [ ], + NeededSystemPackages := rec( Ubuntu := [["dot2tex"], ["preview-latex-style"], ["texlive-pictures"]] ), + ExternalConditions := [["dot2tex must be installed", "https://dot2tex.readthedocs.io/en/latest/installation_guide.html"]], ), AvailabilityTest := ReturnTrue, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/typeset-1.2.3/README.md new/typeset-1.2.4/README.md --- old/typeset-1.2.3/README.md 2025-07-03 01:10:29.000000000 +0200 +++ new/typeset-1.2.4/README.md 2026-04-28 02:00:00.000000000 +0200 @@ -1,4 +1,4 @@ -[](https://github.com/gap-packages/typeset/actions?query=workflow%3ACI+branch%3Amain) +[](https://github.com/gap-packages/typeset/actions/workflows/CI.yml) [](https://codecov.io/gh/gap-packages/typeset) [](https://mybinder.org/v2/gh/gap-packages/typeset/HEAD) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/typeset-1.2.3/doc/chap0.html new/typeset-1.2.4/doc/chap0.html --- old/typeset-1.2.3/doc/chap0.html 2025-07-03 01:16:54.000000000 +0200 +++ new/typeset-1.2.4/doc/chap0.html 2026-04-28 02:00:00.000000000 +0200 @@ -29,10 +29,10 @@ <h2>Automatic typesetting framework for common <strong class="pkg">GAP</strong> objects, with LaTeX generation</h2> <p> - 1.2.3</p> + 1.2.4</p> <p> - 3 July 2025 + 28 April 2026 </p> </div> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/typeset-1.2.3/doc/chap0.txt new/typeset-1.2.4/doc/chap0.txt --- old/typeset-1.2.3/doc/chap0.txt 2025-07-03 01:16:51.000000000 +0200 +++ new/typeset-1.2.4/doc/chap0.txt 2026-04-28 02:00:00.000000000 +0200 @@ -7,10 +7,10 @@ generation [101X - 1.2.3 + 1.2.4 - 3 July 2025 + 28 April 2026 Zachariah Newbery diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/typeset-1.2.3/doc/chap0_mj.html new/typeset-1.2.4/doc/chap0_mj.html --- old/typeset-1.2.3/doc/chap0_mj.html 2025-07-03 01:16:54.000000000 +0200 +++ new/typeset-1.2.4/doc/chap0_mj.html 2026-04-28 02:00:00.000000000 +0200 @@ -32,10 +32,10 @@ <h2>Automatic typesetting framework for common <strong class="pkg">GAP</strong> objects, with LaTeX generation</h2> <p> - 1.2.3</p> + 1.2.4</p> <p> - 3 July 2025 + 28 April 2026 </p> </div> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/typeset-1.2.3/doc/chap2.html new/typeset-1.2.4/doc/chap2.html --- old/typeset-1.2.3/doc/chap2.html 2025-07-03 01:16:54.000000000 +0200 +++ new/typeset-1.2.4/doc/chap2.html 2026-04-28 02:00:00.000000000 +0200 @@ -99,7 +99,7 @@ </li> </ul> -<p>It should also be noted that <code class="func">Typeset</code> (<a href="chap1.html#X8739447F7A4111CC"><span class="RefLink">1.1-2</span></a>) does fallback to the core library function <code class="func">ViewString</code> (<a href="../../../doc/ref/chap27_mj.html#X7803FBCA79DB5529"><span class="RefLink">Reference: ViewString</span></a>), which can be used for any types which do not require LaTeX-specific formatting to be renderable in math mode (e.g. floats).</p> +<p>It should also be noted that <code class="func">Typeset</code> (<a href="chap1.html#X8739447F7A4111CC"><span class="RefLink">1.1-2</span></a>) does fallback to the core library function <code class="func">ViewString</code> (<a href="../../../doc/ref/chap27.html#X7803FBCA79DB5529"><span class="RefLink">Reference: ViewString</span></a>), which can be used for any types which do not require LaTeX-specific formatting to be renderable in math mode (e.g. floats).</p> <p><a id="X817F73037F401EBE" name="X817F73037F401EBE"></a></p> @@ -243,7 +243,7 @@ <p><strong class="pkg">digraphs</strong> is a powerful, widely-used packages, implementing helpful functionality to work with directed graphs amongst other objects. Due to it's popularity, and as a way to demonstrate how <strong class="pkg">typeset</strong> can be integrated with external packages, the following functions have been implemented to allow directed graphs to be converted into LaTeX representations.</p> -<p>It should be noted that the conversion implemented here does use the output from <code class="func">DotDigraph</code> (<a href="../../../pkg/digraphs/doc/chap9_mj.html#X7F9B99C478EE093A"><span class="RefLink">Digraphs: DotDigraph</span></a>), which generates the DOT string representing a digraph. This is then used to either convert it to a tikz representation via the command-line tool dot2tex (using the <strong class="pkg">GAP</strong> option <code class="code">digraphOut := "dot2tex"</code>), or simply wrapping it up in a dot2tex environment provided by the LaTeX package dot2texi which will compile the wrapped DOT input into tikz during compilation of the LaTeX file itself.</p> +<p>It should be noted that the conversion implemented here does use the output from <code class="func">DotDigraph</code> (<a href="../../../pkg/digraphs/doc/chap9.html#X7F9B99C478EE093A"><span class="RefLink">Digraphs: DotDigraph</span></a>), which generates the DOT string representing a digraph. This is then used to either convert it to a tikz representation via the command-line tool dot2tex (using the <strong class="pkg">GAP</strong> option <code class="code">digraphOut := "dot2tex"</code>), or simply wrapping it up in a dot2tex environment provided by the LaTeX package dot2texi which will compile the wrapped DOT input into tikz during compilation of the LaTeX file itself.</p> <p>While another method could be written to convert the internal representation of a directed graph directly into a tikzpicture, this would likely be incredibly convoluted and difficult, and may present numerous problems with edge positioning. Therefore, relying on dot2tex was chosen as the best approach.</p> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/typeset-1.2.3/doc/chap3.html new/typeset-1.2.4/doc/chap3.html --- old/typeset-1.2.3/doc/chap3.html 2025-07-03 01:16:54.000000000 +0200 +++ new/typeset-1.2.4/doc/chap3.html 2026-04-28 02:00:00.000000000 +0200 @@ -44,7 +44,7 @@ <div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ TypesetStructureDescription</code>( <var class="Arg">desc</var> )</td><td class="tdright">( function )</td></tr></table></div> <p>Returns: A String</p> -<p>Generates a typesettable representation equivalent to a given structure description <var class="Arg">desc</var> of a group. Said structure descriptions can be calculated via <code class="func">StructureDescription</code> (<a href="../../../doc/ref/chap39_mj.html#X8199B74B84446971"><span class="RefLink">Reference: StructureDescription</span></a>).</p> +<p>Generates a typesettable representation equivalent to a given structure description <var class="Arg">desc</var> of a group. Said structure descriptions can be calculated via <code class="func">StructureDescription</code> (<a href="../../../doc/ref/chap39.html#X8199B74B84446971"><span class="RefLink">Reference: StructureDescription</span></a>).</p> <p><a id="X7A6316BB879E51FD" name="X7A6316BB879E51FD"></a></p> @@ -64,7 +64,7 @@ <p>Concatenates the tokens parsed from splitting the string <var class="Arg">desc</var> with the provided separator string <var class="Arg">sep</var>. It will then process the tokens with <code class="func">LatexStructureDescription</code> (<a href="chap3.html#X7A6316BB879E51FD"><span class="RefLink">3.1-2</span></a>), and concatenate the results with the given new separator <var class="Arg">newsep</var>.</p> -<p>While <code class="func">StructureDescription</code> (<a href="../../../doc/ref/chap39_mj.html#X8199B74B84446971"><span class="RefLink">Reference: StructureDescription</span></a>) provides powerful functionality in calculating the structure description of an input group, the returned string is simply raw text, and does not look good when rendered in typical typesetting environment.</p> +<p>While <code class="func">StructureDescription</code> (<a href="../../../doc/ref/chap39.html#X8199B74B84446971"><span class="RefLink">Reference: StructureDescription</span></a>) provides powerful functionality in calculating the structure description of an input group, the returned string is simply raw text, and does not look good when rendered in typical typesetting environment.</p> <p>To improve this, the following functions have been written to help convert the structure description strings into typesettable representations, that use language-specific features to ensure that displaying structure descriptions aesthetically is easy and efficient.</p> Binary files old/typeset-1.2.3/doc/manual.pdf and new/typeset-1.2.4/doc/manual.pdf differ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/typeset-1.2.3/doc/title.xml new/typeset-1.2.4/doc/title.xml --- old/typeset-1.2.3/doc/title.xml 2025-07-03 01:16:51.000000000 +0200 +++ new/typeset-1.2.4/doc/title.xml 2026-04-28 02:00:00.000000000 +0200 @@ -9,7 +9,7 @@ Automatic typesetting framework for common &GAP; objects, with LaTeX generation </Subtitle> <Version> - 1.2.3 + 1.2.4 </Version> <Author> Zachariah Newbery<Alt Only="LaTeX"><Br/></Alt> @@ -18,6 +18,6 @@ </Author> <Date> - 3 July 2025 + 28 April 2026 </Date> </TitlePage> \ No newline at end of file diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/typeset-1.2.3/doc/typeset.tex new/typeset-1.2.4/doc/typeset.tex --- old/typeset-1.2.3/doc/typeset.tex 1970-01-01 01:00:00.000000000 +0100 +++ new/typeset-1.2.4/doc/typeset.tex 2026-04-28 02:00:00.000000000 +0200 @@ -0,0 +1,828 @@ +% generated by GAPDoc2LaTeX from XML source (Frank Luebeck) +\documentclass[a4paper,11pt]{report} + +\usepackage[top=37mm,bottom=37mm,left=27mm,right=27mm]{geometry} +\sloppy +\pagestyle{myheadings} +\usepackage{amssymb} +\usepackage[utf8]{inputenc} +\usepackage{makeidx} +\makeindex +\usepackage{color} +\definecolor{FireBrick}{rgb}{0.5812,0.0074,0.0083} +\definecolor{RoyalBlue}{rgb}{0.0236,0.0894,0.6179} +\definecolor{RoyalGreen}{rgb}{0.0236,0.6179,0.0894} +\definecolor{RoyalRed}{rgb}{0.6179,0.0236,0.0894} +\definecolor{LightBlue}{rgb}{0.8544,0.9511,1.0000} +\definecolor{Black}{rgb}{0.0,0.0,0.0} + +\definecolor{linkColor}{rgb}{0.0,0.0,0.554} +\definecolor{citeColor}{rgb}{0.0,0.0,0.554} +\definecolor{fileColor}{rgb}{0.0,0.0,0.554} +\definecolor{urlColor}{rgb}{0.0,0.0,0.554} +\definecolor{promptColor}{rgb}{0.0,0.0,0.589} +\definecolor{brkpromptColor}{rgb}{0.589,0.0,0.0} +\definecolor{gapinputColor}{rgb}{0.589,0.0,0.0} +\definecolor{gapoutputColor}{rgb}{0.0,0.0,0.0} + +%% for a long time these were red and blue by default, +%% now black, but keep variables to overwrite +\definecolor{FuncColor}{rgb}{0.0,0.0,0.0} +%% strange name because of pdflatex bug: +\definecolor{Chapter }{rgb}{0.0,0.0,0.0} +\definecolor{DarkOlive}{rgb}{0.1047,0.2412,0.0064} + + +\usepackage{fancyvrb} + +\usepackage{mathptmx,helvet} +\usepackage[T1]{fontenc} +\usepackage{textcomp} + + +\usepackage[ + pdftex=true, + bookmarks=true, + a4paper=true, + pdftitle={Written with GAPDoc}, + pdfcreator={LaTeX with hyperref package / GAPDoc}, + colorlinks=true, + backref=page, + breaklinks=true, + linkcolor=linkColor, + citecolor=citeColor, + filecolor=fileColor, + urlcolor=urlColor, + pdfpagemode={UseNone}, + ]{hyperref} + +\newcommand{\maintitlesize}{\fontsize{50}{55}\selectfont} + +% write page numbers to a .pnr log file for online help +\newwrite\pagenrlog +\immediate\openout\pagenrlog =\jobname.pnr +\immediate\write\pagenrlog{PAGENRS := [} +\newcommand{\logpage}[1]{\protect\write\pagenrlog{#1, \thepage,}} +%% were never documented, give conflicts with some additional packages + +\newcommand{\GAP}{\textsf{GAP}} + +%% nicer description environments, allows long labels +\usepackage{enumitem} +\setdescription{style=nextline} + +%% depth of toc +\setcounter{tocdepth}{1} + + + + + +%% command for ColorPrompt style examples +\newcommand{\gapprompt}[1]{\color{promptColor}{\bfseries #1}} +\newcommand{\gapbrkprompt}[1]{\color{brkpromptColor}{\bfseries #1}} +\newcommand{\gapinput}[1]{\color{gapinputColor}{#1}} + + +\begin{document} + +\logpage{[ 0, 0, 0 ]} +\begin{titlepage} +\mbox{}\vfill + +\begin{center}{\maintitlesize \textbf{ typeset \mbox{}}}\\ +\vfill + +\hypersetup{pdftitle= typeset } +\markright{\scriptsize \mbox{}\hfill typeset \hfill\mbox{}} +{\Huge \textbf{ Automatic typesetting framework for common \textsf{GAP} objects, with LaTeX generation \mbox{}}}\\ +\vfill + +{\Huge 1.2.4 \mbox{}}\\[1cm] +{ 28 April 2026 \mbox{}}\\[1cm] +\mbox{}\\[2cm] +{\Large \textbf{ Zachariah Newbery\\ + \mbox{}}}\\ +\hypersetup{pdfauthor= Zachariah Newbery\\ + } +\end{center}\vfill + +\mbox{}\\ +{\mbox{}\\ +\small \noindent \textbf{ Zachariah Newbery\\ + } Email: \href{mailto://[email protected]} {\texttt{[email protected]}}\\ + Homepage: \href{https://zachnewbery.com} {\texttt{https://zachnewbery.com}}}\\ +\end{titlepage} + +\newpage\setcounter{page}{2} +\newpage + +\def\contentsname{Contents\logpage{[ 0, 0, 1 ]}} + +\tableofcontents +\newpage + + +\chapter{\textcolor{Chapter }{Introduction}}\label{Chapter_Introduction} +\logpage{[ 1, 0, 0 ]} +\hyperdef{L}{X7DFB63A97E67C0A1}{} +{ + + + +\section{\textcolor{Chapter }{Core Framework Functions}}\label{Chapter_Introduction_Section_Core_Framework_Functions} +\logpage{[ 1, 1, 0 ]} +\hyperdef{L}{X7F60CF8C7C27BFFF}{} +{ + + + \textsf{typeset} is a package that implements a typesetting framework that can be implemented +for numerous typesetting languages as a standardised way to generate +renderable strings. + + At it's core, it implements the function \texttt{Typeset} (\ref{Typeset}) which makes use of typesetting language\texttt{\symbol{45}}specific functions +to generate format strings. These strings are then populated with a list of +the semantic features of the \textsf{GAP} objects they represent, which is obtained from the operation \texttt{GenArgs} (\ref{GenArgs:for IsObject}). + + An example implementation of this framework is also provided by this package +for LaTeX typesetting within chapter \ref{Chapter_LaTeX_Generation}. + + Guidelines for extending the framework to support more types, or for +implementing the framework for another typesetting language can be found +within the contributing guidelines in the GitHub repository. + + + +\subsection{\textcolor{Chapter }{InfoTypeset}} +\logpage{[ 1, 1, 1 ]}\nobreak +\hyperdef{L}{X7A7D88777B9A0588}{} +{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{InfoTypeset\index{InfoTypeset@\texttt{InfoTypeset}} +\label{InfoTypeset} +}\hfill{\scriptsize (info class)}}\\ + + + Info class for the \textsf{typeset} package. Set this to the following levels for different levels of information: +\begin{itemize} +\item 0 \texttt{\symbol{45}} No messages +\item 1 \texttt{\symbol{45}} Problems only: messages describing what went wrong, +with no messages if an operation is successful +\item 2 \texttt{\symbol{45}} Required preamble packages: displays informations about +any required LaTeX packages that need to be added to the preamble to be +rendered. +\item 3 \texttt{\symbol{45}} Progress: also shows +step\texttt{\symbol{45}}by\texttt{\symbol{45}}step progress of operations +\end{itemize} + + + Set this using, for example \texttt{SetInfoLevel(InfoTypeset, 1)}. Default value is 2. } + + + +\subsection{\textcolor{Chapter }{Typeset}} +\logpage{[ 1, 1, 2 ]}\nobreak +\hyperdef{L}{X8739447F7A4111CC}{} +{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{Typeset({\mdseries\slshape obj[, options]})\index{Typeset@\texttt{Typeset}} +\label{Typeset} +}\hfill{\scriptsize (function)}}\\ +\textbf{\indent Returns:\ } + A String, if \texttt{ReturnStr} option is set to \texttt{true} + + + + Generates a mark\texttt{\symbol{45}}up string representing the object \mbox{\texttt{\mdseries\slshape obj}} in the given mark\texttt{\symbol{45}}up language. \textsf{GAP} options can also be added to modify the result: +\begin{itemize} +\item \texttt{ReturnStr} : Whether the method should return a string (\texttt{true}), or simply print the result (\texttt{false}). (default \texttt{\symbol{45}} \texttt{false}) +\item \texttt{LDelim} : Left Delimiter for matrices. (default \texttt{\symbol{45}} \texttt{"("}) +\item \texttt{RDelim} : Right Delimiter for matrices. (default \texttt{\symbol{45}} \texttt{")"}) +\item \texttt{Lang} : Markup language of output, currently only \texttt{"latex"} is supported. (default \texttt{\symbol{45}} \texttt{"latex"}) +\item \texttt{DigraphOut} : Typesetting method for Digraphs, one of \texttt{"dot"} to use raw dot within TeX, or \texttt{"dot2tex"} to convert the dot to native TeX. (default \texttt{\symbol{45}} \texttt{"dot"}) +\item \texttt{SubCallOpts} : Alternate \textsf{GAP} options for nested sub\texttt{\symbol{45}}objects, via a record with the same +options as the parent (but different values), or \texttt{false} if all options are to stay the same between sub\texttt{\symbol{45}}calls. +Options merging is handled by \texttt{MergeSubOptions} (\ref{MergeSubOptions}). (default \texttt{\symbol{45}} \texttt{false}) either by specifying each options as an individual GAP options like below: +\end{itemize} + + + +\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example] + !gapprompt@gap>| !gapinput@Typeset([[1, 2], [2, 1]] : LDelim := "[", ReturnStr := true);| + "\\left[\\begin{array}{rr}\n1 & 2 \\\\\n2 & 1 \\\\\n\\end{array}\\right)\n" +\end{Verbatim} + + + or wrapping them in a record under an \texttt{options} GAP option, like: + + +\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example] + !gapprompt@gap>| !gapinput@Typeset([[1, 2], [2, 1]] : options := rec(LDelim := "[", ReturnStr := true));| + "\\left[\\begin{array}{rr}\n1 & 2 \\\\\n2 & 1 \\\\\n\\end{array}\\right)\n" +\end{Verbatim} + + + or even simply passing a record object as the optional second argument: + + +\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example] + !gapprompt@gap>| !gapinput@Typeset([[1, 2], [2, 1]], rec(LDelim := "[", ReturnStr := true));| + "\\left[\\begin{array}{rr}\n1 & 2 \\\\\n2 & 1 \\\\\n\\end{array}\\right)\n" +\end{Verbatim} + + + } + + + +\subsection{\textcolor{Chapter }{TypesetInternal}} +\logpage{[ 1, 1, 3 ]}\nobreak +\hyperdef{L}{X860735DF791563F0}{} +{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{TypesetInternal({\mdseries\slshape obj})\index{TypesetInternal@\texttt{TypesetInternal}} +\label{TypesetInternal} +}\hfill{\scriptsize (function)}}\\ +\textbf{\indent Returns:\ } + A String + + + + Generates a string representation of a passed \textsf{GAP} object \mbox{\texttt{\mdseries\slshape obj}} that can be rendered by a typesetter. Called from the +top\texttt{\symbol{45}}level method \texttt{Typeset} (\ref{Typeset}), which also passes a constructed options record as the \texttt{options} \textsf{GAP} option. + + } + + } + + +\section{\textcolor{Chapter }{Core Operations}}\label{Chapter_Introduction_Section_Core_Operations} +\logpage{[ 1, 2, 0 ]} +\hyperdef{L}{X79FAE10A87238E4C}{} +{ + + +\subsection{\textcolor{Chapter }{GenArgs (for IsObject)}} +\logpage{[ 1, 2, 1 ]}\nobreak +\hyperdef{L}{X860806A279FED206}{} +{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{GenArgs({\mdseries\slshape obj})\index{GenArgs@\texttt{GenArgs}!for IsObject} +\label{GenArgs:for IsObject} +}\hfill{\scriptsize (operation)}}\\ +\textbf{\indent Returns:\ } + A List of Strings + + + + Generates the arguments describing the semantic definition of the passed \textsf{GAP} object \mbox{\texttt{\mdseries\slshape obj}}. This returns a list that can be used to populate a format string in any +mark\texttt{\symbol{45}}up language. If no method is installed for a type, it +will fallback to returning the list [ ViewString(obj) ]. + + } + + } + + +\section{\textcolor{Chapter }{Constants and Utility Functions}}\label{Chapter_Introduction_Section_Constants_and_Utility_Functions} +\logpage{[ 1, 3, 0 ]} +\hyperdef{L}{X7F753FFF815225A2}{} +{ + + + + +\subsection{\textcolor{Chapter }{MergeSubOptions}} +\logpage{[ 1, 3, 1 ]}\nobreak +\hyperdef{L}{X8588DF877EC7F955}{} +{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{MergeSubOptions({\mdseries\slshape opts})\index{MergeSubOptions@\texttt{MergeSubOptions}} +\label{MergeSubOptions} +}\hfill{\scriptsize (function)}}\\ +\textbf{\indent Returns:\ } + A Record + + + + Merges the passed options record \mbox{\texttt{\mdseries\slshape opts}} to change any values that are set in the \textsf{GAP} option \texttt{SubCallOpts}. If this option is not false (default), it can contain a record of any \textsf{GAP} options that can be passed to \texttt{Typeset} (\ref{Typeset}) which should differ for sub\texttt{\symbol{45}}calls. + + For example, to alter the delimiters for nested objects so that the outer +object is delimited by square braces and the inner object by parentheses, the +following can be set: + + +\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example] + !gapprompt@gap>| !gapinput@MergeSubOptions(rec(ReturnStr := false, Lang := "latex", DigraphOut := "dot", RDelim := "]", LDelim := "[", SubCallOpts := rec(RDelim := ")", LDelim := "(")));| + rec(ReturnStr := false, Lang := "latex", DigraphOut := "dot", RDelim := ")", LDelim := "(", SubCallOpts := false) +\end{Verbatim} + + + It should be noted that \texttt{SubCallOpts} only changes the options for one level of recursion (i.e. it is set back to +the default of \texttt{false} once this function is called). To change options for more recursion levels, +the \texttt{SubCallOpts} option can be nested as many times as necessary. + + } + + + +\subsection{\textcolor{Chapter }{DEFAULT{\textunderscore}TYPESET{\textunderscore}OPTIONS}} +\logpage{[ 1, 3, 2 ]}\nobreak +\hyperdef{L}{X83056BB487424F07}{} +{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{DEFAULT{\textunderscore}TYPESET{\textunderscore}OPTIONS\index{DEFAULT{\textunderscore}TYPESET{\textunderscore}OPTIONS@\texttt{DEF}\-\texttt{A}\-\texttt{U}\-\texttt{L}\-\texttt{T{\textunderscore}}\-\texttt{T}\-\texttt{Y}\-\texttt{P}\-\texttt{E}\-\texttt{S}\-\texttt{E}\-\texttt{T{\textunderscore}}\-\texttt{O}\-\texttt{P}\-\texttt{T}\-\texttt{IONS}} +\label{DEFAULTuScoreTYPESETuScoreOPTIONS} +}\hfill{\scriptsize (global variable)}}\\ + + + Default options record passed to \texttt{Typeset} (\ref{Typeset}). Merged with user\texttt{\symbol{45}}provided options to ensure correct +construction of options for sub\texttt{\symbol{45}}calls, whilst also allowing +option\texttt{\symbol{45}}less calls to the method. } + + } + + } + + +\chapter{\textcolor{Chapter }{LaTeX Generation}}\label{Chapter_LaTeX_Generation} +\logpage{[ 2, 0, 0 ]} +\hyperdef{L}{X877F82D67F8A4C37}{} +{ + + + +\section{\textcolor{Chapter }{LaTeX Generation Functions for GAP Objects}}\label{Chapter_LaTeX_Generation_Section_LaTeX_Generation_Functions_for_GAP_Objects} +\logpage{[ 2, 1, 0 ]} +\hyperdef{L}{X87F6833C7F252C79}{} +{ + + + The introduction in \ref{Chapter_Introduction_Section_Core_Framework_Functions} describes a powerful framework created in this package allowing for a +standardised methodology to generate typesetting strings via the semantic +features of objects. + + This section describes the implementation of the framework for LaTeX, +providing both the invaluable functionality to typeset a subset of \textsf{GAP} objects as LaTeX strings whilst also serving as an example of how the +framework can be used for other typesetting languages. + + It also provides some insight into the kinds of functions that would be +expected from an implementation for a different language. A +bare\texttt{\symbol{45}}boned example implementation for MathML is provided in \ref{Chapter_MathML_Example_Generation}. + + Currently, the following types have explicit methods installed for LaTeX +generation: + + +\begin{itemize} +\item Rationals (Integers and Fractions) +\item Infinity and Negative Infinity +\item Internal Finite\texttt{\symbol{45}}Field Elements +\item Permutations +\item Lists +\item Matrices +\item Polynomials and Non\texttt{\symbol{45}}Polynomial Rational Functions +\item Character Tables +\item Generators for FP, PC, Matrix and Permutation Groups +\item Associative Words in Letter Representation +\end{itemize} + + + It should also be noted that \texttt{Typeset} (\ref{Typeset}) does fallback to the core library function \texttt{ViewString} (\textbf{Reference: ViewString}), which can be used for any types which do not require +LaTeX\texttt{\symbol{45}}specific formatting to be renderable in math mode +(e.g. floats). + +\subsection{\textcolor{Chapter }{GenLatexTmpl (for IsObject)}} +\logpage{[ 2, 1, 1 ]}\nobreak +\hyperdef{L}{X817F73037F401EBE}{} +{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{GenLatexTmpl({\mdseries\slshape obj})\index{GenLatexTmpl@\texttt{GenLatexTmpl}!for IsObject} +\label{GenLatexTmpl:for IsObject} +}\hfill{\scriptsize (operation)}}\\ +\textbf{\indent Returns:\ } + An Unpopulated LaTeX Format String + + + + Generates a format string that represents the structural definition of the +given \textsf{GAP} object \mbox{\texttt{\mdseries\slshape obj}} in LaTeX. It contains no parameter values, and will need to be populated with +the arguments representing the semantic values of the object, generated via \texttt{GenArgs} (\ref{GenArgs:for IsObject}), before it can be rendered in a LaTeX environment. + + } + + + +\subsection{\textcolor{Chapter }{CtblEntryLatex}} +\logpage{[ 2, 1, 2 ]}\nobreak +\hyperdef{L}{X793E144084AFEBCB}{} +{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{CtblEntryLatex({\mdseries\slshape s})\index{CtblEntryLatex@\texttt{CtblEntryLatex}} +\label{CtblEntryLatex} +}\hfill{\scriptsize (function)}}\\ +\textbf{\indent Returns:\ } + A String + + + + Formats a string representation of an entry \mbox{\texttt{\mdseries\slshape s}} returned by the undocumented function \texttt{CharacterTableDisplayStringEntryDefault} to include the LaTeX\texttt{\symbol{45}}specific bar environment for complex +conjugates. + + } + + + +\subsection{\textcolor{Chapter }{CtblLegendLatex}} +\logpage{[ 2, 1, 3 ]}\nobreak +\hyperdef{L}{X79D99604858275AF}{} +{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{CtblLegendLatex({\mdseries\slshape data})\index{CtblLegendLatex@\texttt{CtblLegendLatex}} +\label{CtblLegendLatex} +}\hfill{\scriptsize (function)}}\\ +\textbf{\indent Returns:\ } + A String + + + + Generates a string representation of the mathematical substitutions \mbox{\texttt{\mdseries\slshape data}}, generated by the undocumented function \texttt{CharacterTableDisplayStringEntryDataDefault} for entries within a character table. + + } + + + +\subsection{\textcolor{Chapter }{GenNameAssocLetterLatex}} +\logpage{[ 2, 1, 4 ]}\nobreak +\hyperdef{L}{X7FF6C91E798C3B3F}{} +{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{GenNameAssocLetterLatex({\mdseries\slshape s})\index{GenNameAssocLetterLatex@\texttt{GenNameAssocLetterLatex}} +\label{GenNameAssocLetterLatex} +}\hfill{\scriptsize (function)}}\\ +\textbf{\indent Returns:\ } + A String + + + + Generates a string representation of the provided letter string \mbox{\texttt{\mdseries\slshape s}} correctly subscripted with a LaTeX math\texttt{\symbol{45}}mode subscript +environment. + + } + + + +\subsection{\textcolor{Chapter }{FactoriseAssocWordLatex}} +\logpage{[ 2, 1, 5 ]}\nobreak +\hyperdef{L}{X7A735F5A7A3BABC9}{} +{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{FactoriseAssocWordLatex({\mdseries\slshape l, names, tseed})\index{FactoriseAssocWordLatex@\texttt{FactoriseAssocWordLatex}} +\label{FactoriseAssocWordLatex} +}\hfill{\scriptsize (function)}}\\ +\textbf{\indent Returns:\ } + A Factorised String + + + + Factorises the string representation of an assoc word in letter representation \mbox{\texttt{\mdseries\slshape l}}, based on the return value from the undocumented function \texttt{FindSubstringPowers}, using the passed list of letters \mbox{\texttt{\mdseries\slshape names}}, and a list of reserved numbers \mbox{\texttt{\mdseries\slshape tseed}} (typically empty for initial calls). + + This method is essentially a LaTeX\texttt{\symbol{45}}specific implementation +of the the undocumented function \texttt{NiceStringAssocWord}. + + } + + } + + +\section{\textcolor{Chapter }{Rendering LaTeX Strings}}\label{Chapter_LaTeX_Generation_Section_Rendering_LaTeX_Strings} +\logpage{[ 2, 2, 0 ]} +\hyperdef{L}{X783EC1DF7944F979}{} +{ + + + To aid users using \texttt{Typeset} (\ref{Typeset}), being able to view the results quickly in a variety of +widely\texttt{\symbol{45}}used formats would help streamline the usage of the +package. As such, a number of functions described below have been written to +enable users to render the output LaTeX\texttt{\symbol{45}}renderable snippets +in different fashions. + + + +\subsection{\textcolor{Chapter }{RenderLatex}} +\logpage{[ 2, 2, 1 ]}\nobreak +\hyperdef{L}{X7B9B85188742BD7A}{} +{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{RenderLatex({\mdseries\slshape str[, options]})\index{RenderLatex@\texttt{RenderLatex}} +\label{RenderLatex} +}\hfill{\scriptsize (function)}}\\ + + + Renders a given LaTeX string \mbox{\texttt{\mdseries\slshape str}} in a LaTeX environment, providing a visual example of what the string would +look like in a paper. By default, this involved creating a HTML file that +includes the MathJax script, but the \textsf{GAP} option \mbox{\texttt{\mdseries\slshape output}} can be passed to change the rendering method. + + Currently implemented rendering methods are: +\begin{itemize} +\item \texttt{"mathjax"}, calling \texttt{MathJax} (\ref{MathJax}) +\item \texttt{"pdflatex"}, calling \texttt{PDFLatex} (\ref{PDFLatex}) +\item \texttt{"overleaf"}, calling \texttt{Overleaf} (\ref{Overleaf}) +\end{itemize} + + + These functions can be called independently of \texttt{RenderLatex}, which serves only to be a more centralised rendering method for users. + + } + + + +\subsection{\textcolor{Chapter }{PDFLatex}} +\logpage{[ 2, 2, 2 ]}\nobreak +\hyperdef{L}{X87D8B6E98449F0F0}{} +{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{PDFLatex({\mdseries\slshape str})\index{PDFLatex@\texttt{PDFLatex}} +\label{PDFLatex} +}\hfill{\scriptsize (function)}}\\ + + + Renders a given LaTeX string \mbox{\texttt{\mdseries\slshape str}} in a new PDF file, specifically via the pdflatex bash tool. + + } + + + +\subsection{\textcolor{Chapter }{MathJax}} +\logpage{[ 2, 2, 3 ]}\nobreak +\hyperdef{L}{X8179071D786C381C}{} +{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{MathJax({\mdseries\slshape str})\index{MathJax@\texttt{MathJax}} +\label{MathJax} +}\hfill{\scriptsize (function)}}\\ + + + Renders a given LaTeX string \mbox{\texttt{\mdseries\slshape str}} in a HTML file, making use of the MathJax and TikzJax scripts. + + } + + + +\subsection{\textcolor{Chapter }{Overleaf}} +\logpage{[ 2, 2, 4 ]}\nobreak +\hyperdef{L}{X800F87247AE87FE5}{} +{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{Overleaf({\mdseries\slshape str})\index{Overleaf@\texttt{Overleaf}} +\label{Overleaf} +}\hfill{\scriptsize (function)}}\\ + + + Renders a given LaTeX string \mbox{\texttt{\mdseries\slshape str}} in a new Overleaf project, specifically via a URL\texttt{\symbol{45}}encoded +snippet. + + } + + + +\subsection{\textcolor{Chapter }{URIEncodeComponent}} +\logpage{[ 2, 2, 5 ]}\nobreak +\hyperdef{L}{X824C38568286ECBB}{} +{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{URIEncodeComponent({\mdseries\slshape raw})\index{URIEncodeComponent@\texttt{URIEncodeComponent}} +\label{URIEncodeComponent} +}\hfill{\scriptsize (function)}}\\ +\textbf{\indent Returns:\ } + A Percent\texttt{\symbol{45}}Encoded String + + + + Replaces reserved characters within a URI component \mbox{\texttt{\mdseries\slshape raw}} as per RFC\texttt{\symbol{45}}3986. + + } + + + +\subsection{\textcolor{Chapter }{NeedsLatexMathMode}} +\logpage{[ 2, 2, 6 ]}\nobreak +\hyperdef{L}{X8628E043862C318A}{} +{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{NeedsLatexMathMode({\mdseries\slshape raw})\index{NeedsLatexMathMode@\texttt{NeedsLatexMathMode}} +\label{NeedsLatexMathMode} +}\hfill{\scriptsize (function)}}\\ +\textbf{\indent Returns:\ } + A Boolean + + + + Determines if the LaTeX snippet \mbox{\texttt{\mdseries\slshape raw}} requires LaTeX's math mode to be rendered correctly. + + } + + + +\subsection{\textcolor{Chapter }{DEFAULT{\textunderscore}LATEX{\textunderscore}PREAMBLE}} +\logpage{[ 2, 2, 7 ]}\nobreak +\hyperdef{L}{X853D2C5F85183D3C}{} +{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{DEFAULT{\textunderscore}LATEX{\textunderscore}PREAMBLE\index{DEFAULT{\textunderscore}LATEX{\textunderscore}PREAMBLE@\texttt{DEF}\-\texttt{A}\-\texttt{U}\-\texttt{L}\-\texttt{T{\textunderscore}}\-\texttt{L}\-\texttt{A}\-\texttt{T}\-\texttt{E}\-\texttt{X{\textunderscore}}\-\texttt{P}\-\texttt{R}\-\texttt{E}\-\texttt{A}\-\texttt{MBLE}} +\label{DEFAULTuScoreLATEXuScorePREAMBLE} +}\hfill{\scriptsize (global variable)}}\\ + + + Default LaTeX preamble string used for creating compilable \texttt{.tex} files from LaTeX snippets. } + + + +\subsection{\textcolor{Chapter }{DEFAULT{\textunderscore}MATHJAX{\textunderscore}TAGS}} +\logpage{[ 2, 2, 8 ]}\nobreak +\hyperdef{L}{X83CE796886A570A5}{} +{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{DEFAULT{\textunderscore}MATHJAX{\textunderscore}TAGS\index{DEFAULT{\textunderscore}MATHJAX{\textunderscore}TAGS@\texttt{DEF}\-\texttt{A}\-\texttt{U}\-\texttt{L}\-\texttt{T{\textunderscore}}\-\texttt{M}\-\texttt{A}\-\texttt{T}\-\texttt{H}\-\texttt{J}\-\texttt{A}\-\texttt{X{\textunderscore}}\-\texttt{TAGS}} +\label{DEFAULTuScoreMATHJAXuScoreTAGS} +}\hfill{\scriptsize (global variable)}}\\ + + + Default HTML document and head tags used to create HTML files using MathJax to +render LaTeX snippets. } + + + +\subsection{\textcolor{Chapter }{ALWAYS{\textunderscore}UNESCAPED{\textunderscore}CHARS}} +\logpage{[ 2, 2, 9 ]}\nobreak +\hyperdef{L}{X789A6A708289DE47}{} +{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{ALWAYS{\textunderscore}UNESCAPED{\textunderscore}CHARS\index{ALWAYS{\textunderscore}UNESCAPED{\textunderscore}CHARS@\texttt{ALW}\-\texttt{A}\-\texttt{Y}\-\texttt{S{\textunderscore}}\-\texttt{U}\-\texttt{N}\-\texttt{E}\-\texttt{S}\-\texttt{C}\-\texttt{A}\-\texttt{P}\-\texttt{E}\-\texttt{D{\textunderscore}}\-\texttt{C}\-\texttt{HARS}} +\label{ALWAYSuScoreUNESCAPEDuScoreCHARS} +}\hfill{\scriptsize (global variable)}}\\ + + + String containing all of the characters that do not need to be +percent\texttt{\symbol{45}}encoded within URI components, as per +RFC\texttt{\symbol{45}}3986. } + + } + + +\section{\textcolor{Chapter }{Digraphs Integration}}\label{Chapter_LaTeX_Generation_Section_Digraphs_Integration} +\logpage{[ 2, 3, 0 ]} +\hyperdef{L}{X7EF74AB68325E735}{} +{ + + + \textsf{digraphs} is a powerful, widely\texttt{\symbol{45}}used packages, implementing helpful +functionality to work with directed graphs amongst other objects. Due to it's +popularity, and as a way to demonstrate how \textsf{typeset} can be integrated with external packages, the following functions have been +implemented to allow directed graphs to be converted into LaTeX +representations. + + It should be noted that the conversion implemented here does use the output +from \texttt{DotDigraph} (\textbf{Digraphs: DotDigraph}), which generates the DOT string representing a digraph. This is then used to +either convert it to a tikz representation via the +command\texttt{\symbol{45}}line tool dot2tex (using the \textsf{GAP} option \texttt{digraphOut := "dot2tex"}), or simply wrapping it up in a dot2tex environment provided by the LaTeX +package dot2texi which will compile the wrapped DOT input into tikz during +compilation of the LaTeX file itself. + + While another method could be written to convert the internal representation +of a directed graph directly into a tikzpicture, this would likely be +incredibly convoluted and difficult, and may present numerous problems with +edge positioning. Therefore, relying on dot2tex was chosen as the best +approach. + + + +\subsection{\textcolor{Chapter }{DEFAULT{\textunderscore}DOT2TEX{\textunderscore}OPTIONS}} +\logpage{[ 2, 3, 1 ]}\nobreak +\hyperdef{L}{X7AD116C5832E82C1}{} +{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{DEFAULT{\textunderscore}DOT2TEX{\textunderscore}OPTIONS\index{DEFAULT{\textunderscore}DOT2TEX{\textunderscore}OPTIONS@\texttt{DEF}\-\texttt{A}\-\texttt{U}\-\texttt{L}\-\texttt{T{\textunderscore}}\-\texttt{D}\-\texttt{O}\-\texttt{T2}\-\texttt{T}\-\texttt{E}\-\texttt{X{\textunderscore}}\-\texttt{O}\-\texttt{P}\-\texttt{T}\-\texttt{IONS}} +\label{DEFAULTuScoreDOT2TEXuScoreOPTIONS} +}\hfill{\scriptsize (global variable)}}\\ + + + Default command\texttt{\symbol{45}}line options passed to the \texttt{dot2tex} executable to convert dot strings. } + + + +\subsection{\textcolor{Chapter }{Dot2Tex}} +\logpage{[ 2, 3, 2 ]}\nobreak +\hyperdef{L}{X86E66F1C7816D90D}{} +{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{Dot2Tex({\mdseries\slshape obj})\index{Dot2Tex@\texttt{Dot2Tex}} +\label{Dot2Tex} +}\hfill{\scriptsize (function)}}\\ +\textbf{\indent Returns:\ } + A Tikz String + + + + Executes \texttt{dot2tex} on the dot string representing a given digraph object \mbox{\texttt{\mdseries\slshape obj}}. + + } + + } + + + + } + + +\chapter{\textcolor{Chapter }{Structure Descriptions}}\label{Chapter_Structure_Descriptions} +\logpage{[ 3, 0, 0 ]} +\hyperdef{L}{X87BF1B887C91CA2E}{} +{ + + + +\section{\textcolor{Chapter }{Typesetting Structure Descriptions of Groups}}\label{Chapter_Structure_Descriptions_Section_Typesetting_Structure_Descriptions_of_Groups} +\logpage{[ 3, 1, 0 ]} +\hyperdef{L}{X7DC1724784ACBEF0}{} +{ + + + + +\subsection{\textcolor{Chapter }{TypesetStructureDescription}} +\logpage{[ 3, 1, 1 ]}\nobreak +\hyperdef{L}{X807F54B97A98F647}{} +{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{TypesetStructureDescription({\mdseries\slshape desc})\index{TypesetStructureDescription@\texttt{TypesetStructureDescription}} +\label{TypesetStructureDescription} +}\hfill{\scriptsize (function)}}\\ +\textbf{\indent Returns:\ } + A String + + + + Generates a typesettable representation equivalent to a given structure +description \mbox{\texttt{\mdseries\slshape desc}} of a group. Said structure descriptions can be calculated via \texttt{StructureDescription} (\textbf{Reference: StructureDescription}). + + } + + + +\subsection{\textcolor{Chapter }{LatexStructureDescription}} +\logpage{[ 3, 1, 2 ]}\nobreak +\hyperdef{L}{X7A6316BB879E51FD}{} +{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{LatexStructureDescription({\mdseries\slshape desc})\index{LatexStructureDescription@\texttt{LatexStructureDescription}} +\label{LatexStructureDescription} +}\hfill{\scriptsize (function)}}\\ +\textbf{\indent Returns:\ } + A String + + + + Generates a LaTeX representation equivalent to a given structure description \mbox{\texttt{\mdseries\slshape desc}}. Called by \texttt{TypesetStructureDescription} (\ref{TypesetStructureDescription}) as the default markup language for structure description typesetting. + + } + + + +\subsection{\textcolor{Chapter }{ConcatStructDescOperands}} +\logpage{[ 3, 1, 3 ]}\nobreak +\hyperdef{L}{X86362669792C2F28}{} +{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{ConcatStructDescOperands({\mdseries\slshape desc, sep, newsep})\index{ConcatStructDescOperands@\texttt{ConcatStructDescOperands}} +\label{ConcatStructDescOperands} +}\hfill{\scriptsize (function)}}\\ +\textbf{\indent Returns:\ } + A String + + + + Concatenates the tokens parsed from splitting the string \mbox{\texttt{\mdseries\slshape desc}} with the provided separator string \mbox{\texttt{\mdseries\slshape sep}}. It will then process the tokens with \texttt{LatexStructureDescription} (\ref{LatexStructureDescription}), and concatenate the results with the given new separator \mbox{\texttt{\mdseries\slshape newsep}}. + + } + + } + + + + While \texttt{StructureDescription} (\textbf{Reference: StructureDescription}) provides powerful functionality in calculating the structure description of an +input group, the returned string is simply raw text, and does not look good +when rendered in typical typesetting environment. + + To improve this, the following functions have been written to help convert the +structure description strings into typesettable representations, that use +language\texttt{\symbol{45}}specific features to ensure that displaying +structure descriptions aesthetically is easy and efficient. + + } + + +\chapter{\textcolor{Chapter }{MathML Example Generation}}\label{Chapter_MathML_Example_Generation} +\logpage{[ 4, 0, 0 ]} +\hyperdef{L}{X80E5E58082AB0716}{} +{ + +\section{\textcolor{Chapter }{MathML Generation Functions for \textsf{GAP} Objects}}\label{Chapter_MathML_Example_Generation_Section_MathML_Generation_Functions_for_GAP_Objects} +\logpage{[ 4, 1, 0 ]} +\hyperdef{L}{X781F62C37D928E4C}{} +{ + + + This section describes a bare\texttt{\symbol{45}}bones implementation of the +framework for generating MathML representations. It is intended to be used as +a reference for implementing the framework, and as a starting point for +implementing the framework for other languages \texttt{\symbol{45}} not as a +fully functional implementation of the framework. + +\subsection{\textcolor{Chapter }{GenMathmlTmpl (for IsObject)}} +\logpage{[ 4, 1, 1 ]}\nobreak +\hyperdef{L}{X7E9CF77579FA1393}{} +{\noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{GenMathmlTmpl({\mdseries\slshape obj})\index{GenMathmlTmpl@\texttt{GenMathmlTmpl}!for IsObject} +\label{GenMathmlTmpl:for IsObject} +}\hfill{\scriptsize (operation)}}\\ +\textbf{\indent Returns:\ } + An Unpopulated MathML Format String + + + + Generates a format string that represents the structural definition of the +given \textsf{GAP} object \mbox{\texttt{\mdseries\slshape obj}} in MathML. It contains no parameter values, and will need to be populated with +the arguments representing the semantic values of the object, generated via \texttt{GenArgs} (\ref{GenArgs:for IsObject}), before it can be rendered in a MathML environment. + + } + + } + + } + + \def\indexname{Index\logpage{[ "Ind", 0, 0 ]} +\hyperdef{L}{X83A0356F839C696F}{} +} + +\cleardoublepage +\phantomsection +\addcontentsline{toc}{chapter}{Index} + + +\printindex + +\immediate\write\pagenrlog{["Ind", 0, 0], \arabic{page},} +\newpage +\immediate\write\pagenrlog{["End"], \arabic{page}];} +\immediate\closeout\pagenrlog +\end{document} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/typeset-1.2.3/makedoc.g new/typeset-1.2.4/makedoc.g --- old/typeset-1.2.3/makedoc.g 2025-07-03 01:10:29.000000000 +0200 +++ new/typeset-1.2.4/makedoc.g 2026-04-28 02:00:00.000000000 +0200 @@ -7,4 +7,9 @@ Error("AutoDoc required."); fi; -AutoDoc("typeset", rec( scaffold := true, autodoc := rec( scan_dirs := [ ".", "gap", "lib", "examples", "examples/doc", "gap/latex", "gap/mathml" ] ))); +AutoDoc(rec( + scaffold := true, + autodoc := rec( + scan_dirs := [ ".", "gap", "lib", "examples", "examples/doc", "gap/latex", "gap/mathml" ], + ), +));
