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 @@
-[![Build 
Status](https://github.com/gap-packages/typeset/workflows/CI/badge.svg?branch=main)](https://github.com/gap-packages/typeset/actions?query=workflow%3ACI+branch%3Amain)
+[![CI](https://github.com/gap-packages/typeset/actions/workflows/CI.yml/badge.svg?branch=main)](https://github.com/gap-packages/typeset/actions/workflows/CI.yml)
 [![Code 
Coverage](https://codecov.io/github/gap-packages/typeset/coverage.svg?branch=main&token=)](https://codecov.io/gh/gap-packages/typeset)
 
[![Binder](https://mybinder.org/badge_logo.svg)](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 
   
   
-                                     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">&#8227; TypesetStructureDescription</code>( 
<var class="Arg">desc</var> )</td><td 
class="tdright">(&nbsp;function&nbsp;)</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" ],
+    ),
+));

Reply via email to