texlive[60132] trunk: latexindent (1aug21)

commits+karl at tug.org commits+karl at tug.org
Sun Aug 1 22:35:10 CEST 2021


Revision: 60132
          http://tug.org/svn/texlive?view=revision&revision=60132
Author:   karl
Date:     2021-08-01 22:35:09 +0200 (Sun, 01 Aug 2021)
Log Message:
-----------
latexindent (1aug21)

Modified Paths:
--------------
    trunk/Build/source/texk/texlive/linked_scripts/latexindent/latexindent.pl
    trunk/Master/bin/win32/latexindent.exe
    trunk/Master/texmf-dist/doc/support/latexindent/README
    trunk/Master/texmf-dist/doc/support/latexindent/appendices.tex
    trunk/Master/texmf-dist/doc/support/latexindent/figure-schematic.tex
    trunk/Master/texmf-dist/doc/support/latexindent/latexindent.pdf
    trunk/Master/texmf-dist/doc/support/latexindent/latexindent.tex
    trunk/Master/texmf-dist/doc/support/latexindent/sec-conclusions-know-limitations.tex
    trunk/Master/texmf-dist/doc/support/latexindent/sec-default-user-local.tex
    trunk/Master/texmf-dist/doc/support/latexindent/sec-demonstration.tex
    trunk/Master/texmf-dist/doc/support/latexindent/sec-fine-tuning.tex
    trunk/Master/texmf-dist/doc/support/latexindent/sec-how-to-use.tex
    trunk/Master/texmf-dist/doc/support/latexindent/sec-indent-config-and-settings.tex
    trunk/Master/texmf-dist/doc/support/latexindent/sec-introduction.tex
    trunk/Master/texmf-dist/doc/support/latexindent/sec-replacements.tex
    trunk/Master/texmf-dist/doc/support/latexindent/sec-the-m-switch.tex
    trunk/Master/texmf-dist/doc/support/latexindent/subsec-commands-and-their-options.tex
    trunk/Master/texmf-dist/doc/support/latexindent/subsec-noAdditionalIndent-indentRules.tex
    trunk/Master/texmf-dist/doc/support/latexindent/subsubsec-commands-with-arguments.tex
    trunk/Master/texmf-dist/doc/support/latexindent/subsubsec-environments-and-their-arguments.tex
    trunk/Master/texmf-dist/doc/support/latexindent/subsubsec-environments-with-items.tex
    trunk/Master/texmf-dist/doc/support/latexindent/subsubsec-headings.tex
    trunk/Master/texmf-dist/doc/support/latexindent/subsubsec-ifelsefi.tex
    trunk/Master/texmf-dist/doc/support/latexindent/subsubsec-no-add-remaining-code-blocks.tex
    trunk/Master/texmf-dist/doc/support/latexindent/subsubsec-special.tex
    trunk/Master/texmf-dist/doc/support/latexindent/title.tex
    trunk/Master/texmf-dist/scripts/latexindent/LatexIndent/Document.pm
    trunk/Master/texmf-dist/scripts/latexindent/LatexIndent/GetYamlSettings.pm
    trunk/Master/texmf-dist/scripts/latexindent/LatexIndent/ModifyLineBreaks.pm
    trunk/Master/texmf-dist/scripts/latexindent/LatexIndent/Version.pm
    trunk/Master/texmf-dist/scripts/latexindent/defaultSettings.yaml
    trunk/Master/texmf-dist/scripts/latexindent/latexindent.pl

Added Paths:
-----------
    trunk/Master/texmf-dist/doc/support/latexindent/subsec-combine-text-wrap-para-line-breaks.tex
    trunk/Master/texmf-dist/doc/support/latexindent/subsec-one-sentence-per-line.tex
    trunk/Master/texmf-dist/doc/support/latexindent/subsec-poly-switches.tex
    trunk/Master/texmf-dist/doc/support/latexindent/subsec-remove-para-line-breaks.tex
    trunk/Master/texmf-dist/doc/support/latexindent/subsec-text-wrap-summary.tex
    trunk/Master/texmf-dist/doc/support/latexindent/subsec-text-wrap.tex

Removed Paths:
-------------
    trunk/Master/texmf-dist/doc/support/latexindent/subsec-conflicting-poly-switches.tex
    trunk/Master/texmf-dist/doc/support/latexindent/subsec-partnering-poly-switches.tex

Modified: trunk/Build/source/texk/texlive/linked_scripts/latexindent/latexindent.pl
===================================================================
(Binary files differ)

Modified: trunk/Master/bin/win32/latexindent.exe
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/support/latexindent/README
===================================================================
--- trunk/Master/texmf-dist/doc/support/latexindent/README	2021-08-01 02:06:28 UTC (rev 60131)
+++ trunk/Master/texmf-dist/doc/support/latexindent/README	2021-08-01 20:35:09 UTC (rev 60132)
@@ -1,5 +1,5 @@
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-    latexindent.pl, version 3.10.1, 2021-07-23
+    latexindent.pl, version 3.11, 2021-07-31
 
     PERL script to indent code within environments, and align delimited 
     environments in .tex files.

Modified: trunk/Master/texmf-dist/doc/support/latexindent/appendices.tex
===================================================================
--- trunk/Master/texmf-dist/doc/support/latexindent/appendices.tex	2021-08-01 02:06:28 UTC (rev 60131)
+++ trunk/Master/texmf-dist/doc/support/latexindent/appendices.tex	2021-08-01 20:35:09 UTC (rev 60132)
@@ -1,11 +1,11 @@
 % arara: pdflatex: {shell: yes, files: [latexindent]}
 \appendix
 	\section{Required Perl modules}\label{sec:requiredmodules}
-	 If you intend to use \texttt{latexindent.pl} and \emph{not} one of the
-	 supplied standalone executable files, then you will need a few standard Perl modules --
-	 if you can run the minimum code in \cref{lst:helloworld} (\texttt{perl helloworld.pl}) then you will be able to run
-	 \texttt{latexindent.pl}, otherwise you may need to install the missing modules -- see
-	 \cref{sec:module-installer,sec:manual-module-instal}.
+	 If you intend to use \texttt{latexindent.pl} and \emph{not} one of the supplied
+	 standalone executable files, then you will need a few standard Perl modules -- if you can
+	 run the minimum code in \cref{lst:helloworld} (\texttt{perl helloworld.pl}) then you will
+	 be able to run \texttt{latexindent.pl}, otherwise you may need to install the missing
+	 modules -- see \cref{sec:module-installer,sec:manual-module-instal}.
 
 	 \begin{cmhlistings}[style=tcblatex,language=Perl]{\texttt{helloworld.pl}}{lst:helloworld}
 #!/usr/bin/perl
@@ -33,8 +33,9 @@
 \end{cmhlistings}
 
 	\subsection{Module installer script}\label{sec:module-installer}
-		\announce{2018-01-13}{perl module helper script} \texttt{latexindent.pl} ships with a helper script that will
-		install any missing \texttt{perl} modules on your system; if you run
+		\announce{2018-01-13}{perl module helper script} \texttt{latexindent.pl} ships with a
+		helper script that will install any missing \texttt{perl} modules on your system; if you
+		run
 		\begin{commandshell}
 perl latexindent-module-installer.pl
 \end{commandshell}
@@ -42,8 +43,8 @@
 		\begin{dosprompt}
 perl latexindent-module-installer.pl
  \end{dosprompt}
-		then, once you have answered \texttt{Y}, the appropriate modules will be
-		installed onto your distribution.
+		then, once you have answered \texttt{Y}, the appropriate modules will be installed onto
+		your distribution.
 
 	\subsection{Manually installed modules}\label{sec:manual-module-instal}
 		Manually installing the modules given in \cref{lst:helloworld} will vary depending on
@@ -77,10 +78,10 @@
 sudo perl -MCPAN -e'install "File::HomeDir"'
 \end{commandshell}
 
-		If you are using Alpine, some \texttt{Perl} modules are not build-compatible
-		with Alpine, but replacements are available through \texttt{apk}. For example,
-		you might use the commands given in \cref{lst:alpine-install}; thanks to
-		\cite{jun-sheaf} for providing these details.
+		If you are using Alpine, some \texttt{Perl} modules are not build-compatible with Alpine,
+		but replacements are available through \texttt{apk}. For example, you might use the
+		commands given in \cref{lst:alpine-install}; thanks to \cite{jun-sheaf} for providing
+		these details.
 
 		\begin{cmhlistings}[style=tcblatex,language=Bash]{\texttt{alpine-install.sh}}{lst:alpine-install}
 # Installing perl
@@ -106,7 +107,9 @@
 cpanm -n Unicode::GCString
 \end{cmhlistings}
 
-		Users of NixOS might like to see \href{https://github.com/cmhughes/latexindent.pl/issues/222}{https://github.com/cmhughes/latexindent.pl/issues/222} for tips.
+		Users of NixOS might like to see
+		\href{https://github.com/cmhughes/latexindent.pl/issues/222}{https://github.com/cmhughes/latexindent.pl/issues/222}
+		for tips.
 	\subsubsection{Mac}
 		Users of the Macintosh operating system might like to explore the following commands, for
 		example:
@@ -124,7 +127,7 @@
 		readily available on CPAN \cite{cpan}.
 
 		\texttt{indent.log} will contain details of the location
-		of the Perl modules on your system.  \texttt{latexindent.exe} is a standalone executable
+		of the Perl modules on your system. \texttt{latexindent.exe} is a standalone executable
 		for Windows (and therefore does not require a Perl distribution) and caches copies of the
 		Perl modules onto your system; if you wish to see where they are cached, use the
 		\texttt{trace} option, e.g
@@ -134,14 +137,14 @@
 
 	\section{Updating the path variable}\label{sec:updating-path}
 	 \texttt{latexindent.pl} has a few scripts (available at \cite{latexindent-home}) that can
-	 update the \texttt{path} variables. Thank you to \cite{jasjuang} for this
-	 feature. If you're on a Linux or Mac machine, then you'll want \texttt{CMakeLists.txt}
-	 from \cite{latexindent-home}.
+	 update the \texttt{path} variables. Thank you to \cite{jasjuang} for this feature. If
+	 you're on a Linux or Mac machine, then you'll want \texttt{CMakeLists.txt} from
+	 \cite{latexindent-home}.
 	\subsection{Add to path for Linux}
 		To add \texttt{latexindent.pl} to the path for Linux, follow these steps:
 		\begin{enumerate}
-			\item download  \texttt{latexindent.pl} and its associated modules, \texttt{defaultSettings.yaml}, to
-			      your chosen directory from \cite{latexindent-home} ;
+			\item download \texttt{latexindent.pl} and its associated modules,
+			      \texttt{defaultSettings.yaml}, to your chosen directory from \cite{latexindent-home} ;
 			\item within your directory, create a directory called \texttt{path-helper-files} and download
 			      \texttt{CMakeLists.txt} and \lstinline!cmake_uninstall.cmake.in! from
 			      \cite{latexindent-home}/path-helper-files to this directory;
@@ -162,8 +165,8 @@
 			      \begin{commandshell}
 ls /usr/local/bin
 \end{commandshell}
-			      again to check that \texttt{latexindent.pl}, its modules and \texttt{defaultSettings.yaml} have
-			      been added.
+			      again to check that \texttt{latexindent.pl}, its modules and
+			      \texttt{defaultSettings.yaml} have been added.
 		\end{enumerate}
 		To \emph{remove} the files, run
 		\begin{commandshell}
@@ -172,10 +175,10 @@
 	\subsection{Add to path for Windows}
 		To add \texttt{latexindent.exe} to the path for Windows, follow these steps:
 		\begin{enumerate}
-			\item download  \texttt{latexindent.exe}, \texttt{defaultSettings.yaml},  \texttt{add-to-path.bat} from
-			      \cite{latexindent-home} to your chosen directory;
-			\item open a command prompt and run the following command to see what is \emph{currently}
-			      in your \lstinline!%path%! variable;
+			\item download \texttt{latexindent.exe}, \texttt{defaultSettings.yaml},
+			      \texttt{add-to-path.bat} from \cite{latexindent-home} to your chosen directory;
+			\item open a command prompt and run the following command to see what is \emph{currently} in
+			      your \lstinline!%path%! variable;
 			      \begin{dosprompt}
 echo %path%
           \end{dosprompt}
@@ -226,8 +229,8 @@
        ... no arguments found
        -----
      \end{cmhlistings}
-	 Notice that the information given about \texttt{myenv} is `framed' using
-	 \texttt{+++++} and \lstinline!-----! respectively.
+	 Notice that the information given about \texttt{myenv} is `framed' using \texttt{+++++}
+	 and \lstinline!-----! respectively.
 
 	\section{Encoding indentconfig.yaml}\label{app:encoding}
 	 In relation to \vref{sec:indentconfig}, Windows users that encounter encoding issues with
@@ -243,17 +246,17 @@
 	 and can then use the settings given in \cref{lst:indentconfig-encoding1} within their
 	 \texttt{indentconfig.yaml}, where 936 is the result of the \texttt{chcp} command.
 
-	 \cmhlistingsfromfile*{demonstrations/encoding1.yaml}[yaml-TCB]{\texttt{encoding} demonstration for \texttt{indentconfig.yaml}}{lst:indentconfig-encoding1}
+	 \cmhlistingsfromfile{demonstrations/encoding1.yaml}[yaml-TCB]{\texttt{encoding} demonstration for \texttt{indentconfig.yaml}}{lst:indentconfig-encoding1}
 
 	\section{dos2unix linebreak adjustment}
 
 	\yamltitle{dos2unixlinebreaks}*{integer}
 		If you use \texttt{latexindent.pl} on a dos-based Windows file on Linux
-		\announce*{2021-06-19}{dos2unix linebreaks} then you may find that trailing horizontal space is not removed
-		as you hope.
+		\announce{2021-06-19}{dos2unix linebreaks} then you may find that trailing horizontal
+		space is not removed as you hope.
 
-		In such a case, you may wish to try setting \texttt{dos2unixlinebreaks} to 1 and employing,
-		for example, the following command.
+		In such a case, you may wish to try setting \texttt{dos2unixlinebreaks} to 1 and
+		employing, for example, the following command.
 
 		\begin{commandshell}
 latexindent.pl -y="dos2unixlinebreaks:1" myfile.tex
@@ -278,11 +281,10 @@
 latexindent.pl myfile.tex -outputfile=outputfile.tex 
 latexindent.pl myfile.tex -outputfile outputfile.tex 
 \end{commandshell}
-	 noting that the \emph{output} file is given \emph{next to} the
-	 \texttt{-o} switch.
+	 noting that the \emph{output} file is given \emph{next to} the \texttt{-o} switch.
 
-	 The fields given in \cref{lst:obsoleteYaml} are \emph{obsolete} from Version 3.0
-	 onwards. \cmhlistingsfromfile{demonstrations/obsolete.yaml}[yaml-obsolete]{Obsolete YAML fields from Version 3.0}{lst:obsoleteYaml}
+	 The fields given in \cref{lst:obsoleteYaml} are \emph{obsolete} from Version 3.0 onwards.
+	 \cmhlistingsfromfile{demonstrations/obsolete.yaml}[yaml-obsolete]{Obsolete YAML fields from Version 3.0}{lst:obsoleteYaml}
 
 	 There is a slight difference when specifying indentation after headings; specifically, we
 	 now write \texttt{indentAfterThisHeading} instead of \texttt{indent}. See
@@ -297,9 +299,9 @@
 	 \end{minipage}%
 
 	 To specify \texttt{noAdditionalIndent} for display-math environments in Version 2.2, you
-	 would write YAML as in \cref{lst:noAdditionalIndentOld}; as of Version 3.0, you would write YAML
-	 as in \cref{lst:indentAfterThisHeadingNew1} or, if you're using \texttt{-m} switch,
-	 \cref{lst:indentAfterThisHeadingNew2}.
+	 would write YAML as in \cref{lst:noAdditionalIndentOld}; as of Version 3.0, you would
+	 write YAML as in \cref{lst:indentAfterThisHeadingNew1} or, if you're using \texttt{-m}
+	 switch, \cref{lst:indentAfterThisHeadingNew2}.
 	 \index{specialBeginEnd!update to displaymath V3.0}
 
 	 \begin{minipage}{.45\textwidth}
@@ -312,7 +314,8 @@
 		 \cmhlistingsfromfile{demonstrations/noAddtionalIndentNew1.yaml}[yaml-TCB]{\texttt{noAdditionalIndent} for \texttt{displayMath} in Version 3.0}{lst:indentAfterThisHeadingNew2}
 	 \end{minipage}%
 
-	 \mbox{}\hfill	  \begin{minipage}{.25\textwidth}
+	 \mbox{}\hfill
+	 \begin{minipage}{.25\textwidth}
 		 \hrule
 
 		 \hfill\itshape End\\\mbox{}\hfill\mbox{}\rlap{\hfill\includegraphics{logo}}

Modified: trunk/Master/texmf-dist/doc/support/latexindent/figure-schematic.tex
===================================================================
--- trunk/Master/texmf-dist/doc/support/latexindent/figure-schematic.tex	2021-08-01 02:06:28 UTC (rev 60131)
+++ trunk/Master/texmf-dist/doc/support/latexindent/figure-schematic.tex	2021-08-01 20:35:09 UTC (rev 60132)
@@ -3,23 +3,21 @@
 \usetikzlibrary{positioning}
 \begin{document}
 \begin{tikzpicture}[
-		needed/.style={very thick, draw=blue,fill=blue!20,
-				text centered, minimum height=2.5em,rounded corners=1ex},
-		optional/.style={draw=black, very thick,scale=0.8,
-				text centered, minimum height=2.5em,rounded corners=1ex},
+		needed/.style={very thick, draw=blue,fill=blue!20, text centered, minimum height=2.5em,rounded corners=1ex},
+		optional/.style={draw=black, very thick,scale=0.8, text centered, minimum height=2.5em,rounded corners=1ex},
 		optionalfill/.style={fill=black!10},
 		connections/.style={draw=black!30,dotted,line width=3pt,text=red},
 	]
 	% Draw diagram elements
-	\node (latexindent) [needed,circle]  {\texttt{latexindent.pl}};
-	\node (default) [needed,above right=.5cm of latexindent]  {\texttt{defaultSettings.yaml}};
-	\node (indentconfig) [optional,right=of latexindent]  {\texttt{indentconfig.yaml}};
-	\node (any) [optional,optionalfill,above right=of indentconfig]  {\texttt{any.yaml}};
-	\node (name) [optional,optionalfill,right=of indentconfig]  {\texttt{name.yaml}};
-	\node (you) [optional,optionalfill,below right=of indentconfig]  {\texttt{you.yaml}};
-	\node (want) [optional,optionalfill,below=of indentconfig]  {\texttt{want.yaml}};
-	\node (local) [optional,below=of latexindent]  {\texttt{localSettings.yaml}};
-	\node (yamlswitch) [optional,left=of latexindent]  {\texttt{-y switch}};
+	\node (latexindent) [needed,circle] {\texttt{latexindent.pl}};
+	\node (default) [needed,above right=.5cm of latexindent] {\texttt{defaultSettings.yaml}};
+	\node (indentconfig) [optional,right=of latexindent] {\texttt{indentconfig.yaml}};
+	\node (any) [optional,optionalfill,above right=of indentconfig] {\texttt{any.yaml}};
+	\node (name) [optional,optionalfill,right=of indentconfig] {\texttt{name.yaml}};
+	\node (you) [optional,optionalfill,below right=of indentconfig] {\texttt{you.yaml}};
+	\node (want) [optional,optionalfill,below=of indentconfig] {\texttt{want.yaml}};
+	\node (local) [optional,below=of latexindent] {\texttt{localSettings.yaml}};
+	\node (yamlswitch) [optional,left=of latexindent] {\texttt{-y switch}};
 	% Draw arrows between elements
 	\draw[connections,solid] (latexindent) to[in=-90]node[pos=0.5,anchor=north]{1} (default.south) ;
 	\draw[connections,optional] (latexindent) -- node[pos=0.5,anchor=north]{2} (indentconfig) ;

Modified: trunk/Master/texmf-dist/doc/support/latexindent/latexindent.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/support/latexindent/latexindent.tex
===================================================================
--- trunk/Master/texmf-dist/doc/support/latexindent/latexindent.tex	2021-08-01 02:06:28 UTC (rev 60131)
+++ trunk/Master/texmf-dist/doc/support/latexindent/latexindent.tex	2021-08-01 20:35:09 UTC (rev 60132)
@@ -12,12 +12,12 @@
 %
 %   This program is distributed in the hope that it will be useful,
 %   but WITHOUT ANY WARRANTY; without even the implied warranty of
-%   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+%   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
 %   GNU General Public License for more details.
 %
 %   See <http://www.gnu.org/licenses/>.
 \usepackage[left=4.5cm,right=2.5cm,showframe=false,
-	top=2cm,bottom=1.5cm,marginparsep=2cm]{geometry}                      % page setup
+	top=2cm,bottom=1.5cm,marginparsep=2cm]{geometry} % page setup
 \usepackage{lmodern}
 \usepackage{parskip}                                 % paragraph skips
 \usepackage{booktabs}                                % beautiful tables
@@ -31,7 +31,7 @@
 \usepackage{fontawesome}
 \usepackage[sc,format=hang,font=small]{caption}      % captions
 \usepackage[backend=bibtex]{biblatex}                % bibliography
-\usepackage{tcolorbox}                                % framed environments
+\usepackage{tcolorbox}                               % framed environments
 \usepackage{tikz}
 \usepackage{xparse}
 \usepackage[charter]{mathdesign}                     % changes font
@@ -79,9 +79,21 @@
 \tcbset{doclang/new={{\bfseries\color{green!50!black}N\normalfont\color{black}}}}
 \tcbset{doclang/updated={{\bfseries\color{green!50!black}U\normalfont\color{black}}}}
 \tcbset{doc marginnote={width=1.6cm}}
+
+% \announce * { YYYY-MM-DD }*{ <announcement text> }
+%
+%   NEW as of current version
+%       \announce*{date}*[text] means *updated* as of <date>
+%       \announce*{date}[text]  means *new* as of <date>
+%
+%   NOT new as of current version
+%       \announce{date}*[text] means *updated* as of <date>
+%       \announce{date}[text]  means *new* as of <date>
+%
 \NewDocumentCommand{\announce}{ s m s m }{%
 	\IfBooleanTF{#1}%
 	{% \announce*
+		% NEW in current version
 		\tcbdocmarginnote[overlay={\node at ([yshift=0mm,xshift=1mm]frame.north east) {\stardemo}; }]{%
 			\IfBooleanTF{#3}%
 			{% \announce*{date}*[text] means *updated* as of <date>
@@ -100,6 +112,7 @@
 		}%
 	}%
 	{% \announce
+		% NOT new in current version
 		\tcbdocmarginnote{%
 			\IfBooleanTF{#3}%
 			{% \announce{date}*[text] means *updated* as of <date>
@@ -223,9 +236,9 @@
 		raster valign=top,raster columns=2,#1]}{\end{tcbraster}}
 
 % \cmhlistingsfromfile
-%                   *    no star: not new, star: new
+%                   * no star: not new, star: new
 %                   [ listing/minted options ]
-%                   *    no star: uses minted library, star: uses listings library star: 
+%                   * no star: uses minted library, star: uses listings library star: 
 %                   {<name of listing file>}
 %                   [<options for tcolorbox>]
 %                   {<title>}
@@ -232,9 +245,9 @@
 %                   {<label>}
 %
 % for example,
-%   \cmhlistingsfromfile*[listing options]...  uses listings library and is NEW
-%   \cmhlistingsfromfile[listing options]...   uses listings library
-%   \cmhlistingsfromfile[listing options]*...  uses minted library
+%   \cmhlistingsfromfile*[listing options]... uses listings library and is NEW
+%   \cmhlistingsfromfile[listing options]... uses listings library
+%   \cmhlistingsfromfile[listing options]*... uses minted library
 %   \cmhlistingsfromfile*[listing options]*... uses minted library and is NEW
 \DeclareTCBInputListing[use counter=lstlisting]{\cmhlistingsfromfile}{s O{} s m O{} m m}{%
 	cmhlistings,
@@ -315,181 +328,181 @@
 
 \lstdefinestyle{fileExtensionPreference}{
 	style=yaml-LST,
-	firstnumber=41,linerange={41-45},
+	firstnumber=44,linerange={44-48},
 	numbers=left,
 }
 
 \lstdefinestyle{logFilePreferences}{
 	style=yaml-LST,
-	firstnumber=85,linerange={85-99},
+	firstnumber=88,linerange={88-102},
 	numbers=left,
 }
 
 \lstdefinestyle{verbatimEnvironments}{
 	style=yaml-LST,
-	firstnumber=103,linerange={103-106},
+	firstnumber=106,linerange={106-109},
 	numbers=left,
 }
 
 \lstdefinestyle{verbatimCommands}{
 	style=yaml-LST,
-	firstnumber=109,linerange={109-111},
+	firstnumber=112,linerange={112-114},
 	numbers=left,
 }
 
 \lstdefinestyle{noIndentBlock}{
 	style=yaml-LST,
-	firstnumber=116,linerange={116-118},
+	firstnumber=119,linerange={119-121},
 	numbers=left,
 }
 
 \lstdefinestyle{removeTrailingWhitespace}{
 	style=yaml-LST,
-	firstnumber=147,linerange={147-149},
+	firstnumber=150,linerange={150-152},
 	numbers=left,
 }
 
 \lstdefinestyle{fileContentsEnvironments}{
 	style=yaml-LST,
-	firstnumber=122,linerange={122-124},
+	firstnumber=125,linerange={125-127},
 	numbers=left,
 }
 
 \lstdefinestyle{lookForPreamble}{
 	style=yaml-LST,
-	firstnumber=130,linerange={130-134},
+	firstnumber=133,linerange={133-137},
 	numbers=left,
 }
 
 \lstdefinestyle{lookForAlignDelims}{
 	style=yaml-LST,
-	firstnumber=152,linerange={152-168},
+	firstnumber=155,linerange={155-171},
 	numbers=left,
 }
 
 \lstdefinestyle{indentAfterItems}{
 	style=yaml-LST,
-	firstnumber=225,linerange={225-229},
+	firstnumber=228,linerange={228-232},
 	numbers=left,
 }
 
 \lstdefinestyle{itemNames}{
 	style=yaml-LST,
-	firstnumber=235,linerange={235-237},
+	firstnumber=238,linerange={238-240},
 	numbers=left,
 }
 
 \lstdefinestyle{specialBeginEnd}{
 	style=yaml-LST,
-	firstnumber=241,linerange={241-254},
+	firstnumber=244,linerange={244-257},
 	numbers=left,
 }
 
 \lstdefinestyle{indentAfterHeadings}{
 	style=yaml-LST,
-	firstnumber=264,linerange={264-273},
+	firstnumber=267,linerange={267-276},
 	numbers=left,
 }
 
 \lstdefinestyle{noAdditionalIndentGlobalEnv}{
 	style=yaml-LST,
-	firstnumber=322,linerange={322-323},
+	firstnumber=325,linerange={325-326},
 	numbers=left,
 }
 
 \lstdefinestyle{noAdditionalIndentGlobal}{
 	style=yaml-LST,
-	firstnumber=322,linerange={322-334},
+	firstnumber=325,linerange={325-337},
 	numbers=left,
 }
 
 \lstdefinestyle{indentRulesGlobalEnv}{
 	style=yaml-LST,
-	firstnumber=338,linerange={338-339},
+	firstnumber=341,linerange={341-342},
 	numbers=left,
 }
 
 \lstdefinestyle{indentRulesGlobal}{
 	style=yaml-LST,
-	firstnumber=338,linerange={338-350},
+	firstnumber=341,linerange={341-353},
 	numbers=left,
 }
 
 \lstdefinestyle{commandCodeBlocks}{
 	style=yaml-LST,
-	firstnumber=353,linerange={353-368},
+	firstnumber=356,linerange={356-371},
 	numbers=left,
 }
 
 \lstdefinestyle{modifylinebreaks}{
 	style=yaml-LST,
-	firstnumber=483,linerange={483-485},
+	firstnumber=486,linerange={486-488},
 	numbers=left,
 }
 
 \lstdefinestyle{textWrapOptions}{
 	style=yaml-LST,
-	firstnumber=510,linerange={510-511},
+	firstnumber=513,linerange={513-514},
 	numbers=left,
 }
 
 \lstdefinestyle{textWrapOptionsAll}{
 	style=yaml-LST,
-	firstnumber=510,linerange={510-527},
+	firstnumber=513,linerange={513-531},
 	numbers=left,
 }
 
 \lstdefinestyle{removeParagraphLineBreaks}{
 	style=yaml-LST,
-	firstnumber=528,linerange={528-542},
+	firstnumber=532,linerange={532-546},
 	numbers=left,
 }
 
 \lstdefinestyle{paragraphsStopAt}{
 	style=yaml-LST,
-	firstnumber=543,linerange={543-552},
+	firstnumber=547,linerange={547-556},
 	numbers=left,
 }
 
 \lstdefinestyle{oneSentencePerLine}{
 	style=yaml-LST,
-	firstnumber=486,linerange={486-509},
+	firstnumber=489,linerange={489-512},
 	numbers=left,
 }
 
 \lstdefinestyle{sentencesFollow}{
 	style=yaml-LST,
-	firstnumber=491,linerange={491-499},
+	firstnumber=494,linerange={494-502},
 	numbers=left,
 }
 
 \lstdefinestyle{sentencesBeginWith}{
 	style=yaml-LST,
-	firstnumber=500,linerange={500-503},
+	firstnumber=503,linerange={503-506},
 	numbers=left,
 }
 
 \lstdefinestyle{sentencesEndWith}{
 	style=yaml-LST,
-	firstnumber=504,linerange={504-509},
+	firstnumber=507,linerange={507-512},
 	numbers=left,
 }
 
 \lstdefinestyle{modifylinebreaksEnv}{
 	style=yaml-LST,
-	firstnumber=553,linerange={553-562},
+	firstnumber=557,linerange={557-566},
 	numbers=left,
 }
 
 \lstdefinestyle{replacements}{
 	style=yaml-LST,
-	firstnumber=614,linerange={614-622},
+	firstnumber=618,linerange={618-626},
 	numbers=left,
 }
 
 \lstdefinestyle{fineTuning}{
 	style=yaml-LST,
-	firstnumber=625,linerange={625-648},
+	firstnumber=629,linerange={629-652},
 	numbers=left,
 }
 
@@ -521,12 +534,12 @@
 			\draw[inner sep=0,minimum size=rnd*15pt+2pt]
 			decorate[decoration={stars,segment length=2cm}] {
 					decorate[decoration={zigzag,segment length=2cm,amplitude=0.3cm}] {
-							([xshift=-.5cm,yshift=0.1cm]frame.south west) --  ([xshift=-.5cm,yshift=0.4cm]frame.north west)
+							([xshift=-.5cm,yshift=0.1cm]frame.south west) -- ([xshift=-.5cm,yshift=0.4cm]frame.north west)
 						}};
 			\draw[inner sep=0,minimum size=rnd*15pt+2pt]
 			decorate[decoration={stars,segment length=2cm}] {
 					decorate[decoration={zigzag,segment length=2cm,amplitude=0.3cm}] {
-							([xshift=.75cm,yshift=0.1cm]frame.south east) --  ([xshift=.75cm,yshift=0.6cm]frame.north east)
+							([xshift=.75cm,yshift=0.1cm]frame.south east) -- ([xshift=.75cm,yshift=0.6cm]frame.north east)
 						}};
 			\node[anchor=north west,outer sep=2pt,opacity=0.25] at ([xshift=-4.25cm]frame.north west) {\resizebox{3cm}{!}{\faGithub}};
 		},
@@ -607,12 +620,6 @@
 	\marginpar{\huge \color{red} \framebox{FIX}}%
 	\typeout{FIXTHIS: p\thepage : #1^^J}%
 }
-% custom section
-\titleformat{\section}
-{\normalfont\Large\bfseries}
-{\llap{\thesection\hskip.5cm}}
-{0pt}
-{}
 
 \newcommand*\ruleline[1]{%
 	\par\noindent\raisebox{.8ex}{\makebox[\linewidth]{\hrulefill\hspace{1ex}\raisebox{-1.8ex}{#1}\hspace{1ex}\hrulefill}}}
@@ -619,6 +626,7 @@
 
 \newcommand{\imagetouse}{logo-bw}
 
+% custom section
 \titleformat% Formatting the header
 {\section} % command
 [block] % shape - Only managed to get it working with block
@@ -634,6 +642,7 @@
 {\llap{\thesubsection\hskip.5cm}}
 {0pt}
 {}
+
 % custom subsubsection
 \titleformat{\subsubsection}
 {\normalfont\bfseries}
@@ -641,9 +650,18 @@
 {0pt}
 {}
 
+% custom paragraph
+\titleformat{\paragraph}
+{\normalfont\bfseries}
+{\llap{\theparagraph\hskip.5cm}}
+{0pt}
+{}
+
+% title spacing
 \titlespacing\section{0pt}{12pt plus 4pt minus 2pt}{34pt plus 2pt minus 2pt}
 \titlespacing\subsection{0pt}{12pt plus 4pt minus 2pt}{4pt plus 2pt minus 2pt}
 \titlespacing\subsubsection{0pt}{12pt plus 4pt minus 2pt}{4pt plus 2pt minus 2pt}
+\titlespacing\paragraph{0pt}{12pt plus 4pt minus 2pt}{4pt plus 2pt minus 2pt}
 
 % list of listings
 \contentsuse{lstlisting}{lol}
@@ -662,6 +680,7 @@
   {\titlerule*[0.5em]{$\cdot$}\contentspage}
   []
 \AtBeginDocument{\addtocontents{lol}{\protect\begin{widepage}\protect\begin{multicols}{2}}}
+\preto{\printindex}{\addtocontents{lol}{\protect\end{multicols}\protect\end{widepage}}}
 
 % cleveref settings
 \crefname{table}{Table}{Tables}
@@ -748,7 +767,8 @@
   {}% <numberless-entry-format>
   {\titlerule*[0.5em]{$\cdot$}\contentspage}
 
-\setcounter{secnumdepth}{5}
+\setcounter{secnumdepth}{6}
+\setcounter{tocdepth}{4}
 \makeindex
 \begin{document}
 \renewcommand*{\thefootnote}{\arabic{footnote}}
@@ -773,14 +793,17 @@
  \stopcontents[noAdditionalIndent]
  \input{subsec-commands-and-their-options}
  \input{sec-the-m-switch}
+ \input{subsec-text-wrap}
+ \input{subsec-remove-para-line-breaks}
+ \input{subsec-combine-text-wrap-para-line-breaks}
+ \input{subsec-text-wrap-summary}
+ \input{subsec-one-sentence-per-line}
+ \input{subsec-poly-switches}
  \stopcontents[the-m-switch]
- \input{subsec-partnering-poly-switches}
- \input{subsec-conflicting-poly-switches}
  \input{sec-replacements}
  \input{sec-fine-tuning}
  \input{sec-conclusions-know-limitations}
  \input{references}
  \input{appendices}
- \addtocontents{lol}{\protect\end{multicols}\protect\end{widepage}}
  \printindex
 \end{document}

Modified: trunk/Master/texmf-dist/doc/support/latexindent/sec-conclusions-know-limitations.tex
===================================================================
--- trunk/Master/texmf-dist/doc/support/latexindent/sec-conclusions-know-limitations.tex	2021-08-01 02:06:28 UTC (rev 60131)
+++ trunk/Master/texmf-dist/doc/support/latexindent/sec-conclusions-know-limitations.tex	2021-08-01 20:35:09 UTC (rev 60132)
@@ -4,22 +4,25 @@
  that are \emph{unknown}!
 
  For example, with reference to the multicolumn alignment routine in
- \vref{lst:tabular2-mod2}), when working with code blocks in which multicolumn commands
+ \vref{lst:tabular2-mod2}, when working with code blocks in which multicolumn commands
  overlap, the algorithm can fail.
 
- Another limitation is to do with efficiency, particularly when the \texttt{-m}
- switch is active, as this adds many checks and processes. The current implementation
- relies upon finding and storing \emph{every} code block (see the discussion on
- \cpageref{page:phases}); I hope that, in a future version, only \emph{nested} code
- blocks will need to be stored in the `packing' phase, and that this will improve the
- efficiency of the script.
+ Another limitation is to do with efficiency, particularly when the \texttt{-m} switch is
+ active, as this adds many checks and processes. The current implementation relies upon
+ finding and storing \emph{every} code block (see the discussion on
+ \cpageref{page:phases}); I hope that, in a future version, only \emph{nested} code blocks
+ will need to be stored in the `packing' phase, and that this will improve the efficiency
+ of the script.
 
  You can run \texttt{latexindent} on any file;%
- \announce{2019-07-13}*{ability to call latexindent on any file} if you don't specify an extension, then the extensions that you
- specify in \lstinline[breaklines=true]!fileExtensionPreference! (see \vref{lst:fileExtensionPreference}) will be consulted. If you
- find a case in which the script struggles, please feel free to report it at
- \cite{latexindent-home}, and in the meantime, consider using a \texttt{noIndentBlock} (see \cpageref{lst:noIndentBlock}).
+ \announce{2019-07-13}*{ability to call latexindent on any file} if you don't specify an
+ extension, then the extensions that you specify in
+ \lstinline[breaklines=true]!fileExtensionPreference! (see
+ \vref{lst:fileExtensionPreference}) will be consulted. If you find a case in which the
+ script struggles, please feel free to report it at \cite{latexindent-home}, and in the
+ meantime, consider using a \texttt{noIndentBlock} (see \cpageref{lst:noIndentBlock}).
 
  I hope that this script is useful to some; if you find an example where the script does
  not behave as you think it should, the best way to contact me is to report an issue on
- \cite{latexindent-home}; otherwise, feel free to find me on the \url{http://tex.stackexchange.com/users/6621/cmhughes}.
+ \cite{latexindent-home}; otherwise, feel free to find me on the
+ \url{http://tex.stackexchange.com/users/6621/cmhughes}.

Modified: trunk/Master/texmf-dist/doc/support/latexindent/sec-default-user-local.tex
===================================================================
--- trunk/Master/texmf-dist/doc/support/latexindent/sec-default-user-local.tex	2021-08-01 02:06:28 UTC (rev 60131)
+++ trunk/Master/texmf-dist/doc/support/latexindent/sec-default-user-local.tex	2021-08-01 20:35:09 UTC (rev 60132)
@@ -1,41 +1,40 @@
 % arara: pdflatex: {shell: yes, files: [latexindent]}
 \section{defaultSettings.yaml}\label{sec:defuseloc}
- \texttt{latexindent.pl} loads its settings from \texttt{defaultSettings.yaml}. The idea is to
- separate the behaviour of the script from the internal working -- this is very similar to
- the way that we separate content from form when writing our documents in \LaTeX.
+ \texttt{latexindent.pl} loads its settings from \texttt{defaultSettings.yaml}. The idea
+ is to separate the behaviour of the script from the internal working -- this is very
+ similar to the way that we separate content from form when writing our documents in
+ \LaTeX.
 
- If you look in \texttt{defaultSettings.yaml} you'll find the switches that govern the behaviour
- of \texttt{latexindent.pl}. If you're not sure where \texttt{defaultSettings.yaml} resides on
- your computer, don't worry as \texttt{indent.log} will tell you where to find it.
- \texttt{defaultSettings.yaml} is commented, but here is a description of what each switch is
- designed to do. The default value is given in each case; whenever you see
- \emph{integer} in \emph{this} section, assume that it must be
- greater than or equal to \texttt{0} unless otherwise stated.
+ If you look in \texttt{defaultSettings.yaml} you'll find the switches that govern the
+ behaviour of \texttt{latexindent.pl}. If you're not sure where
+ \texttt{defaultSettings.yaml} resides on your computer, don't worry as
+ \texttt{indent.log} will tell you where to find it. \texttt{defaultSettings.yaml} is
+ commented, but here is a description of what each switch is designed to do. The default
+ value is given in each case; whenever you see \emph{integer} in \emph{this} section,
+ assume that it must be greater than or equal to \texttt{0} unless otherwise stated.
 
- For most of the settings in \texttt{defaultSettings.yaml} that are specified as integers, then
- we understand \texttt{0} to represent `off' and \texttt{1} to
- represent `on'. For fields that allow values other than \texttt{0} or
- \texttt{1}, it is hoped that the specific context and associated commentary
- should make it clear which values are allowed.
+ For most of the settings in \texttt{defaultSettings.yaml} that are specified as integers,
+ then we understand \texttt{0} to represent `off' and \texttt{1} to represent `on'. For
+ fields that allow values other than \texttt{0} or \texttt{1}, it is hoped that the
+ specific context and associated commentary should make it clear which values are allowed.
 
 \yamltitle{fileExtensionPreference}*{fields}
 	\texttt{latexindent.pl} can be called to
-	act on a file without specifying the file extension.  For example we can call
+	act on a file without specifying the file extension. For example we can call
 	\begin{commandshell}
 latexindent.pl myfile
 \end{commandshell}
-	in which case the script will look for \texttt{myfile} with the extensions
-	specified in \texttt{fileExtensionPreference} in their numeric order. If no match is found, the
-	script will exit. As with all of the fields, you should change and/or add to this as
-	necessary.
+	in which case the script will look for \texttt{myfile} with the extensions specified in
+	\texttt{fileExtensionPreference} in their numeric order. If no match is found, the script
+	will exit. As with all of the fields, you should change and/or add to this as necessary.
 
 	\cmhlistingsfromfile[style=fileExtensionPreference]*{../defaultSettings.yaml}[width=.8\linewidth,before=\centering,yaml-TCB]{\texttt{fileExtensionPreference}}{lst:fileExtensionPreference}
 
 	Calling \texttt{latexindent.pl myfile} with the (default) settings specified in
 	\cref{lst:fileExtensionPreference} means that the script will first look for
-	\texttt{myfile.tex}, then \texttt{myfile.sty}, \texttt{myfile.cls}, and
-	finally \texttt{myfile.bib} in order\footnote{Throughout this manual, listings shown with line numbers represent code
-		taken directly from \texttt{defaultSettings.yaml}.}.
+	\texttt{myfile.tex}, then \texttt{myfile.sty}, \texttt{myfile.cls}, and finally
+	\texttt{myfile.bib} in order\footnote{Throughout this manual, listings shown with line
+		numbers represent code taken directly from \texttt{defaultSettings.yaml}.}.
 
 	\index{backup files!extension settings}
 
@@ -43,40 +42,38 @@
 \yamltitle{backupExtension}*{extension name}
 
 	If you call \texttt{latexindent.pl} with the \texttt{-w} switch (to overwrite
-	\texttt{myfile.tex}) then it will create a backup file before doing any indentation;
-	the default extension is \texttt{.bak}, so, for example,
-	\texttt{myfile.bak0} would be created when calling \texttt{latexindent.pl myfile.tex} for the
-	first time.
+	\texttt{myfile.tex}) then it will create a backup file before doing any indentation; the
+	default extension is \texttt{.bak}, so, for example, \texttt{myfile.bak0} would be
+	created when calling \texttt{latexindent.pl myfile.tex} for the first time.
 
-	By default, every time you subsequently call \texttt{latexindent.pl} with the
-	\texttt{-w} to act upon \texttt{myfile.tex}, it will create successive
-	back up files: \texttt{myfile.bak1}, \texttt{myfile.bak2}, etc.
+	By default, every time you subsequently call \texttt{latexindent.pl} with the \texttt{-w}
+	to act upon \texttt{myfile.tex}, it will create successive back up files:
+	\texttt{myfile.bak1}, \texttt{myfile.bak2}, etc.
 
 \yamltitle{onlyOneBackUp}*{integer}
 	\label{page:onlyonebackup}
 	\index{backup files!number of backup files}
-	If you don't want a backup for every time that you call \texttt{latexindent.pl} (so
-	you don't want \texttt{myfile.bak1}, \texttt{myfile.bak2}, etc) and you
-	simply want \texttt{myfile.bak} (or whatever you chose \texttt{backupExtension} to be) then change \texttt{onlyOneBackUp} to
-	\texttt{1}; the default value of \texttt{onlyOneBackUp} is
+	If you don't want a backup for every time that you call \texttt{latexindent.pl} (so you
+	don't want \texttt{myfile.bak1}, \texttt{myfile.bak2}, etc) and you simply want
+	\texttt{myfile.bak} (or whatever you chose \texttt{backupExtension} to be) then change
+	\texttt{onlyOneBackUp} to \texttt{1}; the default value of \texttt{onlyOneBackUp} is
 	\texttt{0}.
 	\index{backup files!maximum number of backup files}
 	\index{backup files!number of backup files}
 
 \yamltitle{maxNumberOfBackUps}*{integer}
-	Some users may only want a finite number of backup files, say at most
-	$3$, in which case, they can change this switch. The smallest value of
-	\texttt{maxNumberOfBackUps} is $0$ which will \emph{not}
-	prevent backup files being made; in this case, the behaviour will be dictated entirely by
-	\texttt{onlyOneBackUp}. The default value of \texttt{maxNumberOfBackUps} is
-	\texttt{0}.
+	Some users may only want a finite number of backup files, say at most $3$, in which case,
+	they can change this switch. The smallest value of \texttt{maxNumberOfBackUps} is $0$
+	which will \emph{not} prevent backup files being made; in this case, the behaviour will
+	be dictated entirely by \texttt{onlyOneBackUp}. The default value of
+	\texttt{maxNumberOfBackUps} is \texttt{0}.
 
 \yamltitle{cycleThroughBackUps}*{integer}
 	\index{backup files!cycle through}
 	Some users may wish to cycle through backup files, by deleting the oldest backup file and
 	keeping only the most recent; for example, with \texttt{maxNumberOfBackUps: 4}, and
-	\texttt{cycleThroughBackUps} set to \texttt{1} then the \texttt{copy}
-	procedure given below would be obeyed.
+	\texttt{cycleThroughBackUps} set to \texttt{1} then the \texttt{copy} procedure given
+	below would be obeyed.
 
 	\begin{commandshell}
 copy myfile.bak1 to myfile.bak0
@@ -89,21 +86,22 @@
 \yamltitle{logFilePreferences}*{fields}
 	\texttt{latexindent.pl} writes information to \texttt{indent.log}, some
 	of which can be customized by changing \texttt{logFilePreferences}; see
-	\cref{lst:logFilePreferences}. If you load your own user settings (see \vref{sec:indentconfig})
-	then \texttt{latexindent.pl} will detail them in \texttt{indent.log}; you can choose
-	not to have the details logged by switching \texttt{showEveryYamlRead} to
-	\texttt{0}. Once all of your settings have been loaded, you can see the
-	amalgamated settings in the log file by switching \texttt{showAmalgamatedSettings} to
-	\texttt{1}, if you wish.
+	\cref{lst:logFilePreferences}. If you load your own user settings (see
+	\vref{sec:indentconfig}) then \texttt{latexindent.pl} will detail them in
+	\texttt{indent.log}; you can choose not to have the details logged by switching
+	\texttt{showEveryYamlRead} to \texttt{0}. Once all of your settings have been loaded, you
+	can see the amalgamated settings in the log file by switching
+	\texttt{showAmalgamatedSettings} to \texttt{1}, if you wish.
 
-	\cmhlistingsfromfile*[style=logFilePreferences,]*{../defaultSettings.yaml}[width=.9\linewidth,before=\centering,yaml-TCB]{\texttt{logFilePreferences}}{lst:logFilePreferences}
+	\cmhlistingsfromfile[style=logFilePreferences,]*{../defaultSettings.yaml}[width=.9\linewidth,before=\centering,yaml-TCB]{\texttt{logFilePreferences}}{lst:logFilePreferences}
 
 	When%
-	\announce{2018-01-13}{showDecorationStartCodeBlockTrace feature for log file} either of the
-	\texttt{trace} modes (see \cpageref{page:traceswitch}) are active, you will receive
-	detailed information in \texttt{indent.log}. You can specify character strings to
-	appear before and after the notification of a found code block using, respectively,
-	\texttt{showDecorationStartCodeBlockTrace} and \texttt{showDecorationFinishCodeBlockTrace}. A demonstration is given in
+	\announce{2018-01-13}{showDecorationStartCodeBlockTrace feature for log file} either of
+	the \texttt{trace} modes (see \cpageref{page:traceswitch}) are active, you will receive
+	detailed information in \texttt{indent.log}. You can specify character strings to appear
+	before and after the notification of a found code block using, respectively,
+	\texttt{showDecorationStartCodeBlockTrace} and
+	\texttt{showDecorationFinishCodeBlockTrace}. A demonstration is given in
 	\vref{app:logfile-demo}.
 
 	The log file will end with the characters given in \texttt{endLogFileWith}, and will
@@ -110,16 +108,16 @@
 	report the \texttt{GitHub} address of \texttt{latexindent.pl} to the log file if
 	\texttt{showGitHubInfoFooter} is set to \texttt{1}.
 
-	Note: \texttt{latexindent.pl} no longer uses the \texttt{log4perl} module to handle
-	the creation of the logfile.%
+	Note: \texttt{latexindent.pl} no longer uses the \texttt{log4perl} module to handle the
+	creation of the logfile.%
 	\announce{2021-03-14}*{no longer using log4perl}
 
 	Some of the options%
-	\announce*{2021-06-19}*{logFilePreferences updated to include Dumper options}for Perl's
+	\announce{2021-06-19}*{logFilePreferences updated to include Dumper options}for Perl's
 	\texttt{Dumper} module can be specified in \cref{lst:logFilePreferences}; see
-	\cite{dumper} and \cite{dumperdemo} for more information. These options
-	will mostly be helpful for those calling \texttt{latexindent.pl} with the
-	\texttt{-tt} option described in \cref{sec:commandline}.
+	\cite{dumper} and \cite{dumperdemo} for more information. These options will mostly be
+	helpful for those calling \texttt{latexindent.pl} with the \texttt{-tt} option described
+	in \cref{sec:commandline}.
 
 \subsection{Verbatim code blocks}
 \yamltitle{verbatimEnvironments}*{fields}
@@ -135,9 +133,9 @@
 		\cmhlistingsfromfile[style=verbatimCommands]*{../defaultSettings.yaml}[width=.8\linewidth,before=\centering,yaml-TCB]{\texttt{verbatimCommands}}{lst:verbatimCommands}
 	\end{cmhtcbraster}
 
-	Note that if you put an environment in	\texttt{verbatimEnvironments} and in other fields such
-	as \texttt{lookForAlignDelims} or \texttt{noAdditionalIndent} then \texttt{latexindent.pl} will
-	\emph{always} prioritize  \texttt{verbatimEnvironments}.
+	Note that if you put an environment in	\texttt{verbatimEnvironments} and in other fields
+	such as \texttt{lookForAlignDelims} or \texttt{noAdditionalIndent} then
+	\texttt{latexindent.pl} will \emph{always} prioritize \texttt{verbatimEnvironments}.
 
 \yamltitle{verbatimCommands}*{fields}
 	A field that contains a list of commands that are verbatim commands, for example
@@ -145,7 +143,8 @@
 	breaking routines (only relevant if the \texttt{-m} is active, see
 	\vref{sec:modifylinebreaks}).
 
-	With reference to \cref{lst:verbatimCommands}, by default \texttt{latexindent.pl} looks for
+	With reference to \cref{lst:verbatimCommands}, by default \texttt{latexindent.pl} looks
+	for
 	\lstinline|\verb| immediately followed by another character, and then it takes the
 	body as anything up to the next occurrence of the character; this means that, for
 	example, \lstinline|\verb!x+3!| is treated as a \texttt{verbatimCommands}.
@@ -152,28 +151,27 @@
 
 \yamltitle{noIndentBlock}*{fields}
 	If you have a block of code that you don't want \texttt{latexindent.pl} to touch (even if
-	\index{verbatim!noIndentBlock} it is \emph{not} a verbatim-like environment) then
-	you can wrap it in an environment from \texttt{noIndentBlock}; you can use any name you
-	like for this, provided you populate it as demonstrate in \cref{lst:noIndentBlock}.
+	\index{verbatim!noIndentBlock} it is \emph{not} a verbatim-like environment) then you can
+	wrap it in an environment from \texttt{noIndentBlock}; you can use any name you like for
+	this, provided you populate it as demonstrate in \cref{lst:noIndentBlock}.
 
 	\cmhlistingsfromfile[style=noIndentBlock]*{../defaultSettings.yaml}[width=.4\linewidth,before=\centering,yaml-TCB]{\texttt{noIndentBlock}}{lst:noIndentBlock}
 
 	Of course, you don't want to have to specify these as null environments in your code, so
-	you use them with a comment symbol, \lstinline!%!, followed by as many spaces
-	(possibly none) as you like; see \cref{lst:noIndentBlockdemo} for example.
+	you use them with a comment symbol, \lstinline!%!, followed by as many spaces (possibly
+	none) as you like; see \cref{lst:noIndentBlockdemo} for example.
 
 	\cmhlistingsfromfile{demonstrations/noindentblock.tex}{\texttt{noIndentBlock.tex}}{lst:noIndentBlockdemo}
 
-	Important note: it is assumed that the \texttt{noindent} block statements specified
-	in this way appear on their own line.
+	Important note: it is assumed that the \texttt{noindent} block statements specified in
+	this way appear on their own line.
 
 	The%
-	\announce*{2021-06-19}{noIndentBlock specified as regex} \texttt{noIndentBlock}
-	fields can also be specified in terms of \texttt{begin} and
-	\texttt{end} fields. We use the code in \cref{lst:noIndentBlock1} to demonstrate
-	this feature.
+	\announce{2021-06-19}{noIndentBlock specified as regex} \texttt{noIndentBlock} fields can also be specified in terms of \texttt{begin} and
+	\texttt{end} fields. We use the code in \cref{lst:noIndentBlock1} to demonstrate this
+	feature.
 
-	\cmhlistingsfromfile*{demonstrations/noindentblock1.tex}{\texttt{noIndentBlock1.tex}}{lst:noIndentBlock1}
+	\cmhlistingsfromfile{demonstrations/noindentblock1.tex}{\texttt{noIndentBlock1.tex}}{lst:noIndentBlock1}
 
 	The settings given in \cref{lst:noindent1,lst:noindent2} are equivalent:
 
@@ -181,9 +179,9 @@
 			raster left skip=-3.5cm,
 			raster right skip=-2cm,
 			raster column skip=.03\linewidth]
-		\cmhlistingsfromfile*{demonstrations/noindent1.yaml}[yaml-TCB]{\texttt{noindent1.yaml}}{lst:noindent1}
-		\cmhlistingsfromfile*{demonstrations/noindent2.yaml}[yaml-TCB]{\texttt{noindent2.yaml}}{lst:noindent2}
-		\cmhlistingsfromfile*{demonstrations/noindent3.yaml}[yaml-TCB]{\texttt{noindent3.yaml}}{lst:noindent3}
+		\cmhlistingsfromfile{demonstrations/noindent1.yaml}[yaml-TCB]{\texttt{noindent1.yaml}}{lst:noindent1}
+		\cmhlistingsfromfile{demonstrations/noindent2.yaml}[yaml-TCB]{\texttt{noindent2.yaml}}{lst:noindent2}
+		\cmhlistingsfromfile{demonstrations/noindent3.yaml}[yaml-TCB]{\texttt{noindent3.yaml}}{lst:noindent3}
 	\end{cmhtcbraster}
 
 	Upon running the commands
@@ -193,26 +191,26 @@
 \end{commandshell}
 	then we receive the output given in \cref{lst:noIndentBlock1-mod1}.
 
-	\cmhlistingsfromfile*{demonstrations/noindentblock1-mod1.tex}{\texttt{noIndentBlock1.tex} using \cref{lst:noindent1} or \cref{lst:noindent2}}{lst:noIndentBlock1-mod1}
+	\cmhlistingsfromfile{demonstrations/noindentblock1-mod1.tex}{\texttt{noIndentBlock1.tex} using \cref{lst:noindent1} or \cref{lst:noindent2}}{lst:noIndentBlock1-mod1}
 
-	The \texttt{begin}, \texttt{body} and \texttt{end} fields
-	for \texttt{noIndentBlock} are all \emph{regular expressions}. If the
-	\texttt{body} field is not specified, then it takes a default value of
+	The \texttt{begin}, \texttt{body} and \texttt{end} fields for \texttt{noIndentBlock} are
+	all \emph{regular expressions}. If the \texttt{body} field is not specified, then it
+	takes a default value of
 	\lstinline!.*?! which is written explicitly in \cref{lst:noindent1}. In this
-	context,
-	we interpret \lstinline!.*?! in words as \emph{the fewest number of characters (possibly none) until the `end' field is reached}.
+	context, we interpret \lstinline!.*?! in words as \emph{the fewest number of characters
+		(possibly none) until the `end' field is reached}.
 
-	The \texttt{lookForThis} field is optional, and can take the values 0 (off) or 1 (on);
-	by default, it is assumed to be 1 (on).
+	The \texttt{lookForThis} field is optional, and can take the values 0 (off) or 1 (on); by
+	default, it is assumed to be 1 (on).
 
-	Using \cref{lst:noindent3} demonstrates setting \texttt{lookForThis} to 0 (off);
-	running the command
+	Using \cref{lst:noindent3} demonstrates setting \texttt{lookForThis} to 0 (off); running
+	the command
 	\begin{commandshell}
 latexindent.pl -l noindent3.yaml noindent1
 \end{commandshell}
 	gives the output in \cref{lst:noIndentBlock1-mod3}.
 
-	\cmhlistingsfromfile*{demonstrations/noindentblock1-mod3.tex}{\texttt{noIndentBlock1.tex} using \cref{lst:noindent3}}{lst:noIndentBlock1-mod3}
+	\cmhlistingsfromfile{demonstrations/noindentblock1-mod3.tex}{\texttt{noIndentBlock1.tex} using \cref{lst:noindent3}}{lst:noIndentBlock1-mod3}
 
 	We will demonstrate this feature later in the documentation in \cref{lst:href3}.
 
@@ -221,9 +219,9 @@
 
 	Before \texttt{latexindent.pl} determines the difference between preamble (if any) and
 	the main document, it first searches for any of the environments specified in
-	\texttt{fileContentsEnvironments}, see \cref{lst:fileContentsEnvironments}. The behaviour of
-	\texttt{latexindent.pl} on these environments is determined by their location (preamble
-	or not), and the value \texttt{indentPreamble}, discussed next.
+	\texttt{fileContentsEnvironments}, see \cref{lst:fileContentsEnvironments}. The behaviour
+	of \texttt{latexindent.pl} on these environments is determined by their location
+	(preamble or not), and the value \texttt{indentPreamble}, discussed next.
 
 	\cmhlistingsfromfile[style=fileContentsEnvironments]*{../defaultSettings.yaml}[width=.8\linewidth,before=\centering,yaml-TCB]{\texttt{fileContentsEnvironments}}{lst:fileContentsEnvironments}
 
@@ -231,26 +229,25 @@
 
 	The preamble of a document can sometimes contain some trickier code for
 	\texttt{latexindent.pl} to operate upon. By default, \texttt{latexindent.pl} won't try to
-	operate on the preamble (as \texttt{indentPreamble} is set to \texttt{0}, by
-	default), but if you'd like \texttt{latexindent.pl} to try then change
-	\texttt{indentPreamble} to \texttt{1}.
+	operate on the preamble (as \texttt{indentPreamble} is set to \texttt{0}, by default),
+	but if you'd like \texttt{latexindent.pl} to try then change \texttt{indentPreamble} to
+	\texttt{1}.
 
 \yamltitle{lookForPreamble}*{fields}
 
-	Not all files contain preamble; for example, \texttt{sty},
-	\texttt{cls} and \texttt{bib} files typically do
-	\emph{not}. Referencing \cref{lst:lookForPreamble}, if you set, for example,
-	\texttt{.tex} to \texttt{0}, then regardless of the setting of the
-	value of \texttt{indentPreamble}, preamble will not be assumed when operating upon
-	\texttt{.tex} files.
+	Not all files contain preamble; for example, \texttt{sty}, \texttt{cls} and \texttt{bib}
+	files typically do \emph{not}. Referencing \cref{lst:lookForPreamble}, if you set, for
+	example, \texttt{.tex} to \texttt{0}, then regardless of the setting of the value of
+	\texttt{indentPreamble}, preamble will not be assumed when operating upon \texttt{.tex}
+	files.
 
 	\cmhlistingsfromfile[style=lookForPreamble]*{../defaultSettings.yaml}[width=.8\linewidth,before=\centering,yaml-TCB]{lookForPreamble}{lst:lookForPreamble}
 \yamltitle{preambleCommandsBeforeEnvironments}{0|1}
 	Assuming that \texttt{latexindent.pl} is asked to operate upon the preamble of a
-	document, when this switch is set to \texttt{0} then environment code blocks
-	will be sought first, and then command code blocks. When this switch is set to
-	\texttt{1}, commands will be sought first. The example that first motivated
-	this switch contained the code given in \cref{lst:motivatepreambleCommandsBeforeEnvironments}.
+	document, when this switch is set to \texttt{0} then environment code blocks will be
+	sought first, and then command code blocks. When this switch is set to \texttt{1},
+	commands will be sought first. The example that first motivated this switch contained the
+	code given in \cref{lst:motivatepreambleCommandsBeforeEnvironments}.
 
 	\begin{cmhlistings}{Motivating \texttt{preambleCommandsBeforeEnvironments}}{lst:motivatepreambleCommandsBeforeEnvironments}
 ...
@@ -264,8 +261,8 @@
 \subsection{Indentation and horizontal space}
 \yamltitle{defaultIndent}*{horizontal space}
 	This is the default indentation used in the absence of other details for the code block
-	with which we are working. The default value is \lstinline!\t! which means a tab;
-	we will explore customisation beyond \texttt{defaultIndent} in \vref{sec:noadd-indent-rules}.
+	with which we are working. The default value is \lstinline!\t! which means a tab; we will
+	explore customisation beyond \texttt{defaultIndent} in \vref{sec:noadd-indent-rules}.
 
 	If you're interested in experimenting with \texttt{latexindent.pl} then you can
 	\emph{remove} all indentation by setting \texttt{defaultIndent: ""}.
@@ -272,11 +269,11 @@
 
 \yamltitle{removeTrailingWhitespace}*{fields}\label{yaml:removeTrailingWhitespace}
 
-	Trailing white space can be removed both \emph{before} and
-	\emph{after} processing the document, as detailed in \cref{lst:removeTrailingWhitespace};
-	each of the fields can take the values \texttt{0} or
-	\texttt{1}. See \vref{lst:removeTWS-before,lst:env-mlb5-modAll,lst:env-mlb5-modAll-remove-WS} for before and after results. Thanks
-	to \cite{vosskuhle} for providing this feature.
+	Trailing white space can be removed both \emph{before} and \emph{after} processing the
+	document, as detailed in \cref{lst:removeTrailingWhitespace}; each of the fields can take
+	the values \texttt{0} or \texttt{1}. See
+	\vref{lst:removeTWS-before,lst:env-mlb5-modAll,lst:env-mlb5-modAll-remove-WS} for before
+	and after results. Thanks to \cite{vosskuhle} for providing this feature.
 
 	\begin{minipage}{.4\textwidth}
 		\cmhlistingsfromfile[style=removeTrailingWhitespace]*{../defaultSettings.yaml}[before=\centering,yaml-TCB]{removeTrailingWhitespace}{lst:removeTrailingWhitespace}
@@ -288,17 +285,18 @@
 \end{yaml}
 	\end{minipage}%
 
-	You can specify \texttt{removeTrailingWhitespace} simply as \texttt{0} or
-	\texttt{1}, if you wish; in this case,%
-	\announce{2017-06-28}{removeTrailingWhitespace} \texttt{latexindent.pl} will set both \texttt{beforeProcessing} and
-	\texttt{afterProcessing} to the value you specify; see \cref{lst:removeTrailingWhitespace-alt}.
+	You can specify \texttt{removeTrailingWhitespace} simply as \texttt{0} or \texttt{1}, if
+	you wish; in this case,%
+	\announce{2017-06-28}{removeTrailingWhitespace} \texttt{latexindent.pl} will set both
+	\texttt{beforeProcessing} and \texttt{afterProcessing} to the value you specify; see
+	\cref{lst:removeTrailingWhitespace-alt}.
 
 \subsection{Aligning at delimiters}
 \yamltitle{lookForAlignDelims}*{fields}
 	This contains a list of code blocks that are operated upon in a special way by
-	\texttt{latexindent.pl} (see \cref{lst:aligndelims:basic}). In fact, the fields in \texttt{lookForAlignDelims} can actually take
-	two different forms: the \emph{basic} version is shown in
-	\cref{lst:aligndelims:basic} and the \emph{advanced} version in
+	\texttt{latexindent.pl} (see \cref{lst:aligndelims:basic}). In fact, the fields in
+	\texttt{lookForAlignDelims} can actually take two different forms: the \emph{basic}
+	version is shown in \cref{lst:aligndelims:basic} and the \emph{advanced} version in
 	\cref{lst:aligndelims:advanced}; we will discuss each in turn.
 	\index{delimiters!advanced settings of lookForAlignDelims}
 
@@ -314,14 +312,14 @@
 
 	Specifying code blocks in this field instructs \texttt{latexindent.pl} to try and align
 	each column by its alignment delimiters. It does have some limitations (discussed further
-	in \cref{sec:knownlimitations}), but in many cases it will produce results such as those in
-	\cref{lst:tabularbefore:basic,lst:tabularafter:basic}.
+	in \cref{sec:knownlimitations}), but in many cases it will produce results such as those
+	in \cref{lst:tabularbefore:basic,lst:tabularafter:basic}.
 
 	If you find that \texttt{latexindent.pl} does not perform satisfactorily on such
 	environments then you can set the relevant key to \texttt{0}, for example
-	\texttt{tabular: 0}; alternatively, if you just want to ignore
-	\emph{specific} instances of the environment, you could wrap them in something
-	from \texttt{noIndentBlock} (see \vref{lst:noIndentBlock}).
+	\texttt{tabular: 0}; alternatively, if you just want to ignore \emph{specific} instances
+	of the environment, you could wrap them in something from \texttt{noIndentBlock} (see
+	\vref{lst:noIndentBlock}).
 
 	\begin{cmhtcbraster}
 		\cmhlistingsfromfile{demonstrations/tabular1.tex}{\texttt{tabular1.tex}}{lst:tabularbefore:basic}
@@ -341,53 +339,54 @@
 	\cmhlistingsfromfile[style=lookForAlignDelims]*{../defaultSettings.yaml}[width=.8\linewidth,before=\centering,yaml-TCB]{\texttt{lookForAlignDelims} (advanced)}{lst:aligndelims:advanced}
 
 	Note that you can use a mixture of the basic and advanced form: in
-	\cref{lst:aligndelims:advanced} \texttt{tabular} and \texttt{tabularx} are advanced
-	and \texttt{longtable} is basic. When using the advanced form, each field should
-	receive at least 1 sub-field, and \emph{can}
-	(but does not have to) receive any of the following
+	\cref{lst:aligndelims:advanced} \texttt{tabular} and \texttt{tabularx} are advanced and
+	\texttt{longtable} is basic. When using the advanced form, each field should receive at
+	least 1 sub-field, and \emph{can} (but does not have to) receive any of the following
 	fields:
 	\begin{itemize}
 		\item \texttt{delims}: binary switch (0 or 1) equivalent to simply specifying, for
-		      example, \texttt{tabular: 1} in the basic version shown in \cref{lst:aligndelims:basic}. If
-		      \texttt{delims} is set to \texttt{0} then the align at ampersand
-		      routine will not be called for this code block (default: 1);
-		\item \texttt{alignDoubleBackSlash}: binary switch (0 or 1) to determine if \lstinline!\\!
+		      example, \texttt{tabular: 1} in the basic version shown in \cref{lst:aligndelims:basic}.
+		      If \texttt{delims} is set to \texttt{0} then the align at ampersand routine will not be
+		      called for this code block (default: 1);
+		\item \texttt{alignDoubleBackSlash}: binary switch (0 or 1) to determine if
+		      \lstinline!\\!
 		      should be aligned (default: 1);
 		\item \texttt{spacesBeforeDoubleBackSlash}: optionally,%
-		      \announce{2018-01-13}*{update to spacesBeforeDoubleBackSlash in ampersand alignment} specifies the number (integer $\geq$ 0) of spaces
-		      to be inserted before \lstinline!\\! (default: 1);
-		      %\footnote{Previously this only activated if \texttt{alignDoubleBackSlash} was set to \texttt{0}.}
-		\item \announce{2017-06-19}{multiColumnGrouping} \texttt{multiColumnGrouping}: binary switch (0 or 1) that details if
-		      \texttt{latexindent.pl} should group columns
-		      above and below a \lstinline!\multicolumn! command (default: 0);
-		\item \announce{2017-06-19}{alignRowsWithoutMaxDelims} \texttt{alignRowsWithoutMaxDelims}: binary switch (0 or 1) that details if
-		      rows that do not contain the maximum number of delimeters should be formatted so as to
-		      have the ampersands aligned (default: 1);
-		\item \announce{2018-01-13}{spacesBeforeAmpersand in ampersand alignment}\texttt{spacesBeforeAmpersand}: optionally specifies the number (integer
-		      $\geq$ 0) of
-		      spaces to be placed \emph{before} ampersands (default: 1);
-		\item \announce{2018-01-13}{spacesAfterAmpersand in ampersand alignment}\texttt{spacesAfterAmpersand}: optionally specifies the number (integer
-		      $\geq$ 0) of
-		      spaces to be placed \emph{After} ampersands (default: 1);
-		\item \announce{2018-01-13}{justification of cells in ampersand alignment}\texttt{justification}: optionally specifies the justification of
-		      each cell as either \emph{left} or \emph{right} (default: left);
-		\item \announce{2020-03-21}{align final double back slash}{alignFinalDoubleBackSlash} optionally specifies if the
-		      \emph{final} double back slash should be used for alignment (default: 0);
+		      \announce{2018-01-13}*{update to spacesBeforeDoubleBackSlash in ampersand alignment}
+		      specifies the number (integer $\geq$ 0) of spaces to be inserted before
+		      \lstinline!\\! (default: 1); %\footnote{Previously this only activated if \texttt{alignDoubleBackSlash} was set to \texttt{0}.}
+		\item \announce{2017-06-19}{multiColumnGrouping} \texttt{multiColumnGrouping}: binary switch (0
+		      or 1) that details if \texttt{latexindent.pl} should group columns above and below a
+		      \lstinline!\multicolumn! command (default: 0);
+		\item \announce{2017-06-19}{alignRowsWithoutMaxDelims} \texttt{alignRowsWithoutMaxDelims}:
+		      binary switch (0 or 1) that details if rows that do not contain the maximum number of
+		      delimeters should be formatted so as to have the ampersands aligned (default: 1);
+		\item \announce{2018-01-13}{spacesBeforeAmpersand in ampersand alignment}\texttt{spacesBeforeAmpersand}: optionally specifies the number (integer $\geq$
+		      0) of spaces to be placed \emph{before} ampersands (default: 1);
+		\item \announce{2018-01-13}{spacesAfterAmpersand in ampersand alignment}\texttt{spacesAfterAmpersand}: optionally specifies the number (integer $\geq$
+		      0) of spaces to be placed \emph{After} ampersands (default: 1);
+		\item \announce{2018-01-13}{justification of cells in ampersand alignment}\texttt{justification}: optionally specifies the justification of each cell as
+		      either \emph{left} or \emph{right} (default: left);
+		\item \announce{2020-03-21}{align final double back slash}{alignFinalDoubleBackSlash}
+		      optionally specifies if the \emph{final} double back slash should be used for alignment
+		      (default: 0);
 		\item \announce{2020-03-21}{don't measure feature}{dontMeasure} optionally specifies if
-		      user-specified cells, rows or the largest entries should \emph{not} be
-		      measured (default: 0);
-		\item \announce{2020-03-21}{delimiter RegEx feature}{delimiterRegEx} optionally specifies the pattern
-		      matching to be used for the alignment delimeter (default: \lstinline3 '(?<!\\)(&)'3);
-		\item \announce{2020-03-21}{delimiter justification}{delimiterJustification} optionally specifies the justification
-		      for the alignment delimeters (default: left); note that this feature is only useful if
-		      you have delimiters of different lengths in the same column, discussed in
-		      \cref{sec:delimiter-reg-ex}.
+		      user-specified cells, rows or the largest entries should \emph{not} be measured (default:
+		      0);
+		\item \announce{2020-03-21}{delimiter RegEx feature}{delimiterRegEx} optionally specifies the
+		      pattern matching to be used for the alignment delimeter (default:
+		      \lstinline3 '(?<!\\)(&)'3);
+		\item \announce{2020-03-21}{delimiter justification}{delimiterJustification} optionally
+		      specifies the justification for the alignment delimeters (default: left); note that this
+		      feature is only useful if you have delimiters of different lengths in the same column,
+		      discussed in \cref{sec:delimiter-reg-ex}.
 	\end{itemize}
 
 	We will explore most of these features using the file \texttt{tabular2.tex} in
-	\cref{lst:tabular2} (which contains a \lstinline!\multicolumn! command), and the YAML files in \crefrange{lst:tabular2YAML}{lst:tabular8YAML}; we will explore
-	\texttt{alignFinalDoubleBackSlash} in \cref{lst:tabular4}; the \texttt{dontMeasure} feature
-	will be described in \cref{sec:dontMeasure}, and \texttt{delimiterRegEx} in
+	\cref{lst:tabular2} (which contains a \lstinline!\multicolumn! command), and the YAML
+	files in \crefrange{lst:tabular2YAML}{lst:tabular8YAML}; we will explore
+	\texttt{alignFinalDoubleBackSlash} in \cref{lst:tabular4}; the \texttt{dontMeasure}
+	feature will be described in \cref{sec:dontMeasure}, and \texttt{delimiterRegEx} in
 	\cref{sec:delimiter-reg-ex}.
 
 	\cmhlistingsfromfile{demonstrations/tabular2.tex}{\texttt{tabular2.tex}}{lst:tabular2}
@@ -432,7 +431,8 @@
 latexindent.pl tabular2.tex -l tabular2.yaml,tabular7.yaml
 latexindent.pl tabular2.tex -l tabular2.yaml,tabular8.yaml
 \end{commandshell}
-	we obtain the respective outputs given in \crefrange{lst:tabular2-default}{lst:tabular2-mod8}.
+	we obtain the respective outputs given in
+	\crefrange{lst:tabular2-default}{lst:tabular2-mod8}.
 
 	\begin{widepage}
 		\cmhlistingsfromfile{demonstrations/tabular2-default.tex}{\texttt{tabular2.tex} default output}{lst:tabular2-default}
@@ -447,44 +447,43 @@
 
 	Notice in particular:
 	\begin{itemize}
-		\item in both \cref{lst:tabular2-default,lst:tabular2-mod2} all rows have been aligned at the ampersand, even those
-		      that do not contain the maximum number of ampersands (3 ampersands, in this case);
+		\item in both \cref{lst:tabular2-default,lst:tabular2-mod2} all rows have been aligned at the
+		      ampersand, even those that do not contain the maximum number of ampersands (3 ampersands,
+		      in this case);
 		\item in \cref{lst:tabular2-default} the columns have been aligned at the ampersand;
-		\item in \cref{lst:tabular2-mod2} the \lstinline!\multicolumn! command has grouped the
-		      $2$ columns beneath \emph{and} above it, because
-		      \texttt{multiColumnGrouping} is set to $1$ in \cref{lst:tabular2YAML};
-		\item in \cref{lst:tabular2-mod3} rows~3 and~6 have \emph{not} been aligned at the
-		      ampersand, because \texttt{alignRowsWithoutMaxDelims} has been to set to $0$ in
-		      \cref{lst:tabular3YAML}; however, the \lstinline!\\! \emph{have} still
-		      been aligned;
+		\item in \cref{lst:tabular2-mod2} the \lstinline!\multicolumn! command has grouped the $2$
+		      columns beneath \emph{and} above it, because \texttt{multiColumnGrouping} is set to $1$
+		      in \cref{lst:tabular2YAML};
+		\item in \cref{lst:tabular2-mod3} rows~3 and~6 have \emph{not} been aligned at the ampersand,
+		      because \texttt{alignRowsWithoutMaxDelims} has been to set to $0$ in
+		      \cref{lst:tabular3YAML}; however, the \lstinline!\\! \emph{have} still been aligned;
 		\item in \cref{lst:tabular2-mod4} the columns beneath and above the \lstinline!\multicolumn!
-		      commands have been grouped (because \texttt{multiColumnGrouping} is set to
-		      $1$), and there are at least $4$ spaces
-		      \emph{before} each aligned ampersand because \texttt{spacesBeforeAmpersand} is set to
-		      $4$;
+		      commands have been grouped (because \texttt{multiColumnGrouping} is set to $1$), and
+		      there are at least $4$ spaces \emph{before} each aligned ampersand because
+		      \texttt{spacesBeforeAmpersand} is set to $4$;
 		\item in \cref{lst:tabular2-mod5} the columns beneath and above the \lstinline!\multicolumn!
-		      commands have been grouped (because \texttt{multiColumnGrouping} is set to
-		      $1$), and there are at least $4$ spaces
-		      \emph{after} each aligned ampersand because \texttt{spacesAfterAmpersand} is set to
-		      $4$;
-		\item in \cref{lst:tabular2-mod6} the \lstinline!\\! have \emph{not} been
-		      aligned, because \texttt{alignDoubleBackSlash} is set to \texttt{0}, otherwise the
-		      output is the same as \cref{lst:tabular2-mod2};
-		\item in \cref{lst:tabular2-mod7} the \lstinline!\\! \emph{have} been
-		      aligned, and because \texttt{spacesBeforeDoubleBackSlash} is set to \texttt{0}, there are
-		      no spaces ahead of them; the output is otherwise the same as \cref{lst:tabular2-mod2};
-		\item in \cref{lst:tabular2-mod8} the cells have been \emph{right}-justified; note
-		      that cells above and below the \lstinline!\multicol! statements have still been group
-		      correctly, because of the settings in \cref{lst:tabular2YAML}.
+		      commands have been grouped (because \texttt{multiColumnGrouping} is set to $1$), and
+		      there are at least $4$ spaces \emph{after} each aligned ampersand because
+		      \texttt{spacesAfterAmpersand} is set to $4$;
+		\item in \cref{lst:tabular2-mod6} the \lstinline!\\! have \emph{not} been aligned, because
+		      \texttt{alignDoubleBackSlash} is set to \texttt{0}, otherwise the output is the same as
+		      \cref{lst:tabular2-mod2};
+		\item in \cref{lst:tabular2-mod7} the \lstinline!\\! \emph{have} been aligned, and because
+		      \texttt{spacesBeforeDoubleBackSlash} is set to \texttt{0}, there are no spaces ahead of
+		      them; the output is otherwise the same as \cref{lst:tabular2-mod2};
+		\item in \cref{lst:tabular2-mod8} the cells have been \emph{right}-justified; note that cells
+		      above and below the \lstinline!\multicol! statements have still been group correctly,
+		      because of the settings in \cref{lst:tabular2YAML}.
 	\end{itemize}
 
 \subsubsection{lookForAlignDelims: spacesBeforeAmpersand}
 	The \texttt{spacesBeforeAmpersand}%
-	\announce*{2021-06-19}*{spacesBeforeAmpersand leading blank column upgrade} can be specified in a few different
-	ways. The \emph{basic} form is demonstrated in \cref{lst:tabular4YAML}, but we
-	can customise the behaviour further by specifying if we would like this value to change
-	if it encounters a \emph{leading blank column}; that is, when the first column contains only
-	zero-width entries. We refer to this as the \emph{advanced} form.
+	\announce{2021-06-19}*{spacesBeforeAmpersand leading blank column upgrade} can be
+	specified in a few different ways. The \emph{basic} form is demonstrated in
+	\cref{lst:tabular4YAML}, but we can customise the behaviour further by specifying if we
+	would like this value to change if it encounters a \emph{leading blank column}; that is,
+	when the first column contains only zero-width entries. We refer to this as the
+	\emph{advanced} form.
 
 	We demonstrate this feature in relation to \cref{lst:aligned1}; upon running the
 	following command
@@ -494,18 +493,18 @@
 	then we receive the default output given in \cref{lst:aligned1-default}.
 
 	\begin{cmhtcbraster}
-		\cmhlistingsfromfile*{demonstrations/aligned1.tex}{\texttt{aligned1.tex}}{lst:aligned1}
-		\cmhlistingsfromfile*{demonstrations/aligned1-default.tex}{\texttt{aligned1-default.tex}}{lst:aligned1-default}
+		\cmhlistingsfromfile{demonstrations/aligned1.tex}{\texttt{aligned1.tex}}{lst:aligned1}
+		\cmhlistingsfromfile{demonstrations/aligned1-default.tex}{\texttt{aligned1-default.tex}}{lst:aligned1-default}
 	\end{cmhtcbraster}
 
-	The settings in \crefrange{lst:sba1}{lst:sba4} are all equivlanent; we have used the not-yet
-	discussed \texttt{noAdditionalIndent} field (see \vref{sec:noadd-indent-rules}) which will assist
-	in the demonstration in what follows.
+	The settings in \crefrange{lst:sba1}{lst:sba4} are all equivlanent; we have used the
+	not-yet discussed \texttt{noAdditionalIndent} field (see \vref{sec:noadd-indent-rules})
+	which will assist in the demonstration in what follows.
 	\begin{cmhtcbraster}[raster columns=2, ]
-		\cmhlistingsfromfile*{demonstrations/sba1.yaml}[yaml-TCB]{\texttt{sba1.yaml}}{lst:sba1}
-		\cmhlistingsfromfile*{demonstrations/sba2.yaml}[yaml-TCB]{\texttt{sba2.yaml}}{lst:sba2}
-		\cmhlistingsfromfile*{demonstrations/sba3.yaml}[yaml-TCB]{\texttt{sba3.yaml}}{lst:sba3}
-		\cmhlistingsfromfile*{demonstrations/sba4.yaml}[yaml-TCB]{\texttt{sba4.yaml}}{lst:sba4}
+		\cmhlistingsfromfile{demonstrations/sba1.yaml}[yaml-TCB]{\texttt{sba1.yaml}}{lst:sba1}
+		\cmhlistingsfromfile{demonstrations/sba2.yaml}[yaml-TCB]{\texttt{sba2.yaml}}{lst:sba2}
+		\cmhlistingsfromfile{demonstrations/sba3.yaml}[yaml-TCB]{\texttt{sba3.yaml}}{lst:sba3}
+		\cmhlistingsfromfile{demonstrations/sba4.yaml}[yaml-TCB]{\texttt{sba4.yaml}}{lst:sba4}
 	\end{cmhtcbraster}
 	Upon running the following commands
 	\begin{commandshell}
@@ -514,11 +513,11 @@
 latexindent.pl aligned1.tex -l sba3.yaml
 latexindent.pl aligned1.tex -l sba4.yaml
 \end{commandshell}
-	then we receive the (same) output given in \cref{lst:aligned1-mod1}; we note that there is
-	\emph{one space} before each ampersand.
+	then we receive the (same) output given in \cref{lst:aligned1-mod1}; we note that there
+	is \emph{one space} before each ampersand.
 
 	\begin{cmhtcbraster}
-		\cmhlistingsfromfile*{demonstrations/aligned1-mod1.tex}{\texttt{aligned1-mod1.tex}}{lst:aligned1-mod1}
+		\cmhlistingsfromfile{demonstrations/aligned1-mod1.tex}{\texttt{aligned1-mod1.tex}}{lst:aligned1-mod1}
 	\end{cmhtcbraster}
 
 	We note in particular:
@@ -531,23 +530,23 @@
 		      and specified \texttt{spacesBeforeAmpersand}. The default value is \texttt{1};
 		\item \cref{lst:sba3} demonstrates the new \emph{advanced} way to specify
 		      \texttt{spacesBeforeAmpersand}, and
-		      for us to set the \texttt{default} value that sets the number of spaces before
-		      ampersands which are \emph{not} in leading blank columns.		The
-		      default value is \texttt{1}.
+		      for us to set the \texttt{default} value that sets the number of spaces before ampersands
+		      which are \emph{not} in leading blank columns. The default value is \texttt{1}.
 
-		      We note that \texttt{leadingBlankColumn} has not been specified in \cref{lst:sba3},
-		      and it will inherit the value from \texttt{default};
+		      We note that \texttt{leadingBlankColumn} has not been specified in \cref{lst:sba3}, and
+		      it will inherit the value from \texttt{default};
 		\item \cref{lst:sba4} demonstrates spaces to be used before amperands for
 		      \emph{leading blank columns}.
-		      We note that \emph{default} has not been specified, and it will be set to
-		      \texttt{1} by default.
+		      We note that \emph{default} has not been specified, and it will be set to \texttt{1} by
+		      default.
 	\end{itemize}
 	We can customise the space before the ampersand in the \emph{leading blank column} of
-	\cref{lst:aligned1-mod1} by using either of \cref{lst:sba5,lst:sba6}, which are equivalent.
+	\cref{lst:aligned1-mod1} by using either of \cref{lst:sba5,lst:sba6}, which are
+	equivalent.
 
 	\begin{cmhtcbraster}
-		\cmhlistingsfromfile*{demonstrations/sba5.yaml}[yaml-TCB]{\texttt{sba5.yaml}}{lst:sba5}
-		\cmhlistingsfromfile*{demonstrations/sba6.yaml}[yaml-TCB]{\texttt{sba6.yaml}}{lst:sba6}
+		\cmhlistingsfromfile{demonstrations/sba5.yaml}[yaml-TCB]{\texttt{sba5.yaml}}{lst:sba5}
+		\cmhlistingsfromfile{demonstrations/sba6.yaml}[yaml-TCB]{\texttt{sba6.yaml}}{lst:sba6}
 	\end{cmhtcbraster}
 
 	Upon running
@@ -556,18 +555,18 @@
 latexindent.pl aligned1.tex -l sba6.yaml
 \end{commandshell}
 	then we receive the (same) output given in \cref{lst:aligned1-mod5}. We note that the
-	space before the ampersand in the \emph{leading blank column} has been set to
-	\texttt{0} by \cref{lst:sba6}.
+	space before the ampersand in the \emph{leading blank column} has been set to \texttt{0}
+	by \cref{lst:sba6}.
 
-	We can demonstrated this feature further using the settings in \cref{lst:sba7}
-	which give the output in \cref{lst:aligned1-mod7}.
+	We can demonstrated this feature further using the settings in \cref{lst:sba7} which give
+	the output in \cref{lst:aligned1-mod7}.
 
 	\begin{cmhtcbraster}[raster columns=3,
 			raster left skip=-3.75cm,
 			raster right skip=-2cm,]
-		\cmhlistingsfromfile*{demonstrations/aligned1-mod5.tex}{\texttt{aligned1-mod5.tex}}{lst:aligned1-mod5}
-		\cmhlistingsfromfile*{demonstrations/aligned1-mod7.tex}{\texttt{aligned1.tex} using \cref{lst:sba7}}{lst:aligned1-mod7}
-		\cmhlistingsfromfile*{demonstrations/sba7.yaml}[yaml-TCB]{\texttt{sba7.yaml}}{lst:sba7}
+		\cmhlistingsfromfile{demonstrations/aligned1-mod5.tex}{\texttt{aligned1-mod5.tex}}{lst:aligned1-mod5}
+		\cmhlistingsfromfile{demonstrations/aligned1-mod7.tex}{\texttt{aligned1.tex} using \cref{lst:sba7}}{lst:aligned1-mod7}
+		\cmhlistingsfromfile{demonstrations/sba7.yaml}[yaml-TCB]{\texttt{sba7.yaml}}{lst:sba7}
 	\end{cmhtcbraster}
 \subsubsection{lookForAlignDelims: alignFinalDoubleBackSlash}
 	We explore%
@@ -604,13 +603,14 @@
 	As of Version 3.0, the alignment routine works on mandatory and optional arguments within
 	commands, and also within `special' code blocks (see \texttt{specialBeginEnd} on
 	\cpageref{yaml:specialBeginEnd}); for example, assuming that you have a command called
-	\lstinline!\matrix! and that it is populated within \texttt{lookForAlignDelims} (which it is, by default), and that
+	\lstinline!\matrix! and that it is populated within \texttt{lookForAlignDelims}
+	(which it is, by default), and that
 	you run the command
 	\begin{commandshell}
 latexindent.pl matrix1.tex 
 \end{commandshell}
-	then the before-and-after results shown in \cref{lst:matrixbefore,lst:matrixafter} are achievable by
-	default.
+	then the before-and-after results shown in \cref{lst:matrixbefore,lst:matrixafter} are
+	achievable by default.
 
 	\begin{cmhtcbraster}
 		\cmhlistingsfromfile{demonstrations/matrix1.tex}{\texttt{matrix1.tex}}{lst:matrixbefore}
@@ -620,9 +620,10 @@
 	If you have blocks of code that you wish to align at the \&  character that are
 	\emph{not} wrapped in, for example, \lstinline!\begin{tabular}! \ldots
 	\lstinline!\end{tabular}!, then you can use the mark up illustrated in
-	\cref{lst:alignmentmarkup}; the default output is shown in \cref{lst:alignmentmarkup-default}. Note
-	that the \lstinline!%*! must be next to each other, but that there can be any
-	number of spaces (possibly none) between the
+	\cref{lst:alignmentmarkup}; the default output is shown in
+	\cref{lst:alignmentmarkup-default}. Note
+	that the \lstinline!%*! must be next to each other, but that there can be any number of
+	spaces (possibly none) between the
 	\lstinline!*! and \lstinline!\begin{tabular}!; note also that you may use any
 	environment name that you have specified in \texttt{lookForAlignDelims}.
 
@@ -632,16 +633,16 @@
 	\end{cmhtcbraster}
 
 	With reference to \vref{tab:code-blocks} and the, yet undiscussed, fields of
-	\texttt{noAdditionalIndent} and \texttt{indentRules}
-	(see \vref{sec:noadd-indent-rules}), these comment-marked blocks are
-	considered \texttt{environments}.
+	\texttt{noAdditionalIndent} and \texttt{indentRules} (see \vref{sec:noadd-indent-rules}),
+	these comment-marked blocks are considered \texttt{environments}.
 
 \subsubsection{lookForAlignDelims: the dontMeasure feature}\label{sec:dontMeasure}
 	The%
-	\announce{2020-03-21}{don't measure feature} \texttt{lookForAlignDelims}
-	field can, optionally, receive the \texttt{dontMeasure} option which can be specified
-	in a few different ways. We will explore this feature in relation to the code given in
-	\cref{lst:tabular-DM}; the default output is shown in \cref{lst:tabular-DM-default}.
+	\announce{2020-03-21}{don't measure feature}
+	\texttt{lookForAlignDelims} field can, optionally, receive the \texttt{dontMeasure}
+	option which can be specified in a few different ways. We will explore this feature in
+	relation to the code given in \cref{lst:tabular-DM}; the default output is shown in
+	\cref{lst:tabular-DM-default}.
 	\index{delimiters!dontMeasure feature}
 
 	\begin{cmhtcbraster}[raster left skip=-1.5cm,]
@@ -649,9 +650,9 @@
 		\cmhlistingsfromfile{demonstrations/tabular-DM-default.tex}{\texttt{tabular-DM.tex} default output}{lst:tabular-DM-default}
 	\end{cmhtcbraster}
 
-	The \texttt{dontMeasure} field can be specified as \texttt{largest}, and in
-	which case, the largest element will not be measured; with reference to the YAML file
-	given in \cref{lst:dontMeasure1}, we can run the command
+	The \texttt{dontMeasure} field can be specified as \texttt{largest}, and in which case,
+	the largest element will not be measured; with reference to the YAML file given in
+	\cref{lst:dontMeasure1}, we can run the command
 	\index{switches!-l demonstration}
 	\begin{commandshell} 
 latexindent.pl tabular-DM.tex -l=dontMeasure1.yaml
@@ -663,8 +664,8 @@
 		\cmhlistingsfromfile{demonstrations/dontMeasure1.yaml}[yaml-TCB]{\texttt{dontMeasure1.yaml}}{lst:dontMeasure1}
 	\end{cmhtcbraster}
 
-	We note that the \emph{largest} column entries have not contributed to the
-	measuring routine.
+	We note that the \emph{largest} column entries have not contributed to the measuring
+	routine.
 
 	The \texttt{dontMeasure} field can also be specified in the form demonstrated in
 	\cref{lst:dontMeasure2}. On running the following commands,
@@ -704,19 +705,18 @@
 	\begin{itemize}
 		\item \cref{lst:dontMeasure3} we have specified entries not to be measured, each one has a
 		      \emph{string} in the \texttt{this}
-		      field, together with an optional specification of \texttt{applyTo} as
-		      \texttt{cell};
+		      field, together with an optional specification of \texttt{applyTo} as \texttt{cell};
 		\item \cref{lst:dontMeasure4} we have specified entries not to be measured as a
 		      \emph{regular expression} using
-		      the \texttt{regex} field, together with an optional specification of
-		      \texttt{applyTo} as \texttt{cell} field, together with an optional
-		      specification of \texttt{applyTo} as \texttt{cell}.
+		      the \texttt{regex} field, together with an optional specification of \texttt{applyTo} as
+		      \texttt{cell} field, together with an optional specification of \texttt{applyTo} as
+		      \texttt{cell}.
 	\end{itemize}
-	In both cases, the default value of \texttt{applyTo} is \texttt{cell},
-	and does not need to be specified.
+	In both cases, the default value of \texttt{applyTo} is \texttt{cell}, and does not need
+	to be specified.
 
-	We may also specify the \texttt{applyTo} field as \texttt{row}, a
-	demonstration of which is given in \cref{lst:dontMeasure5}; upon running
+	We may also specify the \texttt{applyTo} field as \texttt{row}, a demonstration of which
+	is given in \cref{lst:dontMeasure5}; upon running
 	\index{switches!-l demonstration}
 	\begin{commandshell} 
 latexindent.pl tabular-DM.tex -l=dontMeasure5.yaml
@@ -727,9 +727,9 @@
 		\cmhlistingsfromfile{demonstrations/dontMeasure5.yaml}[yaml-TCB]{\texttt{dontMeasure5.yaml}}{lst:dontMeasure5}
 	\end{cmhtcbraster}
 
-	Finally, the \texttt{applyTo} field can be specified as \texttt{row},
-	together with a \texttt{regex} expression. For example, for the settings given
-	in \cref{lst:dontMeasure6}, upon running
+	Finally, the \texttt{applyTo} field can be specified as \texttt{row}, together with a
+	\texttt{regex} expression. For example, for the settings given in
+	\cref{lst:dontMeasure6}, upon running
 	\index{switches!-l demonstration}
 	\begin{commandshell} 
 latexindent.pl tabular-DM.tex -l=dontMeasure6.yaml
@@ -744,11 +744,13 @@
 	\end{cmhtcbraster}
 
 \subsubsection{lookForAlignDelims: the delimiterRegEx and delimiterJustification feature}\label{sec:delimiter-reg-ex}
+
 	The delimiter alignment%
-	\announce{2020-03-21}{delimiterRegEx feature} will, by
-	default, align code blocks at the ampersand character. The behaviour is controlled by the
-	\texttt{delimiterRegEx} field within \texttt{lookForAlignDelims}; the default value is
-	\lstinline3'(?<!\\)(&)'3, which can be read as: \emph{an ampersand, as long as it is not immediately preceeded by a backslash}.
+	\announce{2020-03-21}{delimiterRegEx feature} will, by default, align code blocks at the
+	ampersand character. The behaviour is controlled by the \texttt{delimiterRegEx} field
+	within \texttt{lookForAlignDelims}; the default value is
+	\lstinline3'(?<!\\)(&)'3, which can be read as: \emph{an ampersand, as long as it is not
+		immediately preceeded by a backslash}.
 	\index{warning!capturing parenthesis for lookForAlignDelims}
 	\index{capturing parenthesis (regex)}
 	\index{regular expressions!capturing parenthesis}
@@ -770,8 +772,8 @@
 	\end{cmhtcbraster}
 
 	Let's say that we wish to align the code at either the \lstinline!\=! or
-	\lstinline!\>!. We employ the settings given in \cref{lst:delimiterRegEx1} and run
-	the command
+	\lstinline!\>!. We employ the settings given in \cref{lst:delimiterRegEx1} and
+	run the command
 	\index{switches!-l demonstration}
 	\begin{commandshell}
 latexindent.pl tabbing.tex -l=delimiterRegEx1.yaml
@@ -787,9 +789,9 @@
 	\begin{itemize}
 		\item in \cref{lst:tabbing-mod1} the code has been aligned, as intended, at both the
 		      \lstinline!\=! and \lstinline!\>!;
-		\item in \cref{lst:delimiterRegEx1} we have heeded the warning and captured the expression using
-		      grouping parenthesis, specified a backslash using \lstinline!\\! and said that
-		      it must be followed by either \lstinline!=! or \lstinline!>!.
+		\item in \cref{lst:delimiterRegEx1} we have heeded the warning and captured the expression
+		      using grouping parenthesis, specified a backslash using \lstinline!\\! and said that it
+		      must be followed by either \lstinline!=! or \lstinline!>!.
 	\end{itemize}
 	We can explore \texttt{delimiterRegEx} a little further using the settings in
 	\cref{lst:delimiterRegEx2} and run the command
@@ -808,8 +810,8 @@
 
 	Of course, the other lookForAlignDelims options can be used alongside the
 	\texttt{delimiterRegEx}; regardless of the type of delimiter being used (ampersand or
-	anything else), the fields from \vref{lst:aligndelims:advanced} remain the same; for example,
-	using the settings in \cref{lst:delimiterRegEx3}, and running
+	anything else), the fields from \vref{lst:aligndelims:advanced} remain the same; for
+	example, using the settings in \cref{lst:delimiterRegEx3}, and running
 	\index{switches!-l demonstration}
 	\begin{commandshell}
 latexindent.pl tabbing.tex -l=delimiterRegEx3.yaml
@@ -823,8 +825,8 @@
 
 	It is possible that delimiters specified within \texttt{delimiterRegEx} can be of
 	different lengths. Consider the file in \cref{lst:tabbing1}, and associated YAML in
-	\cref{lst:delimiterRegEx4}. Note that the \cref{lst:delimiterRegEx4} specifies the option for
-	the delimiter to be either
+	\cref{lst:delimiterRegEx4}. Note that the \cref{lst:delimiterRegEx4} specifies the option
+	for the delimiter to be either
 	\lstinline!#! or
 	\lstinline!\>!, \emph{which are different lengths}. Upon running the command
 	\index{switches!-l demonstration}
@@ -844,10 +846,10 @@
 		\cmhlistingsfromfile{demonstrations/delimiterRegEx4.yaml}[yaml-TCB]{\texttt{delimiterRegEx4.yaml}}{lst:delimiterRegEx4}
 	\end{cmhtcbraster}
 
-	You can set the \emph{delimiter} justification as either \texttt{left} (default)
-	or \texttt{right}, which will only have effect when delimiters in the same
-	column have different lengths. Using the settings in \cref{lst:delimiterRegEx5} and running
-	the command
+	You can set the \emph{delimiter} justification as either \texttt{left} (default) or
+	\texttt{right}, which will only have effect when delimiters in the same column have
+	different lengths. Using the settings in \cref{lst:delimiterRegEx5} and running the
+	command
 	\index{switches!-l demonstration}
 	\index{switches!-o demonstration}
 	\begin{commandshell}
@@ -861,15 +863,15 @@
 		\cmhlistingsfromfile{demonstrations/delimiterRegEx5.yaml}[yaml-TCB]{\texttt{delimiterRegEx5.yaml}}{lst:delimiterRegEx5}
 	\end{cmhtcbraster}
 
-	Note that in \cref{lst:tabbing1-mod5} the second set of delimiters have been
-	\emph{right aligned} -- it is quite subtle!
+	Note that in \cref{lst:tabbing1-mod5} the second set of delimiters have been \emph{right
+		aligned} -- it is quite subtle!
 
 \subsection{Indent after items, specials and headings}
 \yamltitle{indentAfterItems}*{fields}
 	The environment names specified in \texttt{indentAfterItems} tell \texttt{latexindent.pl}
-	to look for \lstinline!\item! commands; if these switches are set to
-	\texttt{1} then indentation will be performed so as indent the code after
-	each \texttt{item}. A demonstration is given in \cref{lst:itemsbefore,lst:itemsafter}
+	to look for \lstinline!\item! commands; if these switches are set to \texttt{1} then
+	indentation will be performed so as indent the code after each \texttt{item}. A
+	demonstration is given in \cref{lst:itemsbefore,lst:itemsafter}
 
 	\begin{cmhtcbraster}[raster columns=3,
 			raster left skip=-3.5cm,
@@ -881,12 +883,11 @@
 	\end{cmhtcbraster}
 
 \yamltitle{itemNames}*{fields}
-	If you have your own \texttt{item} commands (perhaps you prefer to use
-	\texttt{myitem}, for example) then you can put populate them in
-	\texttt{itemNames}. For example, users of the \texttt{exam} document class
-	might like to add \texttt{parts} to \texttt{indentAfterItems} and
-	\texttt{part} to \texttt{itemNames} to their user settings (see
-	\vref{sec:indentconfig} for details of how to configure user settings, and
+	If you have your own \texttt{item} commands (perhaps you prefer to use \texttt{myitem},
+	for example) then you can put populate them in \texttt{itemNames}. For example, users of
+	the \texttt{exam} document class might like to add \texttt{parts} to
+	\texttt{indentAfterItems} and \texttt{part} to \texttt{itemNames} to their user settings
+	(see \vref{sec:indentconfig} for details of how to configure user settings, and
 	\vref{lst:mysettings} \\ in particular \label{page:examsettings}.)
 
 	\cmhlistingsfromfile[style=itemNames]*{../defaultSettings.yaml}[width=.8\linewidth,before=\centering,yaml-TCB]{\texttt{itemNames}}{lst:itemNames}
@@ -894,21 +895,22 @@
 \yamltitle{specialBeginEnd}*{fields}\label{yaml:specialBeginEnd}
 	The fields specified
 	\index{specialBeginEnd!introduction}%
-	\announce{2017-08-21}*{specialBeginEnd} in
-	\texttt{specialBeginEnd} are, in their default state, focused on math mode begin and end
-	statements, but there is no requirement for this to be the case; \cref{lst:specialBeginEnd}
-	shows the default settings of \texttt{specialBeginEnd}.
+	\announce{2017-08-21}*{specialBeginEnd} in \texttt{specialBeginEnd} are, in their default
+	state, focused on math mode begin and end statements, but there is no requirement for
+	this to be the case; \cref{lst:specialBeginEnd} shows the default settings of
+	\texttt{specialBeginEnd}.
 	\index{specialBeginEnd!default settings}
 
 	\cmhlistingsfromfile[style=specialBeginEnd]*{../defaultSettings.yaml}[width=.8\linewidth,before=\centering,yaml-TCB]{\texttt{specialBeginEnd}}{lst:specialBeginEnd}
 
-	The field \texttt{displayMath} represents \lstinline!\[...\]!,
-	\texttt{inlineMath} represents
+	The field \texttt{displayMath} represents \lstinline!\[...\]!, \texttt{inlineMath}
+	represents
 	\lstinline!$...$! and \texttt{displayMathTex} represents \lstinline!$$...$$!.
 	You can, of course, rename these in your own YAML files (see \vref{sec:localsettings});
 	indeed, you might like to set up your own special begin and end statements.
 
-	A demonstration of the before-and-after results are shown in \cref{lst:specialbefore,lst:specialafter}.
+	A demonstration of the before-and-after results are shown in
+	\cref{lst:specialbefore,lst:specialafter}.
 
 	\begin{cmhtcbraster}
 		\cmhlistingsfromfile{demonstrations/special1.tex}{\texttt{special1.tex} before}{lst:specialbefore}
@@ -915,20 +917,21 @@
 		\cmhlistingsfromfile{demonstrations/special1-default.tex}{\texttt{special1.tex} default output}{lst:specialafter}
 	\end{cmhtcbraster}
 
-	For each field, \texttt{lookForThis} is set to \texttt{1} by default,
-	which means that \texttt{latexindent.pl} will look for this pattern; you can tell
-	\texttt{latexindent.pl} not to look for the pattern, by setting \texttt{lookForThis}
-	to \texttt{0}.
+	For each field, \texttt{lookForThis} is set to \texttt{1} by default, which means that
+	\texttt{latexindent.pl} will look for this pattern; you can tell \texttt{latexindent.pl}
+	not to look for the pattern, by setting \texttt{lookForThis} to \texttt{0}.
 
 	There are%
-	\announce{2017-08-21}{specialBeforeCommand} examples in which it
-	is advantageous to search for \texttt{specialBeginEnd} fields \emph{before}
-	searching for commands, and the \texttt{specialBeforeCommand} switch controls this behaviour.
-	For example, consider the file shown in \cref{lst:specialLRbefore}.
+	\announce{2017-08-21}{specialBeforeCommand}
+	examples in which it is advantageous to search for \texttt{specialBeginEnd} fields
+	\emph{before} searching for commands, and the \texttt{specialBeforeCommand} switch
+	controls this behaviour. For example, consider the file shown in
+	\cref{lst:specialLRbefore}.
 
 	\cmhlistingsfromfile{demonstrations/specialLR.tex}{\texttt{specialLR.tex}}{lst:specialLRbefore}
 
-	Now consider the YAML files shown in \cref{lst:specialsLeftRight-yaml,lst:specialBeforeCommand-yaml}
+	Now consider the YAML files shown in
+	\cref{lst:specialsLeftRight-yaml,lst:specialBeforeCommand-yaml}
 	\index{specialBeginEnd!searching for special before commands}
 
 	\begin{cmhtcbraster}
@@ -944,7 +947,8 @@
 latexindent.pl specialLR.tex -l=specialsLeftRight.yaml,specialBeforeCommand.yaml      
 \end{commandshell}
 	\end{widepage}
-	we receive the respective outputs in \cref{lst:specialLR-comm-first-tex,lst:specialLR-special-first-tex}.
+	we receive the respective outputs in
+	\cref{lst:specialLR-comm-first-tex,lst:specialLR-special-first-tex}.
 
 	\begin{minipage}{.49\linewidth}
 		\cmhlistingsfromfile{demonstrations/specialLR-comm-first.tex}{\texttt{specialLR.tex} using \cref{lst:specialsLeftRight-yaml}}{lst:specialLR-comm-first-tex}
@@ -958,21 +962,23 @@
 	\begin{itemize}
 		\item \cref{lst:specialLR-comm-first-tex} the \lstinline!\left! has been treated as a
 		      \emph{command}, with one optional argument;
-		\item \cref{lst:specialLR-special-first-tex} the \texttt{specialBeginEnd} pattern in \cref{lst:specialsLeftRight-yaml}
+		\item \cref{lst:specialLR-special-first-tex} the \texttt{specialBeginEnd} pattern in
+		      \cref{lst:specialsLeftRight-yaml}
 		      has been obeyed because \cref{lst:specialBeforeCommand-yaml} specifies that the
 		      \texttt{specialBeginEnd} should be sought \emph{before} commands.
 	\end{itemize}
 
 	You can,optionally, specify%
-	\announce{2018-04-27}{update to specialBeginEnd} the
-	\texttt{middle} field for anything that you specify in \texttt{specialBeginEnd}.
-	For example, let's consider the \texttt{.tex} file in \cref{lst:special2}.
+	\announce{2018-04-27}{update to specialBeginEnd} the \texttt{middle} field for anything that you specify in
+	\texttt{specialBeginEnd}. For example, let's consider the \texttt{.tex} file in
+	\cref{lst:special2}.
 	\index{specialBeginEnd!middle}
 	\index{specialBeginEnd!IfElsFi example}
 
 	\cmhlistingsfromfile{demonstrations/special2.tex}{\texttt{special2.tex}}{lst:special2}
 
-	Upon saving the YAML settings in \cref{lst:middle-yaml,lst:middle1-yaml} and running the commands
+	Upon saving the YAML settings in \cref{lst:middle-yaml,lst:middle1-yaml} and running the
+	commands
 	\index{switches!-l demonstration}
 	\begin{commandshell}
 latexindent.pl special2.tex -l=middle
@@ -992,20 +998,19 @@
 
 	We note that:
 	\begin{itemize}
-		\item in \cref{lst:special2-mod1} the bodies of each of the \texttt{Elsif} statements
-		      have been indented appropriately;
-		\item the \texttt{Else} statement has \emph{not} been indented
-		      appropriately in \cref{lst:special2-mod1} -- read on!
-		\item we have specified multiple settings for the \texttt{middle} field using the
-		      syntax demonstrated in \cref{lst:middle1-yaml} so that the body of the
-		      \texttt{Else} statement has been indented appropriately in
-		      \cref{lst:special2-mod2}.
+		\item in \cref{lst:special2-mod1} the bodies of each of the \texttt{Elsif} statements have been
+		      indented appropriately;
+		\item the \texttt{Else} statement has \emph{not} been indented appropriately in
+		      \cref{lst:special2-mod1} -- read on!
+		\item we have specified multiple settings for the \texttt{middle} field using the syntax
+		      demonstrated in \cref{lst:middle1-yaml} so that the body of the \texttt{Else} statement
+		      has been indented appropriately in \cref{lst:special2-mod2}.
 	\end{itemize}
 
 	You may%
-	\announce{2018-08-13}{specialBeginEnd verbatim} specify fields in
-	\texttt{specialBeginEnd} to be treated as verbatim code blocks by changing
-	\texttt{lookForThis} to be \texttt{verbatim}.
+	\announce{2018-08-13}{specialBeginEnd verbatim}
+	specify fields in \texttt{specialBeginEnd} to be treated as verbatim code blocks by
+	changing \texttt{lookForThis} to be \texttt{verbatim}.
 	\index{verbatim!specialBeginEnd}
 
 	For example, beginning with the code in \cref{lst:special3-mod1} and the YAML in
@@ -1022,14 +1027,13 @@
 		\cmhlistingsfromfile{demonstrations/special3-mod1.tex}{\texttt{special3.tex} and output using \cref{lst:special-verb1-yaml}}{lst:special3-mod1}
 	\end{cmhtcbraster}
 
-	We can combine the \texttt{specialBeginEnd} with the \texttt{lookForAlignDelims} feature. We
-	begin with the code in \cref{lst:special-align}.
+	We can combine the \texttt{specialBeginEnd} with the \texttt{lookForAlignDelims} feature.
+	We begin with the code in \cref{lst:special-align}.
 
 	\cmhlistingsfromfile{demonstrations/special-align.tex}{\texttt{special-align.tex}}{lst:special-align}
 
-	Let's assume that our goal is to align the code at the \texttt{edge} and
-	\texttt{node} text; we employ the code given in \cref{lst:edge-node1} and run
-	the command
+	Let's assume that our goal is to align the code at the \texttt{edge} and \texttt{node}
+	text; we employ the code given in \cref{lst:edge-node1} and run the command
 	\index{switches!-l demonstration}
 	\index{switches!-o demonstration}
 	\begin{commandshell}
@@ -1050,8 +1054,8 @@
 	\end{cmhtcbraster}
 
 	The output in \cref{lst:special-align-mod1} is not quite ideal. We can tweak the settings
-	within \cref{lst:edge-node1} in order to improve the output; in particular, we employ
-	the code in \cref{lst:edge-node2} and run the command
+	within \cref{lst:edge-node1} in order to improve the output; in particular, we employ the
+	code in \cref{lst:edge-node2} and run the command
 	\index{switches!-l demonstration}
 	\index{switches!-o demonstration}
 	\index{regular expressions!uppercase alph A-Z}
@@ -1064,41 +1068,42 @@
 	\index{regular expressions!horizontal space \textbackslash{h}}
 
 	\begin{cmhtcbraster}[ raster left skip=-3.5cm,]
-		\cmhlistingsfromfile*{demonstrations/edge-node2.yaml}[yaml-TCB]{\texttt{edge-node2.yaml}}{lst:edge-node2}
+		\cmhlistingsfromfile{demonstrations/edge-node2.yaml}[yaml-TCB]{\texttt{edge-node2.yaml}}{lst:edge-node2}
 		\cmhlistingsfromfile{demonstrations/special-align-mod2.tex}{\texttt{special-align.tex} using \cref{lst:edge-node2}}{lst:special-align-mod2}
 	\end{cmhtcbraster}
 
 	The \texttt{lookForThis} field can be considered
 	optional;%
-	\announce*{2021-06-19}*{lookForThis optional for specialBeginEnd} by default, it is
-	assumed to be 1, which is demonstrated in \cref{lst:edge-node2}.
+	\announce{2021-06-19}*{lookForThis optional for specialBeginEnd} by default, it is assumed to be 1, which is demonstrated in
+	\cref{lst:edge-node2}.
 
 \yamltitle{indentAfterHeadings}*{fields}
 	This field enables the user to specify indentation rules that take effect after heading
 	commands such as \lstinline!\part!, \lstinline!\chapter!,
 	\lstinline!\section!, \lstinline!\subsection*!, or indeed any user-specified command
-	written in this field.\footnote{There is a slight
-		difference in interface for this field when comparing Version 2.2 to Version 3.0; see \vref{app:differences} for details.}
+	written in this field.\footnote{There is a slight difference in interface for this field
+		when comparing Version 2.2 to Version 3.0; see \vref{app:differences} for details.}
 
 	\cmhlistingsfromfile[style=indentAfterHeadings]*{../defaultSettings.yaml}[width=.8\linewidth,before=\centering,yaml-TCB]{\texttt{indentAfterHeadings}}{lst:indentAfterHeadings}
 
-	The default settings do \emph{not} place indentation after a heading, but
-	you can easily switch them on by changing \texttt{indentAfterThisHeading} from 0 to 1. The
-	\texttt{level} field tells \texttt{latexindent.pl} the hierarchy of the heading
-	structure in your document. You might, for example, like to have both
-	\texttt{section} and \texttt{subsection} set with \texttt{level: 3}
-	because you do not want the indentation to go too deep.
+	The default settings do \emph{not} place indentation after a heading, but you can easily
+	switch them on by changing \texttt{indentAfterThisHeading} from 0 to 1. The
+	\texttt{level} field tells \texttt{latexindent.pl} the hierarchy of the heading structure
+	in your document. You might, for example, like to have both \texttt{section} and
+	\texttt{subsection} set with \texttt{level: 3} because you do not want the indentation to
+	go too deep.
 
 	You can add any of your own custom heading commands to this field, specifying the
-	\texttt{level} as appropriate.  You can also specify your own indentation in
-	\texttt{indentRules} (see \vref{sec:noadd-indent-rules}); you will find the default \texttt{indentRules} contains
+	\texttt{level} as appropriate. You can also specify your own indentation in
+	\texttt{indentRules} (see \vref{sec:noadd-indent-rules}); you will find the default
+	\texttt{indentRules} contains
 	\lstinline!chapter: " "! which tells \texttt{latexindent.pl} simply to use a space
-	character after \texttt{\chapter} headings (once \texttt{indent} is set to
-	\texttt{1} for \texttt{chapter}).
+	character after \texttt{\chapter} headings (once \texttt{indent} is set to \texttt{1} for
+	\texttt{chapter}).
 
 	For example, assuming that you have the code in \cref{lst:headings1yaml} saved into
-	\texttt{headings1.yaml}, and that you have the text from \cref{lst:headings1} saved
-	into \texttt{headings1.tex}.
+	\texttt{headings1.yaml}, and that you have the text from \cref{lst:headings1} saved into
+	\texttt{headings1.tex}.
 
 	\begin{cmhtcbraster}
 		\cmhlistingsfromfile[style=yaml-LST]*{demonstrations/headings1.yaml}[yaml-TCB]{\texttt{headings1.yaml}}{lst:headings1yaml}
@@ -1120,9 +1125,8 @@
 		\cmhlistingsfromfile[showtabs=true]{demonstrations/headings1-mod2.tex}{\texttt{headings1.tex} second modification}{lst:headings1-mod2}
 	\end{minipage}
 
-	Now say that you modify the \texttt{YAML} from \cref{lst:headings1yaml} so that
-	the \texttt{paragraph} \texttt{level} is \texttt{1}; after
-	running
+	Now say that you modify the \texttt{YAML} from \cref{lst:headings1yaml} so that the
+	\texttt{paragraph} \texttt{level} is \texttt{1}; after running
 	\index{switches!-l demonstration}
 	\begin{commandshell}
 latexindent.pl headings1.tex -l=headings1.yaml
@@ -1135,10 +1139,10 @@
 \yamltitle{maximumIndentation}*{horizontal space}
 	You can control the maximum indentation given to your file
 	by%
-	\announce{2017-08-21}{maximumIndentation} specifying the
-	\texttt{maximumIndentation} field as horizontal space (but \emph{not} including
-	tabs). This feature uses the \texttt{Text::Tabs} module \cite{texttabs}, and
-	is \emph{off} by default.
+	\announce{2017-08-21}{maximumIndentation} specifying
+	the \texttt{maximumIndentation} field as horizontal space (but \emph{not} including
+	tabs). This feature uses the \texttt{Text::Tabs} module \cite{texttabs}, and is
+	\emph{off} by default.
 
 	For example, consider the example shown in \cref{lst:mult-nested} together with the
 	default output shown in \cref{lst:mult-nested-default}.
@@ -1161,14 +1165,16 @@
 		\cmhlistingsfromfile[showspaces=true]{demonstrations/mult-nested-max-ind1.tex}{\texttt{mult-nested.tex} using \cref{lst:max-indentation1yaml}}{lst:mult-nested-max-ind1}
 	\end{cmhtcbraster}
 
-	Comparing the output in \cref{lst:mult-nested-default,lst:mult-nested-max-ind1} we notice that the (default) tabs of
-	indentation have been replaced by a single space.
+	Comparing the output in \cref{lst:mult-nested-default,lst:mult-nested-max-ind1} we notice
+	that the (default) tabs of indentation have been replaced by a single space.
 
 	In general, when using the \texttt{maximumIndentation} feature, any leading tabs will be
-	replaced by equivalent spaces except, of course, those found in \texttt{verbatimEnvironments} (see \vref{lst:verbatimEnvironments})
-	or \texttt{noIndentBlock} (see \vref{lst:noIndentBlock}).
+	replaced by equivalent spaces except, of course, those found in
+	\texttt{verbatimEnvironments} (see \vref{lst:verbatimEnvironments}) or
+	\texttt{noIndentBlock} (see \vref{lst:noIndentBlock}).
 
 \subsection{The code blocks known latexindent.pl}\label{subsubsec:code-blocks}
+
 	As of Version 3.0, \texttt{latexindent.pl} processes documents using code blocks; each of
 	these are shown in \cref{tab:code-blocks}.
 	\index{regular expressions!uppercase alph A-Z}
@@ -1247,5 +1253,6 @@
 	\end{table}
 
 	We will refer to these code blocks in what follows.%
-	\announce{2019-07-13}{fine tuning of code blocks} Note that the fine tuning of the definition of the code blocks
-	detailed in \cref{tab:code-blocks} is discussed in \vref{sec:finetuning}.
+	\announce{2019-07-13}{fine tuning of code blocks} Note that the fine tuning of the
+	definition of the code blocks detailed in \cref{tab:code-blocks} is discussed in
+	\vref{sec:finetuning}.

Modified: trunk/Master/texmf-dist/doc/support/latexindent/sec-demonstration.tex
===================================================================
--- trunk/Master/texmf-dist/doc/support/latexindent/sec-demonstration.tex	2021-08-01 02:06:28 UTC (rev 60131)
+++ trunk/Master/texmf-dist/doc/support/latexindent/sec-demonstration.tex	2021-08-01 20:35:09 UTC (rev 60132)
@@ -4,15 +4,17 @@
  want to try the script if you don't much like the results. You might also like to watch
  the video demonstration I made on youtube \cite{cmh:videodemo}
 
- As you look at \crefrange{lst:filecontentsbefore}{lst:pstricksafter}, remember that \texttt{latexindent.pl} is just
- following its rules, and there is nothing particular about these code snippets. All of
- the rules can be modified so that you can personalise your indentation scheme.
+ As you look at \crefrange{lst:filecontentsbefore}{lst:pstricksafter}, remember that
+ \texttt{latexindent.pl} is just following its rules, and there is nothing particular
+ about these code snippets. All of the rules can be modified so that you can personalise
+ your indentation scheme.
 
- In each of the samples given in \crefrange{lst:filecontentsbefore}{lst:pstricksafter} the `before' case is a `worst case
- scenario' with no effort to make indentation. The `after' result would be the same,
- regardless of the leading white space at the beginning of each line which is stripped by
- \texttt{latexindent.pl} (unless a \texttt{verbatim}-like
- environment or \texttt{noIndentBlock} is specified -- more on this in \cref{sec:defuseloc}).
+ In each of the samples given in \crefrange{lst:filecontentsbefore}{lst:pstricksafter} the
+ `before' case is a `worst case scenario' with no effort to make indentation. The `after'
+ result would be the same, regardless of the leading white space at the beginning of each
+ line which is stripped by \texttt{latexindent.pl} (unless a \texttt{verbatim}-like
+ environment or \texttt{noIndentBlock} is specified -- more on this in
+ \cref{sec:defuseloc}).
 
  \begin{widepage}
 	 \centering

Modified: trunk/Master/texmf-dist/doc/support/latexindent/sec-fine-tuning.tex
===================================================================
--- trunk/Master/texmf-dist/doc/support/latexindent/sec-fine-tuning.tex	2021-08-01 02:06:28 UTC (rev 60131)
+++ trunk/Master/texmf-dist/doc/support/latexindent/sec-fine-tuning.tex	2021-08-01 20:35:09 UTC (rev 60132)
@@ -2,8 +2,9 @@
 \section{Fine tuning}\label{sec:finetuning}
  \texttt{latexindent.pl} operates by looking for the code blocks detailed in
  \vref{tab:code-blocks}.
- \announce{2019-07-13}{details of fine tuning of code blocks} The fine tuning of the details of such code blocks
- is controlled by the \texttt{fineTuning} field, detailed in \cref{lst:fineTuning}.
+ \announce{2019-07-13}{details of fine tuning of code blocks} The fine tuning of the
+ details of such code blocks is controlled by the \texttt{fineTuning} field, detailed in
+ \cref{lst:fineTuning}.
 
  This field is for those that would like to peek under the bonnet/hood and make some fine
  tuning to \texttt{latexindent.pl}'s operating.
@@ -29,7 +30,7 @@
  \end{warning}
 
  \begin{widepage}
-	 \cmhlistingsfromfile*[style=fineTuning]*{../defaultSettings.yaml}[width=.95\linewidth,before=\centering,yaml-TCB]{\texttt{fineTuning}}{lst:fineTuning}
+	 \cmhlistingsfromfile[style=fineTuning]*{../defaultSettings.yaml}[width=.95\linewidth,before=\centering,yaml-TCB]{\texttt{fineTuning}}{lst:fineTuning}
  \end{widepage}
 
  The fields given in \cref{lst:fineTuning} are all \emph{regular expressions}. This manual
@@ -38,8 +39,8 @@
 
  We make the following comments with reference to \cref{lst:fineTuning}:
  \begin{enumerate}
-	 \item the \texttt{environments:name} field details that the \emph{name} of an
-	       environment can contain:
+	 \item the \texttt{environments:name} field details that the \emph{name} of an environment can
+	       contain:
 	       \begin{enumerate}
 		       \item \texttt{a-z} lower case letters
 		       \item \texttt{A-Z} upper case letters
@@ -50,17 +51,15 @@
 		       \item \lstinline!\! backslashes
 	       \end{enumerate}
 	       \index{regular expressions!at least one +}
-	       The \texttt{+} at the end means \emph{at least one} of the above
-	       characters.
+	       The \texttt{+} at the end means \emph{at least one} of the above characters.
 	 \item the \texttt{ifElseFi:name} field:
 	       \begin{enumerate}
 		       \item \lstinline^@?^ means that it \emph{can possibly} begin with
 		             \lstinline^@^
 		       \item followed by \texttt{if}
-		       \item followed by 0 or more characters from \texttt{a-z}, \texttt{A-Z} and
-		             \texttt{@}
-		       \item the \texttt{?} the end means \emph{non-greedy}, which means `stop the
-		             match as soon as possible'
+		       \item followed by 0 or more characters from \texttt{a-z}, \texttt{A-Z} and \texttt{@}
+		       \item the \texttt{?} the end means \emph{non-greedy}, which means `stop the match as soon as
+		             possible'
 	       \end{enumerate}
 	 \item the \texttt{keyEqualsValuesBracesBrackets} contains some interesting syntax:
 	       \begin{enumerate}
@@ -67,8 +66,8 @@
 		       \item \lstinline!|! means `or'
 		       \item \lstinline^(?:(?<!\\)\{)^ the \lstinline^(?:...)^ uses a \emph{non-capturing} group --
 		             you don't necessarily need to worry about what this means, but just know that for the
-		             \texttt{fineTuning} feature you should only ever use \emph{non}-capturing
-		             groups, and \emph{not} capturing groups, which are simply
+		             \texttt{fineTuning} feature you should only ever use \emph{non}-capturing groups, and
+		             \emph{not} capturing groups, which are simply
 		             \lstinline!(...)!
 		       \item \lstinline^(?<!\\)\{)^ means a \lstinline^{^ but it can \emph{not}
 		             be immediately preceded by a \lstinline!\!
@@ -90,14 +89,14 @@
 		             \texttt{DBSFinishesWithLineBreak} polyswitches surrounding double back slashes, see
 		             \vref{subsec:dbs}
 		       \item \texttt{comma} is in relation to the \texttt{CommaStartsOnOwnLine} and
-		             \texttt{CommaFinishesWithLineBreak} polyswitches surrounding commas in optional and mandatory
-		             arguments; see \vref{tab:poly-switch-mapping}
+		             \texttt{CommaFinishesWithLineBreak} polyswitches surrounding commas in optional and
+		             mandatory arguments; see \vref{tab:poly-switch-mapping}
 	       \end{enumerate}
  \end{enumerate}
 
  It is not obvious from \cref{lst:fineTuning}, but each of the \texttt{follow},
- \texttt{before} and \texttt{between} fields allow trailing comments, line
- breaks, and horizontal spaces between each character.
+ \texttt{before} and \texttt{between} fields allow trailing comments, line breaks, and
+ horizontal spaces between each character.
 
  \begin{example}
 	 As a demonstration, consider the file given in \cref{lst:finetuning1}, together with its
@@ -179,7 +178,7 @@
 	 We can tweak the \texttt{fineTuning} for how trailing comments are classified. For motivation, let's consider
 	 the code given in \cref{lst:finetuning4}
 
-	 \cmhlistingsfromfile*{demonstrations/finetuning4.tex}{\texttt{finetuning4.tex}}{lst:finetuning4}
+	 \cmhlistingsfromfile{demonstrations/finetuning4.tex}{\texttt{finetuning4.tex}}{lst:finetuning4}
 
 	 We will compare the settings given in \cref{lst:href1,lst:href2}.
 
@@ -186,8 +185,8 @@
 	 \begin{cmhtcbraster}[raster column skip=.01\linewidth,
 			 raster left skip=0cm,
 			 raster right skip=-0.5cm,]
-		 \cmhlistingsfromfile*[style=yaml-LST]*{demonstrations/href1.yaml}[MLB-TCB]{\texttt{href1.yaml}}{lst:href1}
-		 \cmhlistingsfromfile*[style=yaml-LST]*{demonstrations/href2.yaml}[MLB-TCB]{\texttt{href2.yaml}}{lst:href2}
+		 \cmhlistingsfromfile[style=yaml-LST]*{demonstrations/href1.yaml}[MLB-TCB]{\texttt{href1.yaml}}{lst:href1}
+		 \cmhlistingsfromfile[style=yaml-LST]*{demonstrations/href2.yaml}[MLB-TCB]{\texttt{href2.yaml}}{lst:href2}
 	 \end{cmhtcbraster}
 
 	 Upon running the following commands
@@ -198,16 +197,16 @@
 	 we receive the respective output in \cref{lst:finetuning4-mod1,lst:finetuning4-mod2}.
 
 	 \begin{widepage}
-		 \cmhlistingsfromfile*{demonstrations/finetuning4-mod1.tex}{\texttt{finetuning4.tex} using \cref{lst:href1}}{lst:finetuning4-mod1}
+		 \cmhlistingsfromfile{demonstrations/finetuning4-mod1.tex}{\texttt{finetuning4.tex} using \cref{lst:href1}}{lst:finetuning4-mod1}
 
-		 \cmhlistingsfromfile*{demonstrations/finetuning4-mod2.tex}{\texttt{finetuning4.tex} using \cref{lst:href2}}{lst:finetuning4-mod2}
+		 \cmhlistingsfromfile{demonstrations/finetuning4-mod2.tex}{\texttt{finetuning4.tex} using \cref{lst:href2}}{lst:finetuning4-mod2}
 	 \end{widepage}
 
 	 We note that in:
 	 \begin{itemize}
-		 \item \cref{lst:finetuning4-mod1} the trailing comments are assumed to be everything following the
-		       first comment symbol, which has meant that everything following it has been moved to the
-		       end of the line; this is undesirable, clearly!
+		 \item \cref{lst:finetuning4-mod1} the trailing comments are assumed to be everything following
+		       the first comment symbol, which has meant that everything following it has been moved to
+		       the end of the line; this is undesirable, clearly!
 		 \item \cref{lst:finetuning4-mod2} has fine-tuned the trailing comment matching, and says that
 		       \% cannot
 		       be immediately preceeded by the words `Handbook', `for' or `Spoken', which means that
@@ -224,7 +223,7 @@
 	 then we receive the same output given in \cref{lst:finetuning4-mod2}; see also \texttt{paragraphsStopAt}
 	 in \vref{lst:paragraphsStopAt}.
 
-	 \cmhlistingsfromfile*[style=yaml-LST]*{demonstrations/href3.yaml}[MLB-TCB]{\texttt{href3.yaml}}{lst:href3}
+	 \cmhlistingsfromfile[style=yaml-LST]*{demonstrations/href3.yaml}[MLB-TCB]{\texttt{href3.yaml}}{lst:href3}
 
 	 With reference to the \texttt{body} field in \cref{lst:href3}, we note that the \texttt{body} field can
 	 be interpreted as: the fewest number of zero or more characters that are not right braces. This

Modified: trunk/Master/texmf-dist/doc/support/latexindent/sec-how-to-use.tex
===================================================================
--- trunk/Master/texmf-dist/doc/support/latexindent/sec-how-to-use.tex	2021-08-01 02:06:28 UTC (rev 60131)
+++ trunk/Master/texmf-dist/doc/support/latexindent/sec-how-to-use.tex	2021-08-01 20:35:09 UTC (rev 60132)
@@ -2,11 +2,10 @@
 \section{How to use the script}
  \texttt{latexindent.pl} ships as part of the \TeX Live distribution for
  Linux and Mac users; \texttt{latexindent.exe} ships as part of the \TeX Live and
- MiK\TeX{} distributions for Windows users. These files are also available
- from github \cite{latexindent-home} should you wish to use them without a
- \TeX{} distribution; in this case, you may like to read
- \vref{sec:updating-path} which details how the \texttt{path} variable can be
- updated.
+ MiK\TeX{} distributions for Windows users. These files are also available from github
+ \cite{latexindent-home} should you wish to use them without a \TeX{} distribution; in
+ this case, you may like to read \vref{sec:updating-path} which details how the
+ \texttt{path} variable can be updated.
 
  In what follows, we will always refer to \texttt{latexindent.pl}, but depending on your
  operating system and preference, you might substitute \texttt{latexindent.exe} or simply
@@ -13,25 +12,26 @@
  \texttt{latexindent}.
 
  There are two ways to use \texttt{latexindent.pl}: from the command line, and using
- \texttt{arara}; we discuss these in \cref{sec:commandline} and
- \cref{sec:arara} respectively. We will discuss how to change the settings and
- behaviour of the script in \vref{sec:defuseloc}.
+ \texttt{arara}; we discuss these in \cref{sec:commandline} and \cref{sec:arara}
+ respectively. We will discuss how to change the settings and behaviour of the script in
+ \vref{sec:defuseloc}.
 
  \texttt{latexindent.pl} ships with \texttt{latexindent.exe} for Windows
  users, so that you can use the script with or without a Perl distribution. If you plan to
- use \texttt{latexindent.pl} (i.e, the original Perl script) then you will need a few standard Perl modules -- see
- \vref{sec:requiredmodules} for details;%
- \announce{2018-01-13}{perl module installer helper script} in particular, note that a module installer helper script is
- shipped with \texttt{latexindent.pl}.
+ use \texttt{latexindent.pl} (i.e, the original Perl script) then you will need a few
+ standard Perl modules -- see \vref{sec:requiredmodules} for
+ details;%
+ \announce{2018-01-13}{perl module installer helper script} in particular, note that a module installer helper script is shipped with
+ \texttt{latexindent.pl}.
 
 \subsection{From the command line}\label{sec:commandline}
 	\texttt{latexindent.pl} has a number of different switches/flags/options, which
 	can be combined in any way that you like, either in short or long form as detailed below.
-	\texttt{latexindent.pl} produces a \texttt{.log} file, \texttt{indent.log},
-	every time it is run; the name of the log file can be customised, but we will refer to
-	the log file as \texttt{indent.log} throughout this document. There is a base of
-	information that is written to \texttt{indent.log}, but other additional information
-	will be written depending on which of the following options are used.
+	\texttt{latexindent.pl} produces a \texttt{.log} file, \texttt{indent.log}, every time it
+	is run; the name of the log file can be customised, but we will refer to the log file as
+	\texttt{indent.log} throughout this document. There is a base of information that is
+	written to \texttt{indent.log}, but other additional information will be written
+	depending on which of the following options are used.
 
 \flagbox{-v, --version}
 	\index{switches!-v, --version definition and details}
@@ -55,8 +55,8 @@
 \end{commandshell}
 
 	This will operate on \texttt{myfile.tex}, but will simply output to your terminal;
-	\texttt{myfile.tex} will not be changed by \texttt{latexindent.pl} in any way using
-	this command.
+	\texttt{myfile.tex} will not be changed by \texttt{latexindent.pl} in any way using this
+	command.
 
 \flagbox{-w, --overwrite}
 	\index{switches!-w, --overwrite definition and details}
@@ -86,12 +86,11 @@
 latexindent.pl --outputfile output.tex myfile.tex
 \end{commandshell}
 
-	This will indent \texttt{myfile.tex} and output it to \texttt{output.tex},
-	overwriting it (\texttt{output.tex}) if it already exists\footnote{Users of version 2.* should
-		note the subtle change in syntax}. Note
-	that if \texttt{latexindent.pl} is called with both the \texttt{-w} and
-	\texttt{-o} switches, then \texttt{-w} will be ignored and
-	\texttt{-o} will take priority (this seems safer than the other way round).
+	This will indent \texttt{myfile.tex} and output it to \texttt{output.tex}, overwriting it
+	(\texttt{output.tex}) if it already exists\footnote{Users of version 2.* should note the
+		subtle change in syntax}. Note that if \texttt{latexindent.pl} is called with both the
+	\texttt{-w} and \texttt{-o} switches, then \texttt{-w} will be ignored and \texttt{-o}
+	will take priority (this seems safer than the other way round).
 
 	Note that using \texttt{-o} as above is equivalent to using
 	\begin{commandshell}
@@ -98,32 +97,32 @@
 latexindent.pl myfile.tex > output.tex
 \end{commandshell}
 
-	You can call the \texttt{-o} switch with the name of the output file
-	\emph{without} an extension; in%
-	\announce{2017-06-25}{upgrade to -o switch} this case, \texttt{latexindent.pl} will use the extension from the
-	original file. For example, the following two calls to \texttt{latexindent.pl} are
-	equivalent:
+	You can call the \texttt{-o} switch with the name of the output file \emph{without} an
+	extension; in%
+	\announce{2017-06-25}{upgrade to -o switch}
+	this case, \texttt{latexindent.pl} will use the extension from the original file. For
+	example, the following two calls to \texttt{latexindent.pl} are equivalent:
 	\begin{commandshell}
 latexindent.pl myfile.tex -o=output
 latexindent.pl myfile.tex -o=output.tex
 \end{commandshell}
 
-	You can call the \texttt{-o} switch using a \texttt{+} symbol at
-	the beginning; this will%
+	You can call the \texttt{-o} switch using a \texttt{+} symbol at the beginning; this
+	will%
 	\announce{2017-06-25}{+ sign in o switch}
-	concatenate the name of the input file and the text given to the \texttt{-o}
-	switch. For example, the following two calls to \texttt{latexindent.pl} are equivalent:
+	concatenate the name of the input file and the text given to the \texttt{-o} switch. For
+	example, the following two calls to \texttt{latexindent.pl} are equivalent:
 	\begin{commandshell}
 latexindent.pl myfile.tex -o=+new
 latexindent.pl myfile.tex -o=myfilenew.tex
 \end{commandshell}
 
-	You can call the \texttt{-o} switch using a \texttt{++} symbol at
-	the end of the name%
+	You can call the \texttt{-o} switch using a \texttt{++} symbol at the end of the
+	name%
 	\announce{2017-06-25}{++ in o switch} of your output
 	file; this tells \texttt{latexindent.pl} to search successively for the name of your
-	output file concatenated with $0, 1, \ldots$ while the name of the output file
-	exists.  For example,
+	output file concatenated with $0, 1, \ldots$ while the name of the output file exists.
+	For example,
 	\begin{commandshell}
 latexindent.pl myfile.tex -o=output++
 \end{commandshell}
@@ -137,17 +136,16 @@
 	tells it to output to \texttt{myfile0.tex}, but if it exists then output to
 	\texttt{myfile1.tex} and so on.
 
-	The \texttt{+} and \texttt{++} feature of the
-	\texttt{-o} switch can be combined; for example, calling
+	The \texttt{+} and \texttt{++} feature of the \texttt{-o} switch can be combined; for
+	example, calling
 	\begin{commandshell}
 latexindent.pl myfile.tex -o=+out++
 \end{commandshell}
-	tells \texttt{latexindent.pl} to output to \texttt{myfileout0.tex}, but if it exists, then
-	try \texttt{myfileout1.tex}, and so on.
+	tells \texttt{latexindent.pl} to output to \texttt{myfileout0.tex}, but if it exists,
+	then try \texttt{myfileout1.tex}, and so on.
 
-	There is no need to specify a file extension when using the \texttt{++}
-	feature, but if you wish to, then you should include it \emph{after} the
-	\texttt{++} symbols, for example
+	There is no need to specify a file extension when using the \texttt{++} feature, but if
+	you wish to, then you should include it \emph{after} the \texttt{++} symbols, for example
 	\begin{commandshell}
 latexindent.pl myfile.tex -o=+out++.tex
 \end{commandshell}
@@ -186,9 +184,8 @@
 
 	\emph{More detailed} tracing mode: this option gives more details to
 	\texttt{indent.log}
-	than the standard \texttt{trace} option (note that, even more so than with
-	\texttt{-t}, especially for large files, performance of the script will be
-	affected).
+	than the standard \texttt{trace} option (note that, even more so than with \texttt{-t},
+	especially for large files, performance of the script will be affected).
 
 \flagbox{-l, --local[=myyaml.yaml,other.yaml,...]}
 	\index{switches!-l, --local definition and details}
@@ -202,29 +199,31 @@
 \end{commandshell}
 
 	\label{page:localswitch}
-	\texttt{latexindent.pl} will always load \texttt{defaultSettings.yaml} (rhymes with camel)
-	and if it is called with the \texttt{-l} switch and it finds
+	\texttt{latexindent.pl} will always load \texttt{defaultSettings.yaml} (rhymes with
+	camel) and if it is called with the \texttt{-l} switch and it finds
 	\texttt{localSettings.yaml} in the same directory as \texttt{myfile.tex}, then, if not
-	found, it looks for \texttt{localSettings.yaml} (and friends, see \vref{sec:localsettings}) in the current working directory, then these
-	\announce{2021-03-14}*{-l switch: localSettings and friends} settings will be added to the indentation scheme. Information
-	will be given in \texttt{indent.log} on the success or failure of loading
-	\texttt{localSettings.yaml}.
+	found, it looks for \texttt{localSettings.yaml} (and friends, see
+	\vref{sec:localsettings}) in the current working directory, then
+	these%
+	\announce{2021-03-14}*{-l switch: localSettings and
+		friends} settings will be added to the indentation scheme. Information will be given in
+	\texttt{indent.log} on the success or failure of loading \texttt{localSettings.yaml}.
 
-	The \texttt{-l} flag can take an \emph{optional} parameter which
-	details the name (or names separated by commas) of a YAML file(s) that resides in the
-	same directory as \texttt{myfile.tex}; you can use this option if you would like to
-	load a settings file in the current working directory that is \emph{not}
-	called \texttt{localSettings.yaml}.%
-	\announce{2017-08-21}*{-l switch absolute paths}
-	In fact, you can specify both \emph{relative} and \emph{absolute paths} for
-	your YAML files; for example
+	The \texttt{-l} flag can take an \emph{optional} parameter which details the name (or
+	names separated by commas) of a YAML file(s) that resides in the same directory as
+	\texttt{myfile.tex}; you can use this option if you would like to load a settings file in
+	the current working directory that is \emph{not} called
+	\texttt{localSettings.yaml}.%
+	\announce{2017-08-21}*{-l
+		switch absolute paths} In fact, you can specify both \emph{relative} and \emph{absolute
+		paths} for your YAML files; for example
 	\begin{commandshell}
 latexindent.pl -l=../../myyaml.yaml myfile.tex
 latexindent.pl -l=/home/cmhughes/Desktop/myyaml.yaml myfile.tex
 latexindent.pl -l=C:\Users\cmhughes\Desktop\myyaml.yaml myfile.tex
 \end{commandshell}
-	You will find a lot of other explicit demonstrations of how to use the
-	\texttt{-l} switch throughout this documentation,
+	You will find a lot of other explicit demonstrations of how to use the \texttt{-l} switch
+	throughout this documentation,
 
 	You can call the \texttt{-l} switch with a `+' symbol either before or after
 	\announce{2017-06-25}{+ sign with -l switch} another YAML file; for example:
@@ -247,11 +246,12 @@
 	\begin{commandshell}
 latexindent.pl -l + myyaml.yaml myfile.tex
 \end{commandshell}
-	will \emph{only} load \texttt{localSettings.yaml}, and \texttt{myyaml.yaml}
-	will be ignored. If you wish to use spaces between any of the YAML settings, then you
-	must wrap the entire list of YAML files in quotes, as demonstrated above.
+	will \emph{only} load \texttt{localSettings.yaml}, and \texttt{myyaml.yaml} will be
+	ignored. If you wish to use spaces between any of the YAML settings, then you must wrap
+	the entire list of YAML files in quotes, as demonstrated above.
 
-	You may also choose to omit the \texttt{yaml} extension, such as
+	You may also choose to omit the \texttt{yaml} extension, such
+	as%
 	\announce{2017-06-25}{no extension for -l switch}
 	\begin{commandshell}
 latexindent.pl -l=localSettings,myyaml myfile.tex
@@ -268,16 +268,14 @@
 latexindent.pl myfile.tex -y='modifyLineBreaks:environments:one:EndStartsOnOwnLine:3' -m
 \end{commandshell}
 	\label{page:yamlswitch}You%
-	\announce{2017-08-21}{the -y switch} can specify YAML settings from the command line using the
-	\texttt{-y} or \texttt{--yaml} switch;
-	sample demonstrations are given above.	Note, in particular, that multiple settings can
-	be specified by separating them via commas. There is a further option to use a
-	\texttt{;} to separate fields, which is demonstrated in
-	\vref{sec:yamlswitch}.
+	\announce{2017-08-21}{the -y switch} can specify YAML settings from the command line
+	using the \texttt{-y} or \texttt{--yaml} switch; sample demonstrations are given above.
+	Note, in particular, that multiple settings can be specified by separating them via
+	commas. There is a further option to use a \texttt{;} to separate fields, which is
+	demonstrated in \vref{sec:yamlswitch}.
 
-	Any settings specified via this switch will be loaded \emph{after} any
-	specified using the \texttt{-l} switch. This is discussed further in
-	\vref{sec:loadorder}.
+	Any settings specified via this switch will be loaded \emph{after} any specified using
+	the \texttt{-l} switch. This is discussed further in \vref{sec:loadorder}.
 \flagbox{-d, --onlydefault}
 	\index{switches!-d, --onlydefault definition and details}
 	\begin{commandshell}
@@ -284,15 +282,15 @@
 latexindent.pl -d myfile.tex
 \end{commandshell}
 
-	Only \texttt{defaultSettings.yaml}: you might like to read \cref{sec:defuseloc} before using
-	this switch. By default, \texttt{latexindent.pl} will always search for
-	\texttt{indentconfig.yaml} or \texttt{.indentconfig.yaml} in your home directory. If you would
-	prefer it not to do so then (instead of deleting or renaming \texttt{indentconfig.yaml} or
-	\texttt{.indentconfig.yaml}) you can simply call the script with the \texttt{-d}
-	switch; note that this will also tell the script to ignore \texttt{localSettings.yaml} even
-	if it has been called with the \texttt{-l} switch; \texttt{latexindent.pl}%
-	\announce{2017-08-21}*{updated -d switch} will also ignore any settings specified from the
-	\texttt{-y} switch.
+	Only \texttt{defaultSettings.yaml}: you might like to read \cref{sec:defuseloc} before
+	using this switch. By default, \texttt{latexindent.pl} will always search for
+	\texttt{indentconfig.yaml} or \texttt{.indentconfig.yaml} in your home directory. If you
+	would prefer it not to do so then (instead of deleting or renaming
+	\texttt{indentconfig.yaml} or \texttt{.indentconfig.yaml}) you can simply call the script
+	with the \texttt{-d} switch; note that this will also tell the script to ignore
+	\texttt{localSettings.yaml} even if it has been called with the \texttt{-l} switch;
+	\texttt{latexindent.pl}%
+	\announce{2017-08-21}*{updated -d switch} will also ignore any settings specified from the \texttt{-y} switch.
 
 \flagbox{-c, --cruft=<directory>}
 	\index{switches!-c, --cruft definition and details}
@@ -313,13 +311,13 @@
 latexindent.pl myfile.tex -g other.log 
 \end{commandshell}
 
-	By default, \texttt{latexindent.pl} reports information to \texttt{indent.log}, but
-	if you wish to change the name of this file, simply call the script with your chosen name
+	By default, \texttt{latexindent.pl} reports information to \texttt{indent.log}, but if
+	you wish to change the name of this file, simply call the script with your chosen name
 	after the \texttt{-g} switch as demonstrated above.
 
-	\announce{2021-05-07}{log file creation updated} If \texttt{latexindent.pl} can not open the log file that you
-	specify, then the script will operate, and no log file will be produced; this might be
-	helpful to users who wish to specify the following, for example
+	\announce{2021-05-07}{log file creation updated} If \texttt{latexindent.pl} can not open
+	the log file that you specify, then the script will operate, and no log file will be
+	produced; this might be helpful to users who wish to specify the following, for example
 	\begin{commandshell}
 latexindent.pl -g /dev/null myfile.tex
 \end{commandshell}
@@ -331,9 +329,8 @@
 latexindent.pl -screenlog myfile.tex
 \end{commandshell}
 	Using this%
-	\announce{2018-01-13}{screenlog switch created} option tells
-	\texttt{latexindent.pl} to output the log file to the screen, as well as to your chosen
-	log file.
+	\announce{2018-01-13}{screenlog switch created} option tells \texttt{latexindent.pl} to output the log file to the screen, as
+	well as to your chosen log file.
 
 \flagbox{-m, --modifylinebreaks}
 	\index{switches!-m, --modifylinebreaks definition and details}
@@ -358,22 +355,20 @@
 cat myfile.tex | latexindent.pl -
 \end{commandshell}
 	\texttt{latexindent.pl} will%
-	\announce{2018-01-13}{STDIN allowed} allow input from STDIN, which means that you can pipe output from
-	other commands directly into the script. For example assuming that you have content in
-	\texttt{myfile.tex}, then the above command will output the results of operating upon
-	\texttt{myfile.tex}.
+	\announce{2018-01-13}{STDIN allowed} allow input from STDIN, which means that you can
+	pipe output from other commands directly into the script. For example assuming that you
+	have content in \texttt{myfile.tex}, then the above command will output the results of
+	operating upon \texttt{myfile.tex}.
 
-	If you wish to use this feature with your own local settings, via the
-	\texttt{-l} switch, then you should finish your call to
-	\texttt{latexindent.pl} with a \texttt{-} sign:
+	If you wish to use this feature with your own local settings, via the \texttt{-l} switch,
+	then you should finish your call to \texttt{latexindent.pl} with a \texttt{-} sign:
 	\begin{commandshell}
 cat myfile.tex | latexindent.pl -l=mysettings.yaml -
 \end{commandshell}
 
 	Similarly, if you%
-	\announce{2018-01-13}*{no options/filename updated} simply type
-	\texttt{latexindent.pl} at the command line, then it will expect (STDIN) input from the
-	command line.
+	\announce{2018-01-13}*{no options/filename updated} simply type \texttt{latexindent.pl} at the command line, then
+	it will expect (STDIN) input from the command line.
 	\begin{commandshell}
 latexindent.pl
 \end{commandshell}
@@ -383,8 +378,8 @@
 		\item \texttt{CTRL+D} on Linux
 		\item \texttt{CTRL+Z} followed by \texttt{ENTER} on Windows
 	\end{itemize}
-	to signify that your input has finished. Thanks to \cite{xu-cheng} for an update
-	to this feature.
+	to signify that your input has finished. Thanks to \cite{xu-cheng} for an update to this
+	feature.
 \flagbox{-r, --replacement}
 	\index{switches!-r, --replacement definition and details}
 	\begin{commandshell}
@@ -392,8 +387,8 @@
 latexindent.pl -replacement myfile.tex
 \end{commandshell}
 	You can%
-	\announce{2019-07-13}{replacement mode switch} call
-	\texttt{latexindent.pl} with the \texttt{-r} switch to instruct it to perform
+	\announce{2019-07-13}{replacement mode switch}
+	call \texttt{latexindent.pl} with the \texttt{-r} switch to instruct it to perform
 	replacements/substitutions on your file; full details and examples are given in
 	\vref{sec:replacements}.
 	\index{verbatim!rv, replacementrespectverb switch}
@@ -405,10 +400,9 @@
 latexindent.pl -replacementrespectverb myfile.tex
 \end{commandshell}
 	You can%
-	\announce{2019-07-13}{replacement mode switch, respecting verbatim} instruct
-	\texttt{latexindent.pl} to perform replacements/substitutions by using the
-	\texttt{-rv} switch, but will \emph{respect verbatim code blocks}; full details and
-	examples are given in \vref{sec:replacements}.
+	\announce{2019-07-13}{replacement mode switch, respecting verbatim} instruct \texttt{latexindent.pl} to perform
+	replacements/substitutions by using the \texttt{-rv} switch, but will \emph{respect
+		verbatim code blocks}; full details and examples are given in \vref{sec:replacements}.
 
 \flagbox{-rr, --onlyreplacement}
 	\index{switches!-rr, --onlyreplacement definition and details}
@@ -417,11 +411,9 @@
 latexindent.pl -onlyreplacement myfile.tex
 \end{commandshell}
 	You can%
-	\announce{2019-07-13}{replacement (only) mode switch} instruct
-	\texttt{latexindent.pl} to skip all of its other indentation operations and
-	\emph{only} perform replacements/substitutions by using the
-	\texttt{-rr} switch; full details and examples are given in
-	\vref{sec:replacements}.
+	\announce{2019-07-13}{replacement (only) mode switch} instruct \texttt{latexindent.pl} to skip all of its other indentation operations
+	and \emph{only} perform replacements/substitutions by using the \texttt{-rr} switch; full
+	details and examples are given in \vref{sec:replacements}.
 
 \subsection{From arara}\label{sec:arara}
 	Using \texttt{latexindent.pl} from the command line is fine for some folks, but others

Modified: trunk/Master/texmf-dist/doc/support/latexindent/sec-indent-config-and-settings.tex
===================================================================
--- trunk/Master/texmf-dist/doc/support/latexindent/sec-indent-config-and-settings.tex	2021-08-01 02:06:28 UTC (rev 60131)
+++ trunk/Master/texmf-dist/doc/support/latexindent/sec-indent-config-and-settings.tex	2021-08-01 20:35:09 UTC (rev 60132)
@@ -2,26 +2,26 @@
 \section{indentconfig.yaml, local settings and the -y switch }\label{sec:indentconfig}
  The behaviour of \texttt{latexindent.pl} is controlled from the settings specified in any
  of the YAML files that you tell it to load. By default, \texttt{latexindent.pl} will only
- load \texttt{defaultSettings.yaml}, but there are a few ways that you can tell it to load your
- own settings files.
+ load \texttt{defaultSettings.yaml}, but there are a few ways that you can tell it to load
+ your own settings files.
 
 \subsection{indentconfig.yaml and .indentconfig.yaml}
-	\texttt{latexindent.pl} will always check your home directory for \texttt{indentconfig.yaml}
-	and  \texttt{.indentconfig.yaml} (unless
-	it is called with the \texttt{-d} switch), which is a plain text file you can create that contains the
-	\emph{absolute} paths for any settings files that you wish \texttt{latexindent.pl}
-	to load. There is no difference between \texttt{indentconfig.yaml} and
-	\texttt{.indentconfig.yaml}, other than the fact that \texttt{.indentconfig.yaml} is a `hidden'
-	file; thank you to \cite{jacobo-diaz-hidden-config} for providing this feature. In what follows, we
-	will use \texttt{indentconfig.yaml}, but it is understood that this could equally represent
-	\texttt{.indentconfig.yaml}. If you have both files in existence then \texttt{indentconfig.yaml}
-	takes priority.
+	\texttt{latexindent.pl} will always check your home directory for
+	\texttt{indentconfig.yaml}
+	and \texttt{.indentconfig.yaml} (unless it is called with the \texttt{-d} switch), which
+	is a plain text file you can create that contains the \emph{absolute} paths for any
+	settings files that you wish \texttt{latexindent.pl} to load. There is no difference
+	between \texttt{indentconfig.yaml} and \texttt{.indentconfig.yaml}, other than the fact
+	that \texttt{.indentconfig.yaml} is a `hidden' file; thank you to
+	\cite{jacobo-diaz-hidden-config} for providing this feature. In what follows, we will use
+	\texttt{indentconfig.yaml}, but it is understood that this could equally represent
+	\texttt{.indentconfig.yaml}. If you have both files in existence then
+	\texttt{indentconfig.yaml} takes priority.
 
-	For Mac and Linux users, their home directory is \texttt{~/username} while Windows
-	(Vista onwards) is \lstinline!C:\Users\username!\footnote{If you're not sure
-		where to put \texttt{indentconfig.yaml}, don't
-		worry \texttt{latexindent.pl} will tell you in the log file exactly where to
-		put it assuming it doesn't exist already.} \Cref{lst:indentconfig}
+	For Mac and Linux users, their home directory is \texttt{~/username} while Windows (Vista
+	onwards) is \lstinline!C:\Users\username!\footnote{If you're not sure where to put
+		\texttt{indentconfig.yaml}, don't worry \texttt{latexindent.pl} will tell you in the log
+		file exactly where to put it assuming it doesn't exist already.} \Cref{lst:indentconfig}
 	shows a sample \texttt{indentconfig.yaml} file.
 
 	\begin{yaml}{\texttt{indentconfig.yaml} (sample)}{lst:indentconfig}
@@ -41,14 +41,14 @@
 
 	Note that the \texttt{.yaml} files you specify in \texttt{indentconfig.yaml} will be
 	loaded in the order in which you write them. Each file doesn't have to have every switch
-	from \texttt{defaultSettings.yaml}; in fact, I recommend that you only keep the switches that
-	you want to \emph{change} in these settings files.
+	from \texttt{defaultSettings.yaml}; in fact, I recommend that you only keep the switches
+	that you want to \emph{change} in these settings files.
 
 	To get started with your own settings file, you might like to save a copy of
 	\texttt{defaultSettings.yaml} in another directory and call it, for example,
-	\texttt{mysettings.yaml}. Once you have added the path to \texttt{indentconfig.yaml} you can
-	change the switches and add more code-block names to it as you see fit -- have a look at
-	\cref{lst:mysettings} for an example that uses four tabs for the default indent, adds
+	\texttt{mysettings.yaml}. Once you have added the path to \texttt{indentconfig.yaml} you
+	can change the switches and add more code-block names to it as you see fit -- have a look
+	at \cref{lst:mysettings} for an example that uses four tabs for the default indent, adds
 	the \texttt{tabbing} environment/command to the list of environments that contains
 	alignment delimiters; you might also like to refer to the many YAML files detailed
 	throughout the rest of this documentation.
@@ -67,8 +67,8 @@
 	You can make sure that your settings are loaded by checking \texttt{indent.log} for
 	details -- if you have specified a path that \texttt{latexindent.pl} doesn't recognise
 	then you'll get a warning, otherwise you'll get confirmation that \texttt{latexindent.pl}
-	has read your settings file \footnote{Windows users
-		may find that they have to end \texttt{.yaml} files with a blank line}.
+	has read your settings file \footnote{Windows users may find that they have to end
+		\texttt{.yaml} files with a blank line}.
 	\index{warning!editing YAML files}
 
 	\begin{warning}
@@ -82,23 +82,23 @@
 	\end{warning}
 
 	If you find that%
-	\announce*{2021-06-19}{encoding option for indentconfig.yaml}
-	\texttt{latexindent.pl} does not read your YAML file, then it might be as a result of the
-	default commandline encoding not being UTF-8; normally this will only occcur for Windows
-	users. In this case, you might like to explore the \texttt{encoding} option for
-	\texttt{indentconfig.yaml} as demonstrated in \cref{lst:indentconfig-encoding}.
+	\announce{2021-06-19}{encoding option for indentconfig.yaml} \texttt{latexindent.pl} does not read your YAML file, then it
+	might be as a result of the default commandline encoding not being UTF-8; normally this
+	will only occcur for Windows users. In this case, you might like to explore the
+	\texttt{encoding} option for \texttt{indentconfig.yaml} as demonstrated in
+	\cref{lst:indentconfig-encoding}.
 
-	\cmhlistingsfromfile*{demonstrations/encoding.yaml}[yaml-TCB]{The \texttt{encoding} option for \texttt{indentconfig.yaml}}{lst:indentconfig-encoding}
+	\cmhlistingsfromfile{demonstrations/encoding.yaml}[yaml-TCB]{The \texttt{encoding} option for \texttt{indentconfig.yaml}}{lst:indentconfig-encoding}
 
-	Thank you to \cite{qiancy98} for this contribution; please see
-	\vref{app:encoding} and details within \cite{encoding} for further information.
+	Thank you to \cite{qiancy98} for this contribution; please see \vref{app:encoding} and
+	details within \cite{encoding} for further information.
 
 \subsection{localSettings.yaml and friends}\label{sec:localsettings}
 	The \texttt{-l} switch tells \texttt{latexindent.pl} to look for
 	\texttt{localSettings.yaml} and/or friends in the \emph{same directory} as
-	\texttt{myfile.tex}.  For%
-	\announce{2021-03-14}*{-l switch: localSettings and friends}
-	example, if you use the following command
+	\texttt{myfile.tex}. For%
+	\announce{2021-03-14}*{-l
+		switch: localSettings and friends} example, if you use the following command
 	\index{switches!-l demonstration}
 	\begin{commandshell}
 latexindent.pl -l myfile.tex
@@ -124,9 +124,9 @@
 latexindent.pl -l=mysettings.yaml myfile.tex
 \end{commandshell}
 
-	Any settings file(s) specified using the \texttt{-l} switch will be read
-	\emph{after} \texttt{defaultSettings.yaml} and, assuming they exist, any user setting
-	files specified in \texttt{indentconfig.yaml}.
+	Any settings file(s) specified using the \texttt{-l} switch will be read \emph{after}
+	\texttt{defaultSettings.yaml} and, assuming they exist, any user setting files specified
+	in \texttt{indentconfig.yaml}.
 
 	Your settings file can contain any switches that you'd like to change; a sample is shown
 	in \cref{lst:localSettings}, and you'll find plenty of further examples throughout this
@@ -141,44 +141,41 @@
     myenv: 1
 \end{yaml}
 
-	You can make sure that your settings file has been loaded by checking
-	\texttt{indent.log} for details; if it can not be read then you receive a warning,
-	otherwise you'll get confirmation that \texttt{latexindent.pl} has read your settings
-	file.
+	You can make sure that your settings file has been loaded by checking \texttt{indent.log}
+	for details; if it can not be read then you receive a warning, otherwise you'll get
+	confirmation that \texttt{latexindent.pl} has read your settings file.
 
 \subsection{The -y|yaml switch}\label{sec:yamlswitch}
 	You%
-	\announce{2017-08-21}{demonstration of the -y switch} may use the
-	\texttt{-y} switch to load your settings;  for example, if you wished to
-	specify the settings from \cref{lst:localSettings} using the \texttt{-y}
-	switch, then you could use the following command:
+	\announce{2017-08-21}{demonstration of the -y switch}
+	may use the \texttt{-y} switch to load your settings;  for example, if you wished to
+	specify the settings from \cref{lst:localSettings} using the \texttt{-y} switch, then you
+	could use the following command:
 	\index{verbatim!verbatimEnvironments demonstration (-y switch)}
 	\begin{commandshell}
 latexindent.pl -y="verbatimEnvironments:cmhenvironment:0;myenv:1" myfile.tex
 \end{commandshell}
-	Note the use of \texttt{;} to specify another field within
-	\texttt{verbatimEnvironments}. This is shorthand, and equivalent, to using the following
-	command:
+	Note the use of \texttt{;} to specify another field within \texttt{verbatimEnvironments}.
+	This is shorthand, and equivalent, to using the following command:
 	\index{switches!-y demonstration}
 	\begin{commandshell}
 latexindent.pl -y="verbatimEnvironments:cmhenvironment:0,verbatimEnvironments:myenv:1" myfile.tex
 \end{commandshell}
-	You may, of course, specify settings using the \texttt{-y} switch as well as,
-	for example, settings loaded using the \texttt{-l} switch; for example,
+	You may, of course, specify settings using the \texttt{-y} switch as well as, for
+	example, settings loaded using the \texttt{-l} switch; for example,
 	\index{switches!-l demonstration}
 	\index{switches!-y demonstration}
 	\begin{commandshell}
 latexindent.pl -l=mysettings.yaml -y="verbatimEnvironments:cmhenvironment:0;myenv:1" myfile.tex
 \end{commandshell}
-	Any settings specified using the \texttt{-y} switch will be loaded
-	\emph{after} any specified using \texttt{indentconfig.yaml} and the
-	\texttt{-l} switch.
+	Any settings specified using the \texttt{-y} switch will be loaded \emph{after} any
+	specified using \texttt{indentconfig.yaml} and the \texttt{-l} switch.
 
 	If you wish to specify any regex-based settings using the \texttt{-y} switch,
-	\index{regular expressions!using -y switch} it is important not to use quotes surrounding the regex; for
-	example, with reference to the `one sentence per line' feature (\vref{sec:onesentenceperline})
-	and the listings within \vref{lst:sentencesEndWith}, the following settings give the option
-	to have sentences end with a semicolon
+	\index{regular expressions!using -y switch} it is important not to use quotes surrounding
+	the regex; for example, with reference to the `one sentence per line' feature
+	(\vref{sec:onesentenceperline}) and the listings within \vref{lst:sentencesEndWith}, the
+	following settings give the option to have sentences end with a semicolon
 	\index{switches!-y demonstration}
 	\begin{commandshell}
 latexindent.pl -m --yaml='modifyLineBreaks:oneSentencePerLine:sentencesEndWith:other:\;'
@@ -191,15 +188,16 @@
 		\item \texttt{defaultSettings.yaml} is always loaded, and can not be renamed;
 		\item \texttt{anyUserSettings.yaml} and any other arbitrarily-named files specified in
 		      \texttt{indentconfig.yaml};
-		\item \texttt{localSettings.yaml} but only if found in the same directory as \texttt{myfile.tex}
-		      and called with \texttt{-l} switch; this file can be renamed, provided that
-		      the call to \texttt{latexindent.pl} is adjusted accordingly (see \cref{sec:localsettings}).
-		      You may specify both relative and absolute%
-		      \announce{2017-08-21}*{-l absolute paths} paths to other YAML files using the \texttt{-l} switch,
-		      separating multiple files using commas;
+		\item \texttt{localSettings.yaml} but only if found in the same directory as
+		      \texttt{myfile.tex}
+		      and called with \texttt{-l} switch; this file can be renamed, provided that the call to
+		      \texttt{latexindent.pl} is adjusted accordingly (see \cref{sec:localsettings}). You may
+		      specify both relative and absolute%
+		      \announce{2017-08-21}*{-l absolute paths} paths to other YAML files using the \texttt{-l}
+		      switch, separating multiple files using commas;
 		\item any settings%
-		      \announce{2017-08-21}{-y switch load order} specified in the
-		      \texttt{-y} switch.
+		      \announce{2017-08-21}{-y switch load order}
+		      specified in the \texttt{-y} switch.
 	\end{enumerate}
 	A visual representation of this is given in \cref{fig:loadorder}.
 

Modified: trunk/Master/texmf-dist/doc/support/latexindent/sec-introduction.tex
===================================================================
--- trunk/Master/texmf-dist/doc/support/latexindent/sec-introduction.tex	2021-08-01 02:06:28 UTC (rev 60131)
+++ trunk/Master/texmf-dist/doc/support/latexindent/sec-introduction.tex	2021-08-01 20:35:09 UTC (rev 60132)
@@ -2,17 +2,16 @@
 \section{Introduction}
 \subsection{Thanks}
 	I first created \texttt{latexindent.pl} to help me format chapter files in a big project.
-	After I blogged about it on the \TeX{} stack exchange
-	\cite{cmhblog} I received some positive feedback and follow-up feature requests.
-	A big thank you to Harish Kumar \cite{harish} who helped to develop and test the
-	initial versions of the script.
+	After I blogged about it on the \TeX{} stack exchange \cite{cmhblog} I received some
+	positive feedback and follow-up feature requests. A big thank you to Harish Kumar
+	\cite{harish} who helped to develop and test the initial versions of the script.
 
 	The \texttt{YAML}-based interface of \texttt{latexindent.pl} was inspired by the
-	wonderful \texttt{arara} tool; any similarities are deliberate, and I hope that
-	it is perceived as the compliment that it is. Thank you to Paulo Cereda and the team for
+	wonderful \texttt{arara} tool; any similarities are deliberate, and I hope that it is
+	perceived as the compliment that it is. Thank you to Paulo Cereda and the team for
 	releasing this awesome tool; I initially worried that I was going to have to make a GUI
-	for \texttt{latexindent.pl}, but the release of \texttt{arara} has meant there is
-	no need.
+	for \texttt{latexindent.pl}, but the release of \texttt{arara} has meant there is no
+	need.
 
 	There have been several contributors to the project so far (and hopefully more in the
 	future!); thank you very much to the people detailed in \vref{sec:contributors} for their
@@ -24,17 +23,17 @@
 	is released under the GNU General Public License v3.0.
 
 	Before you start using it on any important files, bear in mind that
-	\texttt{latexindent.pl} has the option to overwrite your \texttt{.tex} files. It
-	will always make at least one backup (you can choose how many it makes, see
-	\cpageref{page:onlyonebackup}) but you should still be careful when using it. The script has
-	been tested on many files, but there are some known limitations (see
-	\cref{sec:knownlimitations}). You, the user, are responsible for ensuring that you maintain
-	backups of your files before running \texttt{latexindent.pl} on them. I think it is
-	important at this stage to restate an important part of the license here:
+	\texttt{latexindent.pl} has the option to overwrite your \texttt{.tex} files. It will
+	always make at least one backup (you can choose how many it makes, see
+	\cpageref{page:onlyonebackup}) but you should still be careful when using it. The script
+	has been tested on many files, but there are some known limitations (see
+	\cref{sec:knownlimitations}). You, the user, are responsible for ensuring that you
+	maintain backups of your files before running \texttt{latexindent.pl} on them. I think it
+	is important at this stage to restate an important part of the license here:
 	\begin{quote}\itshape
 		This program is distributed in the hope that it will be useful,
 		but WITHOUT ANY WARRANTY; without even the implied warranty of
-		MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+		MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
 		GNU General Public License for more details.
 	\end{quote}
 	There is certainly no malicious intent in releasing this script, and I do hope that it
@@ -101,16 +100,16 @@
 	% \begin{latexonly}
 	You will occasionally see dates shown in the margin (for example, next to this
 	paragraph!)%
-	\announce{2017-06-25}{announce} which detail the date
-	of the version in which the feature was implemented; the `N' stands for `new as of the
-	date shown' and `U' stands for `updated as of the date shown'. If you see \stardemo, it
-	means that the feature is either new (N) or updated (U) as of the release of the current
-	version; if you see \stardemo\, attached to a listing, then it means that listing is new
-	(N) or updated (U) as of the current version. If you have not read this document before
-	(and even if you have!), then you can ignore every occurrence of the \stardemo; they are
-	simply there to highlight new and updated features. The new and updated features in this
-	documentation (\gitRel) are on the following pages: \listOfNewFeatures
-	% \end{latexonly}
+	\announce{2017-06-25}{announce} which detail
+	the date of the version in which the feature was implemented; the `N' stands for `new as
+	of the date shown' and `U' stands for `updated as of the date shown'. If you see
+	\stardemo, it means that the feature is either new (N) or updated (U) as of the release
+	of the current version; if you see \stardemo\, attached to a listing, then it means that
+	listing is new (N) or updated (U) as of the current version. If you have not read this
+	document before (and even if you have!), then you can ignore every occurrence of the
+	\stardemo; they are simply there to highlight new and updated features. The new and
+	updated features in this documentation (\gitRel) are on the following pages:
+	\listOfNewFeatures % \end{latexonly}
 
 \subsection{Quick start}\label{sec:quickstart}
 	If you'd like to get started with \texttt{latexindent.pl} then simply type
@@ -128,12 +127,13 @@
 	\begin{commandshell}
 perl latexindent-module-installer.pl
 \end{commandshell}
-	You might also like to see \href{https://stackoverflow.com/questions/19590042/error-cant-locate-file-homedir-pm-in-inc}{https://stackoverflow.com/questions/19590042/error-cant-locate-file-homedir-pm-in-inc}, for example, as well as
-	\vref{sec:requiredmodules}.
+	You might also like to see
+	\href{https://stackoverflow.com/questions/19590042/error-cant-locate-file-homedir-pm-in-inc}{https://stackoverflow.com/questions/19590042/error-cant-locate-file-homedir-pm-in-inc},
+	for example, as well as \vref{sec:requiredmodules}.
 
 \subsection{A word about regular expressions}
 	\index{regular expressions!a word about}
-	As you read this documentation, you may encounter the term \emph{regular expressions}. I've
-	tried to write this documentation in such a way so as to allow you to engage with them or
-	not, as you prefer. This documentation is not designed to be a guide to regular
+	As you read this documentation, you may encounter the term \emph{regular expressions}.
+	I've tried to write this documentation in such a way so as to allow you to engage with
+	them or not, as you prefer. This documentation is not designed to be a guide to regular
 	expressions, and if you'd like to read about them, I recommend \cite{masteringregexp}.

Modified: trunk/Master/texmf-dist/doc/support/latexindent/sec-replacements.tex
===================================================================
--- trunk/Master/texmf-dist/doc/support/latexindent/sec-replacements.tex	2021-08-01 02:06:28 UTC (rev 60131)
+++ trunk/Master/texmf-dist/doc/support/latexindent/sec-replacements.tex	2021-08-01 20:35:09 UTC (rev 60132)
@@ -10,16 +10,16 @@
  \texttt{-rv} or \texttt{-rr} switches:
  \index{verbatim!rv, replacementrespectverb switch}
  \begin{itemize}
-	 \item the \texttt{-r} switch will perform indentation and replacements, not
-	       respecting verbatim code blocks;
-	 \item the \texttt{-rv} switch will perform indentation and replacements, and
-	       \emph{will} respect verbatim code blocks;
-	 \item the \texttt{-rr} switch will \emph{not} perform indentation,  and
-	       will perform replacements not respecting verbatim code blocks.
+	 \item the \texttt{-r} switch will perform indentation and replacements, not respecting verbatim
+	       code blocks;
+	 \item the \texttt{-rv} switch will perform indentation and replacements, and \emph{will}
+	       respect verbatim code blocks;
+	 \item the \texttt{-rr} switch will \emph{not} perform indentation,  and will perform
+	       replacements not respecting verbatim code blocks.
  \end{itemize}
 
- We will demonstrate each of the \texttt{-r}, \texttt{-rv} and
- \texttt{-rr} switches, but a summary is given in \cref{tab:replacementswitches}.
+ We will demonstrate each of the \texttt{-r}, \texttt{-rv} and \texttt{-rr} switches, but
+ a summary is given in \cref{tab:replacementswitches}.
 
  \begin{table}[!htb]
 	 \centering
@@ -35,23 +35,22 @@
 	 \end{tabular}
  \end{table}
 
- The default value of the \texttt{replacements} field is shown in
- \cref{lst:replacements}; as with all of the other fields, you are encouraged to customise
- and change this as you see fit. The options in this field will \emph{only} be
- considered if the \texttt{-r}, \texttt{-rv} or
- \texttt{-rr} switches are active; when discussing YAML settings related to the
- replacement-mode switches, we will use the style given in \cref{lst:replacements}.
+ The default value of the \texttt{replacements} field is shown in \cref{lst:replacements};
+ as with all of the other fields, you are encouraged to customise and change this as you
+ see fit. The options in this field will \emph{only} be considered if the \texttt{-r},
+ \texttt{-rv} or \texttt{-rr} switches are active; when discussing YAML settings related
+ to the replacement-mode switches, we will use the style given in \cref{lst:replacements}.
 
  \cmhlistingsfromfile[style=replacements]*{../defaultSettings.yaml}[width=0.95\linewidth,before=\centering,replace-TCB]{\texttt{replacements}}{lst:replacements}
 
- The first entry within the \texttt{replacements} field is \texttt{amalgamate}, and
- is \emph{optional}; by default it is set to 1, so that replacements will be
- amalgamated from each settings file that you specify. As you'll see in the demonstrations
- that follow, there is no need to specify this field.
+ The first entry within the \texttt{replacements} field is \texttt{amalgamate}, and is
+ \emph{optional}; by default it is set to 1, so that replacements will be amalgamated from
+ each settings file that you specify. As you'll see in the demonstrations that follow,
+ there is no need to specify this field.
 
  You'll notice that, by default, there is only \emph{one} entry in the
- \texttt{replacements} field, but it can take as many entries as you would like; each
- one needs to begin with a \texttt{-} on its own line.
+ \texttt{replacements} field, but it can take as many entries as you would like; each one
+ needs to begin with a \texttt{-} on its own line.
 
 \subsection{Introduction to replacements}
 	Let's explore the action of the default settings, and then we'll demonstrate the feature
@@ -71,8 +70,8 @@
 	\end{cmhtcbraster}
 
 	If we don't wish to perform this replacement, then we can tweak the default settings of
-	\vref{lst:replacements} by changing \texttt{lookForThis} to 0; we perform this action
-	in \cref{lst:replace1-yaml}, and run the command
+	\vref{lst:replacements} by changing \texttt{lookForThis} to 0; we perform this action in
+	\cref{lst:replace1-yaml}, and run the command
 	\index{switches!-l demonstration}
 	\index{switches!-r demonstration}
 	\begin{commandshell}
@@ -85,11 +84,11 @@
 		\cmhlistingsfromfile[style=yaml-LST]*{demonstrations/replace1.yaml}[replace-TCB]{\texttt{replace1.yaml}}{lst:replace1-yaml}
 	\end{cmhtcbraster}
 
-	Note that in \cref{lst:replace1-yaml} we have specified \texttt{amalgamate} as 0 so
-	that the default replacements are overwritten.
+	Note that in \cref{lst:replace1-yaml} we have specified \texttt{amalgamate} as 0 so that
+	the default replacements are overwritten.
 
-	We haven't yet discussed the \texttt{when} field; don't worry, we'll get to it
-	as part of the discussion in what follows.
+	We haven't yet discussed the \texttt{when} field; don't worry, we'll get to it as part of
+	the discussion in what follows.
 
 \subsection{The two types of replacements}
 	There are two types of replacements:
@@ -96,8 +95,8 @@
 	\begin{enumerate}
 		\item \emph{string}-based replacements, which replace the string in
 		      \emph{this} with the string in \emph{that}.
-		      If you specify \texttt{this} and you do not specify \texttt{that}, then
-		      the \texttt{that} field will be assumed to be empty.
+		      If you specify \texttt{this} and you do not specify \texttt{that}, then the \texttt{that}
+		      field will be assumed to be empty.
 		      \index{regular expressions!replacement switch, -r}
 		\item \emph{regex}-based replacements, which use the \texttt{substitution} field.
 	\end{enumerate}
@@ -105,8 +104,8 @@
 
 	\texttt{latexindent.pl} chooses which type of replacement to make based on which fields
 	have been specified; if the \texttt{this} field is specified, then it will make
-	\emph{string}-based replacements, regardless of if \texttt{substitution} is
-	present or not.
+	\emph{string}-based replacements, regardless of if \texttt{substitution} is present or
+	not.
 
 \subsection{Examples of replacements}
 	\begin{example}
@@ -150,19 +149,20 @@
 		\end{cmhtcbraster}
 
 		The code given in \cref{lst:colsep1} is an example of a \emph{regular expression}, which we may abbreviate to \emph{regex}
-		in what follows.  This manual is not intended to be
+		in what follows. This manual is not intended to be
 		a tutorial on regular expressions; you might like to read, for example, \cite{masteringregexp} for a detailed
 		covering of the topic. With reference to \cref{lst:colsep1}, we do note the following:
 		\begin{itemize}
-			\item the general form of the \texttt{substitution} field is \lstinline!s/regex/replacement/modifiers!. You can
-			      place any regular expression you like within this;
+			\item the general form of the \texttt{substitution} field is
+			      \lstinline!s/regex/replacement/modifiers!. You can place any regular expression you like
+			      within this;
 			\item we have `escaped' the backslash by using \lstinline!\\!
 			\item we have used \lstinline!\d+! to represent \emph{at least} one digit
-			\item the \texttt{s} \emph{modifier} (in the \texttt{sg} at the end of the line) instructs \texttt{latexindent.pl} to
-			      treat your file as one single line;
-			\item the \texttt{g} \emph{modifier} (in the \texttt{sg} at the end of the line) instructs \texttt{latexindent.pl} to
-			      make the substitution \emph{globally} throughout your file; you might try removing
-			      the \texttt{g} modifier from \cref{lst:colsep1} and observing the
+			\item the \texttt{s} \emph{modifier} (in the \texttt{sg} at the end of the line) instructs
+			      \texttt{latexindent.pl} to treat your file as one single line;
+			\item the \texttt{g} \emph{modifier} (in the \texttt{sg} at the end of the line) instructs
+			      \texttt{latexindent.pl} to make the substitution \emph{globally} throughout your file;
+			      you might try removing the \texttt{g} modifier from \cref{lst:colsep1} and observing the
 			      difference in output.
 		\end{itemize}
 		You might like to see \href{https://perldoc.perl.org/perlre.html#Modifiers}{https://perldoc.perl.org/perlre.html\#Modifiers}
@@ -241,12 +241,11 @@
 
 		A few notes about \cref{lst:displaymath1}:
 		\begin{enumerate}
-			\item we have used the \texttt{x} modifier, which allows us to have white space
-			      within the regex;
-			\item we have used a capture group, \lstinline!(.*?)! which captures the content between
-			      the \lstinline!$$...$$! into the special variable, \lstinline!$1!;
-			\item we have used the content of the capture group, \lstinline!$1!, in the
-			      replacement text.
+			\item we have used the \texttt{x} modifier, which allows us to have white space within the
+			      regex;
+			\item we have used a capture group, \lstinline!(.*?)! which captures the content between the
+			      \lstinline!$$...$$! into the special variable, \lstinline!$1!;
+			\item we have used the content of the capture group, \lstinline!$1!, in the replacement text.
 		\end{enumerate}
 		See \href{https://perldoc.perl.org/perlre.html#Capture-groups}{https://perldoc.perl.org/perlre.html\#Capture-groups} for a discussion
 		of capture groups.
@@ -355,11 +354,11 @@
 		\item in \cref{lst:verb1-mod1} indentation has been performed, and that the replacements
 		      specified in \cref{lst:verbatim1-yaml} have been performed, even within the verbatim code
 		      block;
-		\item in \cref{lst:verb1-rv-mod1} indentation has been performed, but that the replacements have
-		      \emph{not} been performed within the verbatim environment, because the
-		      \texttt{rv} switch is active;
-		\item in \cref{lst:verb1-rr-mod1} indentation has \emph{not} been performed, but
-		      that replacements have been performed, not respecting the verbatim code block.
+		\item in \cref{lst:verb1-rv-mod1} indentation has been performed, but that the replacements
+		      have \emph{not} been performed within the verbatim environment, because the \texttt{rv}
+		      switch is active;
+		\item in \cref{lst:verb1-rr-mod1} indentation has \emph{not} been performed, but that
+		      replacements have been performed, not respecting the verbatim code block.
 	\end{enumerate}
 	See the summary within \vref{tab:replacementswitches}.
 
@@ -399,11 +398,9 @@
 		We note that:
 		\begin{enumerate}
 			\item in \cref{lst:amalg1-mod1} the replacements from \cref{lst:amalg1-yaml} have been used;
-			\item in \cref{lst:amalg1-mod12} the replacements from \cref{lst:amalg1-yaml,lst:amalg2-yaml} have
-			      \emph{both} been used, because the default value of \texttt{amalgamate}
-			      is 1;
-			\item in \cref{lst:amalg1-mod123}  \emph{only} the replacements from
-			      \cref{lst:amalg3-yaml} have been used, because the value of \texttt{amalgamate} has
-			      been set to 0.
+			\item in \cref{lst:amalg1-mod12} the replacements from \cref{lst:amalg1-yaml,lst:amalg2-yaml}
+			      have \emph{both} been used, because the default value of \texttt{amalgamate} is 1;
+			\item in \cref{lst:amalg1-mod123} \emph{only} the replacements from \cref{lst:amalg3-yaml} have
+			      been used, because the value of \texttt{amalgamate} has been set to 0.
 		\end{enumerate}
 	\end{example}

Modified: trunk/Master/texmf-dist/doc/support/latexindent/sec-the-m-switch.tex
===================================================================
--- trunk/Master/texmf-dist/doc/support/latexindent/sec-the-m-switch.tex	2021-08-01 02:06:28 UTC (rev 60131)
+++ trunk/Master/texmf-dist/doc/support/latexindent/sec-the-m-switch.tex	2021-08-01 20:35:09 UTC (rev 60132)
@@ -5,8 +5,8 @@
 	 \tikz[remember picture,overlay] {
 		 \node at (1,0){\includegraphics{logo}};
 	 }}
- All features described in this section will only be relevant if the
- \texttt{-m} switch is used.
+ All features described in this section will only be relevant if the \texttt{-m} switch is
+ used.
 
  \startcontents[the-m-switch]
  \printcontents[the-m-switch]{}{0}{}
@@ -17,16 +17,17 @@
 	\end{wrapfigure}
 	\makebox[0pt][r]{%
 		\raisebox{-\totalheight}[0pt][0pt]{%
-			\tikz\node[opacity=1] at (0,0) {\includegraphics[width=4cm]{logo}};}}%	
-	As of Version 3.0, \texttt{latexindent.pl} has the \texttt{-m}
-	switch, which permits \texttt{latexindent.pl} to modify line breaks, according to the
-	specifications in the \texttt{modifyLineBreaks} field. \emph{The settings
-		in this field will only be considered if the \texttt{-m} switch has been used}. A
-	snippet of the default settings of this field is shown in \cref{lst:modifylinebreaks}.
+			\tikz\node[opacity=1] at (0,0)
+			{\includegraphics[width=4cm]{logo}};}}%	
+	As of Version 3.0, \texttt{latexindent.pl} has the \texttt{-m} switch, which permits
+	\texttt{latexindent.pl} to modify line breaks, according to the specifications in the
+	\texttt{modifyLineBreaks} field. \emph{The settings in this field will only be considered
+		if the \texttt{-m} switch has been used}. A snippet of the default settings of this field
+	is shown in \cref{lst:modifylinebreaks}.
 
 	Having read the previous paragraph, it should sound reasonable that, if you call
-	\texttt{latexindent.pl} using the \texttt{-m} switch, then you give
-	it permission to modify line breaks in your file, but let's be clear:
+	\texttt{latexindent.pl} using the \texttt{-m} switch, then you give it permission to
+	modify line breaks in your file, but let's be clear:
 	\index{warning!the m switch}
 
 	\begin{warning}
@@ -37,1922 +38,26 @@
 	\end{warning}
 
 \yamltitle{preserveBlankLines}{0|1}
-	This field is directly related to \emph{poly-switches}, discussed below. By
-	default, it is set to \texttt{1}, which means that blank lines will be
-	protected from removal; however, regardless of this setting, multiple blank lines can be
-	condensed if \texttt{condenseMultipleBlankLinesInto} is greater than \texttt{0},
-	discussed next.
+	This field is directly related to \emph{poly-switches}, discussed in
+	\cref{sec:poly-switches}. By default, it is set to \texttt{1}, which means that blank
+	lines will be \emph{protected} from removal; however, regardless of this setting,
+	multiple blank lines can be condensed if \texttt{condenseMultipleBlankLinesInto} is
+	greater than \texttt{0}, discussed next.
 
 \yamltitle{condenseMultipleBlankLinesInto}*{positive integer}
-	Assuming that this switch takes an integer value greater than
-	\texttt{0}, \texttt{latexindent.pl} will condense multiple blank
-	lines into the number of blank lines illustrated by this switch. As an example,
-	\cref{lst:mlb-bl} shows a sample file with blank lines; upon running
+	Assuming that this switch takes an integer value greater than \texttt{0},
+	\texttt{latexindent.pl} will condense multiple blank lines into the number of blank lines
+	illustrated by this switch. As an example, \cref{lst:mlb-bl} shows a sample file with
+	blank lines; upon running
 	\index{switches!-m demonstration}
 	\begin{commandshell}
-latexindent.pl myfile.tex -m  
+latexindent.pl myfile.tex -m -o=+-mod1 
 \end{commandshell}
-	the output is shown in \cref{lst:mlb-bl-out}; note that the multiple blank lines
-	have been condensed into one blank line, and note also that we have used the
-	\texttt{-m} switch!
+	the output is shown in \cref{lst:mlb-bl-out}; note that the multiple blank lines have
+	been condensed into one blank line, and note also that we have used the \texttt{-m}
+	switch!
 
-	\begin{minipage}{.45\textwidth}
+	\begin{cmhtcbraster}
 		\cmhlistingsfromfile{demonstrations/mlb1.tex}{\texttt{mlb1.tex}}{lst:mlb-bl}
-	\end{minipage}%
-	\hfill
-	\begin{minipage}{.45\textwidth}
-		\cmhlistingsfromfile{demonstrations/mlb1-out.tex}{\texttt{mlb1.tex} out output}{lst:mlb-bl-out}
-	\end{minipage}
-
-\subsection{textWrapOptions: modifying line breaks by text wrapping}\label{subsec:textwrapping}
-	When the \texttt{-m} switch is active \texttt{latexindent.pl} has the
-	ability to wrap text using the options%
-	\announce{2017-05-27}{textWrapOptions} specified in the \texttt{textWrapOptions} field, see
-	\cref{lst:textWrapOptions}. The value of \texttt{columns} specifies the
-	column at which the text should be wrapped. By default, the value of
-	\texttt{columns} is \texttt{0}, so
-	\texttt{latexindent.pl} will \emph{not} wrap text; if you change it
-	to a value of \texttt{2} or more, then text will be wrapped after the
-	character in the specified column.
-	\index{modifying linebreaks! by text wrapping, globally}
-
-	\cmhlistingsfromfile[style=textWrapOptions]*{../defaultSettings.yaml}[MLB-TCB,width=.85\linewidth,before=\centering]{\texttt{textWrapOptions}}{lst:textWrapOptions}
-
-	For example, consider the file give in \cref{lst:textwrap1}.
-
-	\begin{widepage}
-		\cmhlistingsfromfile{demonstrations/textwrap1.tex}{\texttt{textwrap1.tex}}{lst:textwrap1}
-	\end{widepage}
-
-	Using the file \texttt{textwrap1.yaml} in \cref{lst:textwrap1-yaml}, and running
-	the command
-	\index{switches!-l demonstration}
-	\index{switches!-m demonstration}
-	\index{switches!-o demonstration}
-	\begin{commandshell}
-latexindent.pl -m textwrap1.tex -o textwrap1-mod1.tex -l textwrap1.yaml
-\end{commandshell}
-	we obtain the output in \cref{lst:textwrap1-mod1}.
-
-	\begin{cmhtcbraster}[raster column skip=.1\linewidth]
-		\cmhlistingsfromfile{demonstrations/textwrap1-mod1.tex}{\texttt{textwrap1-mod1.tex}}{lst:textwrap1-mod1}
-		\cmhlistingsfromfile{demonstrations/textwrap1.yaml}[MLB-TCB]{\texttt{textwrap1.yaml}}{lst:textwrap1-yaml}
+		\cmhlistingsfromfile{demonstrations/mlb1-out.tex}{\texttt{mlb1-mod1.tex}}{lst:mlb-bl-out}
 	\end{cmhtcbraster}
-
-	The text wrapping routine is performed \emph{after} verbatim environments
-	\index{verbatim!in relation to textWrapOptions} have been stored, so verbatim environments and verbatim
-	commands are exempt from the routine. For example, using the file in
-	\cref{lst:textwrap2},
-	\begin{widepage}
-		\cmhlistingsfromfile{demonstrations/textwrap2.tex}{\texttt{textwrap2.tex}}{lst:textwrap2}
-	\end{widepage}
-	and running the following command and continuing to use \texttt{textwrap1.yaml} from
-	\cref{lst:textwrap1-yaml},
-	\index{switches!-l demonstration}
-	\index{switches!-m demonstration}
-	\index{switches!-o demonstration}
-	\begin{commandshell}
-latexindent.pl -m textwrap2.tex -o textwrap2-mod1.tex -l textwrap1.yaml
-\end{commandshell}
-	then the output is as in \cref{lst:textwrap2-mod1}.
-	\begin{widepage}
-		\cmhlistingsfromfile{demonstrations/textwrap2-mod1.tex}{\texttt{textwrap2-mod1.tex}}{lst:textwrap2-mod1}
-	\end{widepage}
-	Furthermore, the text wrapping routine is performed after the trailing comments have been
-	stored, and they are also exempt from text wrapping. For example, using the file in
-	\cref{lst:textwrap3}
-	\begin{widepage}
-		\cmhlistingsfromfile{demonstrations/textwrap3.tex}{\texttt{textwrap3.tex}}{lst:textwrap3}
-	\end{widepage}
-	and running the following command and continuing to use \texttt{textwrap1.yaml} from
-	\cref{lst:textwrap1-yaml},
-	\index{switches!-l demonstration}
-	\index{switches!-m demonstration}
-	\index{switches!-o demonstration}
-	\begin{commandshell}
-latexindent.pl -m textwrap3.tex -o textwrap3-mod1.tex -l textwrap1.yaml
-\end{commandshell}
-	then the output is as in \cref{lst:textwrap3-mod1}.
-
-	\cmhlistingsfromfile{demonstrations/textwrap3-mod1.tex}{\texttt{textwrap3-mod1.tex}}{lst:textwrap3-mod1}
-
-	The%
-	\announce*{2021-07-23}*{huge:overflow is now default} default value of
-	\texttt{huge} is \texttt{overflow}, which means that words will
-	\emph{not} be broken by the text wrapping routine, implemented by the
-	\texttt{Text::Wrap} \cite{textwrap}. There are options to change the
-	\texttt{huge} option for the \texttt{Text::Wrap} module to either
-	\texttt{wrap} or \texttt{die}. Before modifying the value of
-	\texttt{huge}, please bear in mind the following warning:
-	\index{warning!changing huge (textwrap)}
-	\begin{warning}
-		\raggedright
-		Changing the value of \texttt{huge} to anything other than \texttt{overflow} will slow down
-		\texttt{latexindent.pl} significantly when the \texttt{-m} switch is active.
-
-		Furthermore, changing \texttt{huge} means that you may have some words \emph{or commands}(!)
-		split across lines in your .tex file, which may affect your output. I do not recommend
-		changing this field.
-	\end{warning}
-
-	For example, using the settings in \cref{lst:textwrap2A-yaml,lst:textwrap2B-yaml} and running the commands
-	\index{switches!-l demonstration}
-	\index{switches!-m demonstration}
-	\index{switches!-o demonstration}
-	\begin{commandshell}
-latexindent.pl -m textwrap4.tex -o=+-mod2A -l textwrap2A.yaml
-latexindent.pl -m textwrap4.tex -o=+-mod2B -l textwrap2B.yaml
-\end{commandshell}
-	gives the respective output in \cref{lst:textwrap4-mod2A,lst:textwrap4-mod2B}.
-
-	\begin{cmhtcbraster}[raster column skip=.1\linewidth]
-		\cmhlistingsfromfile{demonstrations/textwrap4-mod2A.tex}{\texttt{textwrap4-mod2A.tex}}{lst:textwrap4-mod2A}
-		\cmhlistingsfromfile*{demonstrations/textwrap2A.yaml}[MLB-TCB]{\texttt{textwrap2A.yaml}}{lst:textwrap2A-yaml}
-
-		\cmhlistingsfromfile{demonstrations/textwrap4-mod2B.tex}{\texttt{textwrap4-mod2B.tex}}{lst:textwrap4-mod2B}
-		\cmhlistingsfromfile*{demonstrations/textwrap2B.yaml}[MLB-TCB]{\texttt{textwrap2B.yaml}}{lst:textwrap2B-yaml}
-	\end{cmhtcbraster}
-
-	You can also specify the \texttt{tabstop}
-	field%
-	\announce{2020-11-06}{tabstop option for text wrap module} as an integer
-	value, which is passed to the text wrap module; see \cite{textwrap} for
-	details. Starting with the code in \cref{lst:textwrap-ts} with settings in
-	\cref{lst:tabstop}, and running the command
-	\index{switches!-l demonstration}
-	\index{switches!-m demonstration}
-	\index{switches!-o demonstration}
-	\begin{commandshell}
-latexindent.pl -m textwrap-ts.tex -o=+-mod1 -l tabstop.yaml
-\end{commandshell}
-	gives the code given in \cref{lst:textwrap-ts-mod1}.
-	\begin{cmhtcbraster}[raster columns=3,
-			raster left skip=-3.5cm,
-			raster right skip=-2cm,
-			raster column skip=.03\linewidth]
-		\cmhlistingsfromfile[showtabs=true]*{demonstrations/textwrap-ts.tex}{\texttt{textwrap-ts.tex}}{lst:textwrap-ts}
-		\cmhlistingsfromfile{demonstrations/tabstop.yaml}[MLB-TCB]{\texttt{tabstop.yaml}}{lst:tabstop}
-		\cmhlistingsfromfile[showtabs=true]*{demonstrations/textwrap-ts-mod1.tex}{\texttt{textwrap-ts-mod1.tex}}{lst:textwrap-ts-mod1}
-	\end{cmhtcbraster}
-
-	You can specify \texttt{separator}, \texttt{break} and
-	\texttt{unexpand} options in your settings in analogous ways to those
-	demonstrated in \cref{lst:textwrap2B-yaml,lst:tabstop}, and they will be passed to the
-	\texttt{Text::Wrap} module. I have not found a useful reason to do this; see
-	\cite{textwrap} for more details.
-
-\subsubsection{text wrapping on a per-code-block basis}
-	By default, if the value of \texttt{columns} is greater than 0 and the
-	\texttt{-m} switch is active, then%
-	\announce{2018-08-13}*{updates to textWrapOptions} the text wrapping routine will operate before the code blocks
-	have been searched for. This behaviour is customisable; in particular, you can instead
-	instruct \texttt{latexindent.pl} to apply \texttt{textWrap} on a
-	per-code-block basis. Thanks to \cite{zoehneto} for their help in testing and
-	shaping this feature.
-	\index{modifying linebreaks! by text wrapping, per-code-block}
-
-	The full details of \texttt{textWrapOptions} are shown in \cref{lst:textWrapOptionsAll}.
-	In particular, note the field \texttt{perCodeBlockBasis: 0}.
-	\index{specialBeginEnd!textWrapOptions}
-
-	\cmhlistingsfromfile*[style=textWrapOptionsAll]*{../defaultSettings.yaml}[MLB-TCB,width=.85\linewidth,before=\centering]{\texttt{textWrapOptions}}{lst:textWrapOptionsAll}
-
-	The code blocks detailed in \cref{lst:textWrapOptionsAll} are with direct reference to
-	those detailed in \vref{tab:code-blocks}. The only special case is the
-	\texttt{masterDocument} field; this is designed for `chapter'-type files that may
-	contain paragraphs that are not within any other code-blocks. The same notation is used
-	between this feature and the \texttt{removeParagraphLineBreaks} described in
-	\vref{lst:removeParagraphLineBreaks}; in fact, the two features can even be combined (this is
-	detailed in \vref{subsec:removeparagraphlinebreaks:and:textwrap}).
-
-	Let's explore these switches with reference to the code given in
-	\cref{lst:textwrap5}; the text outside of the environment is considered part of
-	the \texttt{masterDocument}.
-
-	\begin{widepage}
-		\cmhlistingsfromfile{demonstrations/textwrap5.tex}{\texttt{textwrap5.tex}}{lst:textwrap5}
-	\end{widepage}
-
-	With reference to this code block, the settings given in \cref{lst:textwrap3-yaml,lst:textwrap4-yaml,lst:textwrap5-yaml} each
-	give the same output.
-
-	\begin{cmhtcbraster}[raster columns=3,
-			raster left skip=-3.5cm,
-			raster right skip=-2cm,
-			raster column skip=.03\linewidth]
-		\cmhlistingsfromfile{demonstrations/textwrap3.yaml}[MLB-TCB]{\texttt{textwrap3.yaml}}{lst:textwrap3-yaml}
-		\cmhlistingsfromfile{demonstrations/textwrap4.yaml}[MLB-TCB]{\texttt{textwrap4.yaml}}{lst:textwrap4-yaml}
-		\cmhlistingsfromfile{demonstrations/textwrap5.yaml}[MLB-TCB]{\texttt{textwrap5.yaml}}{lst:textwrap5-yaml}
-	\end{cmhtcbraster}
-
-	Let's explore the similarities and differences in the equivalent (with respect to
-	\cref{lst:textwrap5}) syntax specified in \cref{lst:textwrap3-yaml,lst:textwrap4-yaml,lst:textwrap5-yaml}:
-	\begin{itemize}
-		\item in each of \cref{lst:textwrap3-yaml,lst:textwrap4-yaml,lst:textwrap5-yaml} notice that \texttt{columns: 30};
-		\item in each of \cref{lst:textwrap3-yaml,lst:textwrap4-yaml,lst:textwrap5-yaml} notice that \texttt{perCodeBlockBasis: 1};
-		\item in \cref{lst:textwrap3-yaml} we have specified \texttt{all: 1} so that the
-		      text wrapping will operate upon \emph{all} code blocks;
-		\item in \cref{lst:textwrap4-yaml} we have \emph{not} specified
-		      \texttt{all}, and instead, have specified that text wrapping should be
-		      applied to each of \texttt{environments} and \texttt{masterDocument};
-		\item in \cref{lst:textwrap5-yaml} we have specified text wrapping for
-		      \texttt{masterDocument} and on a \emph{per-name} basis for
-		      \texttt{environments} code blocks.
-	\end{itemize}
-
-	Upon running the following commands
-	\index{switches!-l demonstration}
-	\index{switches!-m demonstration}
-	\begin{commandshell}
-latexindent.pl -s textwrap5.tex -l=textwrap3.yaml -m
-latexindent.pl -s textwrap5.tex -l=textwrap4.yaml -m
-latexindent.pl -s textwrap5.tex -l=textwrap5.yaml -m
-\end{commandshell}
-	we obtain the output shown in \cref{lst:textwrap5-mod3}.
-
-	\cmhlistingsfromfile{demonstrations/textwrap5-mod3.tex}{\texttt{textwrap5-mod3.tex}}{lst:textwrap5-mod3}
-
-	We can explore the idea of per-name text wrapping given in \cref{lst:textwrap5-yaml} by
-	using \cref{lst:textwrap6}.
-
-	\begin{widepage}
-		\cmhlistingsfromfile{demonstrations/textwrap6.tex}{\texttt{textwrap6.tex}}{lst:textwrap6}
-	\end{widepage}
-
-	In particular, upon running
-	\index{switches!-l demonstration}
-	\index{switches!-m demonstration}
-	\begin{commandshell}
-latexindent.pl -s textwrap6.tex -l=textwrap5.yaml -m
-\end{commandshell}
-	we obtain the output given in \cref{lst:textwrap6-mod5}.
-
-	\begin{widepage}
-		\cmhlistingsfromfile{demonstrations/textwrap6-mod5.tex}{\texttt{textwrap6.tex} using \cref{lst:textwrap5-yaml}}{lst:textwrap6-mod5}
-	\end{widepage}
-
-	Notice that, because \texttt{environments} has been specified only for
-	\texttt{myenv} (in \cref{lst:textwrap5-yaml}) that the environment named \texttt{another} has
-	\emph{not} had text wrapping applied to it.
-
-	The {all} field can be specified with exceptions which can either
-	be done on a per-code-block or per-name basis; we explore this in relation to
-	\cref{lst:textwrap6} in the settings given in \crefrange{lst:textwrap6-yaml}{lst:textwrap8-yaml}.
-
-	\begin{adjustwidth}{-3.5cm}{-2.5cm}
-		\begin{minipage}{.33\linewidth}
-			\cmhlistingsfromfile{demonstrations/textwrap6.yaml}[MLB-TCB]{\texttt{textwrap6.yaml}}{lst:textwrap6-yaml}
-		\end{minipage}%
-		\begin{minipage}{.33\linewidth}
-			\cmhlistingsfromfile{demonstrations/textwrap7.yaml}[MLB-TCB]{\texttt{textwrap7.yaml}}{lst:textwrap7-yaml}
-		\end{minipage}%
-		\begin{minipage}{.33\linewidth}
-			\cmhlistingsfromfile{demonstrations/textwrap8.yaml}[MLB-TCB]{\texttt{textwrap8.yaml}}{lst:textwrap8-yaml}
-		\end{minipage}
-	\end{adjustwidth}
-
-	Upon running the commands
-	\index{switches!-l demonstration}
-	\index{switches!-m demonstration}
-	\begin{commandshell}
-latexindent.pl -s textwrap6.tex -l=textwrap6.yaml -m
-latexindent.pl -s textwrap6.tex -l=textwrap7.yaml -m
-latexindent.pl -s textwrap6.tex -l=textwrap8.yaml -m
-\end{commandshell}
-	we receive the respective output given in \crefrange{lst:textwrap6-mod6}{lst:textwrap6-mod8}.
-	\begin{widepage}
-		\cmhlistingsfromfile{demonstrations/textwrap6-mod6.tex}{\texttt{textwrap6.tex} using \cref{lst:textwrap6-yaml}}{lst:textwrap6-mod6}
-
-		\cmhlistingsfromfile{demonstrations/textwrap6-mod7.tex}{\texttt{textwrap6.tex} using \cref{lst:textwrap7-yaml}}{lst:textwrap6-mod7}
-
-		\cmhlistingsfromfile{demonstrations/textwrap6-mod8.tex}{\texttt{textwrap6.tex} using \cref{lst:textwrap8-yaml}}{lst:textwrap6-mod8}
-	\end{widepage}
-
-	Notice that:
-	\begin{itemize}
-		\item in \cref{lst:textwrap6-mod6} the text wrapping routine has not been applied to any
-		      \texttt{environments} because it has been switched off (per-code-block) in
-		      \cref{lst:textwrap6-yaml};
-		\item in \cref{lst:textwrap6-mod7} the text wrapping routine has not been applied to
-		      \texttt{myenv} because it has been switched off (per-name) in
-		      \cref{lst:textwrap7-yaml};
-		\item in \cref{lst:textwrap6-mod8} the text wrapping routine has not been applied to
-		      \texttt{masterDocument} because of the settings in \cref{lst:textwrap8-yaml}.
-	\end{itemize}
-
-	The \texttt{columns} field has a variety of different ways that it can be
-	specified; we've seen two basic ways already: the default (set to
-	\texttt{0}) and a positive integer (see \vref{lst:textwrap6}, for
-	example). We explore further options in \crefrange{lst:textwrap9-yaml}{lst:textwrap11-yaml}.
-
-	\begin{cmhtcbraster}[raster columns=3,
-			raster left skip=-3.5cm,
-			raster right skip=-2cm,
-			raster column skip=.03\linewidth]
-		\cmhlistingsfromfile{demonstrations/textwrap9.yaml}[MLB-TCB]{\texttt{textwrap9.yaml}}{lst:textwrap9-yaml}
-		\cmhlistingsfromfile{demonstrations/textwrap10.yaml}[MLB-TCB]{\texttt{textwrap10.yaml}}{lst:textwrap10-yaml}
-		\cmhlistingsfromfile{demonstrations/textwrap11.yaml}[MLB-TCB]{\texttt{textwrap11.yaml}}{lst:textwrap11-yaml}
-	\end{cmhtcbraster}
-
-	\Cref{lst:textwrap9-yaml} and \cref{lst:textwrap10-yaml} are equivalent. Upon running
-	the commands
-	\index{switches!-l demonstration}
-	\index{switches!-m demonstration}
-	\begin{commandshell}
-latexindent.pl -s textwrap6.tex -l=textwrap9.yaml -m
-latexindent.pl -s textwrap6.tex -l=textwrap11.yaml -m
-\end{commandshell}
-	we receive the respective output given in \cref{lst:textwrap6-mod9,lst:textwrap6-mod11}.
-
-	\begin{widepage}
-		\cmhlistingsfromfile{demonstrations/textwrap6-mod9.tex}{\texttt{textwrap6.tex} using \cref{lst:textwrap9-yaml}}{lst:textwrap6-mod9}
-
-		\cmhlistingsfromfile*{demonstrations/textwrap6-mod11.tex}{\texttt{textwrap6.tex} using \cref{lst:textwrap11-yaml}}{lst:textwrap6-mod11}
-	\end{widepage}
-
-	Notice that:
-	\begin{itemize}
-		\item in \cref{lst:textwrap6-mod9} the text for the \texttt{masterDocument} has been
-		      wrapped using \texttt{30} columns, while \texttt{environments} has
-		      been wrapped using \texttt{50} columns;
-		\item in \cref{lst:textwrap6-mod11} the text for \texttt{myenv} has been wrapped
-		      using \texttt{50} columns, the text for \texttt{another} has
-		      been wrapped using \texttt{15} columns, and \texttt{masterDocument}
-		      has been wrapped using \texttt{30} columns.
-	\end{itemize}
-	If you don't specify a \texttt{default} value on per-code-block basis, then
-	the \texttt{default} value from \texttt{columns} will be inherited;
-	if you don't specify a default value for \texttt{columns} then
-	\texttt{80} will be used.
-
-	\texttt{alignAtAmpersandTakesPriority} is set to \texttt{1} by default; assuming
-	that text wrapping is occurring on a per-code-block basis, and the current
-	environment/code block is specified within \vref{lst:aligndelims:basic} then text wrapping
-	will be disabled for this code block.
-
-	If you wish to specify \texttt{afterHeading} commands (see
-	\vref{lst:indentAfterHeadings}) on a per-name basis, then you need to append the name with
-	\texttt{:heading}, for example, you might use \texttt{section:heading}.
-
-\subsubsection{Summary of text wrapping}
-	It is important to note the following:
-	\index{verbatim!within summary of text wrapping}
-	\begin{itemize}
-		\item Verbatim environments (\vref{lst:verbatimEnvironments}) and verbatim commands
-		      (\vref{lst:verbatimCommands}) will \emph{not} be affected by the text
-		      wrapping routine (see \vref{lst:textwrap2-mod1});
-		\item comments will \emph{not} be affected by the text wrapping routine (see
-		      \vref{lst:textwrap3-mod1});
-		\item it is possible to wrap text on a per-code-block and a per-name basis;
-		      \announce{2018-08-13}*{updates to textWrapOptions}
-		\item the text wrapping routine sets \texttt{preserveBlankLines} as
-		      \texttt{1};
-		\item indentation is performed \emph{after} the text wrapping routine; as such,
-		      indented code will likely exceed any maximum value set in the \texttt{columns}
-		      field.
-	\end{itemize}
-
-\subsection{oneSentencePerLine: modifying line breaks for sentences}\label{sec:onesentenceperline}
-	You can instruct \texttt{latexindent.pl} to
-	format%
-	\announce{2018-01-13}{one sentence per line} your file so that
-	it puts one sentence per line. Thank you to \cite{mlep} for helping to
-	shape and test this feature. The behaviour of this part of the script is controlled by
-	the switches detailed in \cref{lst:oneSentencePerLine}, all of which we discuss next.
-	\index{modifying linebreaks! by using one sentence per line}
-	\index{sentences!oneSentencePerLine}
-	\index{sentences!one sentence per line}
-	\index{regular expressions!lowercase alph a-z}
-	\index{regular expressions!uppercase alph A-Z}
-
-	\cmhlistingsfromfile[style=oneSentencePerLine]*{../defaultSettings.yaml}[MLB-TCB,width=.85\linewidth,before=\centering]{\texttt{oneSentencePerLine}}{lst:oneSentencePerLine}
-
-\yamltitle{manipulateSentences}{0|1}
-	This is a binary switch that details if \texttt{latexindent.pl} should perform the
-	sentence manipulation routine; it is \emph{off} (set to \texttt{0}) by default, and you will
-	need to turn it on (by setting it to \texttt{1}) if you want the script
-	to modify line breaks surrounding and within sentences.
-
-\yamltitle{removeSentenceLineBreaks}{0|1}
-	When operating upon sentences \texttt{latexindent.pl} will, by default, remove
-	internal line breaks as \texttt{removeSentenceLineBreaks} is set to
-	\texttt{1}. Setting this switch to \texttt{0} instructs
-	\texttt{latexindent.pl} not to do so.
-	\index{sentences!removing sentence line breaks}
-
-	For example, consider \texttt{multiple-sentences.tex} shown in \cref{lst:multiple-sentences}.
-
-	\cmhlistingsfromfile{demonstrations/multiple-sentences.tex}{\texttt{multiple-sentences.tex}}{lst:multiple-sentences}
-
-	If we use the YAML files in \cref{lst:manipulate-sentences-yaml,lst:keep-sen-line-breaks-yaml}, and run the commands
-	\index{switches!-l demonstration}
-	\index{switches!-m demonstration}
-	\begin{widepage}
-		\begin{commandshell}
-latexindent.pl multiple-sentences -m -l=manipulate-sentences.yaml
-latexindent.pl multiple-sentences -m -l=keep-sen-line-breaks.yaml
-\end{commandshell}
-	\end{widepage}
-	then we obtain the respective output given in \cref{lst:multiple-sentences-mod1,lst:multiple-sentences-mod2}.
-
-	\begin{cmhtcbraster}
-		\cmhlistingsfromfile{demonstrations/multiple-sentences-mod1.tex}{\texttt{multiple-sentences.tex} using \cref{lst:manipulate-sentences-yaml}}{lst:multiple-sentences-mod1}
-		\cmhlistingsfromfile[style=yaml-LST]*{demonstrations/manipulate-sentences.yaml}[MLB-TCB]{\texttt{manipulate-sentences.yaml}}{lst:manipulate-sentences-yaml}
-	\end{cmhtcbraster}
-
-	\begin{cmhtcbraster}
-		\cmhlistingsfromfile{demonstrations/multiple-sentences-mod2.tex}{\texttt{multiple-sentences.tex} using \cref{lst:keep-sen-line-breaks-yaml}}{lst:multiple-sentences-mod2}
-		\cmhlistingsfromfile[style=yaml-LST]*{demonstrations/keep-sen-line-breaks.yaml}[MLB-TCB]{\texttt{keep-sen-line-breaks.yaml}}{lst:keep-sen-line-breaks-yaml}
-	\end{cmhtcbraster}
-
-	Notice, in particular, that the `internal' sentence line breaks in
-	\cref{lst:multiple-sentences} have been removed in \cref{lst:multiple-sentences-mod1}, but have
-	not been removed in \cref{lst:multiple-sentences-mod2}.
-
-	The remainder of the settings displayed in \vref{lst:oneSentencePerLine} instruct
-	\texttt{latexindent.pl} on how to define a sentence. From the perspective of
-	\texttt{latexindent.pl} a sentence must:
-	\index{sentences!follow}
-	\index{sentences!begin with}
-	\index{sentences!end with}
-	\begin{itemize}
-		\item \emph{follow} a certain character or set of characters (see
-		      \cref{lst:sentencesFollow}); by default, this is either \lstinline!\par!, a
-		      blank line, a full stop/period (.), exclamation mark (!), question mark (?) right brace
-		      (\}) or a comment on the previous line;
-		\item \emph{begin} with a character type (see \cref{lst:sentencesBeginWith}); by
-		      default, this is only capital letters;
-		\item \emph{end} with a character (see \cref{lst:sentencesEndWith}); by
-		      default, these are full stop/period (.), exclamation mark (!) and question mark (?).
-	\end{itemize}
-	In each case, you can specify the \texttt{other} field to include any
-	pattern that you would like; you can specify anything in this field using the language of
-	regular expressions.
-	\index{regular expressions!lowercase alph a-z}
-	\index{regular expressions!uppercase alph A-Z}
-
-	\begin{cmhtcbraster}[raster columns=3,
-			raster left skip=-3.5cm,
-			raster right skip=-2cm,
-			raster column skip=.06\linewidth]
-		\cmhlistingsfromfile[style=sentencesFollow]*{../defaultSettings.yaml}[MLB-TCB,width=.9\linewidth,before=\centering]{\texttt{sentencesFollow}}{lst:sentencesFollow}
-		\cmhlistingsfromfile[style=sentencesBeginWith]*{../defaultSettings.yaml}[MLB-TCB,width=.9\linewidth,before=\centering]{\texttt{sentencesBeginWith}}{lst:sentencesBeginWith}
-		\cmhlistingsfromfile[style=sentencesEndWith]*{../defaultSettings.yaml}[MLB-TCB,width=.9\linewidth,before=\centering]{\texttt{sentencesEndWith}}{lst:sentencesEndWith}
-	\end{cmhtcbraster}
-
-\subsubsection{sentencesFollow}
-	Let's explore a few of the switches in \texttt{sentencesFollow}; let's start with
-	\vref{lst:multiple-sentences}, and use the YAML settings given in
-	\cref{lst:sentences-follow1-yaml}. Using the command
-	\index{sentences!follow}
-	\index{switches!-l demonstration}
-	\index{switches!-m demonstration}
-	\begin{commandshell}
-latexindent.pl multiple-sentences -m -l=sentences-follow1.yaml
-\end{commandshell}
-	we obtain the output given in \cref{lst:multiple-sentences-mod3}.
-
-	\begin{cmhtcbraster}
-		\cmhlistingsfromfile{demonstrations/multiple-sentences-mod3.tex}{\texttt{multiple-sentences.tex} using \cref{lst:sentences-follow1-yaml}}{lst:multiple-sentences-mod3}
-		\cmhlistingsfromfile[style=yaml-LST]*{demonstrations/sentences-follow1.yaml}[MLB-TCB]{\texttt{sentences-follow1.yaml}}{lst:sentences-follow1-yaml}
-	\end{cmhtcbraster}
-
-	Notice that, because \texttt{blankLine} is set to \texttt{0},
-	\texttt{latexindent.pl} will not seek sentences following a blank line, and so the
-	fourth sentence has not been accounted for.
-
-	We can explore the \texttt{other} field in \cref{lst:sentencesFollow} with
-	the \texttt{.tex} file detailed in \cref{lst:multiple-sentences1}.
-
-	\cmhlistingsfromfile{demonstrations/multiple-sentences1.tex}{\texttt{multiple-sentences1.tex}}{lst:multiple-sentences1}
-
-	Upon running the following commands
-	\index{switches!-l demonstration}
-	\index{switches!-m demonstration}
-	\begin{widepage}
-		\begin{commandshell}
-latexindent.pl multiple-sentences1 -m -l=manipulate-sentences.yaml
-latexindent.pl multiple-sentences1 -m -l=manipulate-sentences.yaml,sentences-follow2.yaml
-\end{commandshell}
-	\end{widepage}
-	then we obtain the respective output given in \cref{lst:multiple-sentences1-mod1,lst:multiple-sentences1-mod2}.
-	\cmhlistingsfromfile{demonstrations/multiple-sentences1-mod1.tex}{\texttt{multiple-sentences1.tex} using \vref{lst:manipulate-sentences-yaml}}{lst:multiple-sentences1-mod1}
-
-	\begin{cmhtcbraster}[
-			raster force size=false,
-			raster column 1/.style={add to width=1cm},
-		]
-		\cmhlistingsfromfile{demonstrations/multiple-sentences1-mod2.tex}{\texttt{multiple-sentences1.tex} using \cref{lst:sentences-follow2-yaml}}{lst:multiple-sentences1-mod2}
-		\cmhlistingsfromfile[style=yaml-LST]*{demonstrations/sentences-follow2.yaml}[MLB-TCB,width=.45\textwidth]{\texttt{sentences-follow2.yaml}}{lst:sentences-follow2-yaml}
-	\end{cmhtcbraster}
-
-	Notice that in \cref{lst:multiple-sentences1-mod1} the first sentence after the
-	\texttt{)} has not been accounted for, but that following the inclusion
-	of \cref{lst:sentences-follow2-yaml}, the output given in \cref{lst:multiple-sentences1-mod2}
-	demonstrates that the sentence \emph{has} been accounted for correctly.
-
-\subsubsection{sentencesBeginWith}
-	By default, \texttt{latexindent.pl} will only assume that sentences begin with the
-	upper case letters \texttt{A-Z}; you can instruct the script to define
-	sentences to begin with lower case letters (see \cref{lst:sentencesBeginWith}), and we can
-	use the \texttt{other} field to define sentences to begin with other
-	characters.
-	\index{sentences!begin with}
-
-	\cmhlistingsfromfile{demonstrations/multiple-sentences2.tex}{\texttt{multiple-sentences2.tex}}{lst:multiple-sentences2}
-
-	Upon running the following commands
-	\index{switches!-l demonstration}
-	\index{switches!-m demonstration}
-	\begin{widepage}
-		\begin{commandshell}
-latexindent.pl multiple-sentences2 -m -l=manipulate-sentences.yaml
-latexindent.pl multiple-sentences2 -m -l=manipulate-sentences.yaml,sentences-begin1.yaml
-\end{commandshell}
-	\end{widepage}
-	then we obtain the respective output given in \cref{lst:multiple-sentences2-mod1,lst:multiple-sentences2-mod2}.
-	\cmhlistingsfromfile{demonstrations/multiple-sentences2-mod1.tex}{\texttt{multiple-sentences2.tex} using \vref{lst:manipulate-sentences-yaml}}{lst:multiple-sentences2-mod1}
-	\index{regular expressions!numeric 0-9}
-
-	\begin{cmhtcbraster}[
-			raster force size=false,
-			raster column 1/.style={add to width=1cm},
-		]
-		\cmhlistingsfromfile{demonstrations/multiple-sentences2-mod2.tex}{\texttt{multiple-sentences2.tex} using \cref{lst:sentences-begin1-yaml}}{lst:multiple-sentences2-mod2}
-		\cmhlistingsfromfile[style=yaml-LST]*{demonstrations/sentences-begin1.yaml}[MLB-TCB,width=.45\textwidth]{\texttt{sentences-begin1.yaml}}{lst:sentences-begin1-yaml}
-	\end{cmhtcbraster}
-	Notice that in \cref{lst:multiple-sentences2-mod1}, the first sentence has been accounted for but
-	that the subsequent sentences have not. In \cref{lst:multiple-sentences2-mod2}, all of the
-	sentences have been accounted for, because the \texttt{other} field in
-	\cref{lst:sentences-begin1-yaml} has defined sentences to begin with either
-	\lstinline!$! or any numeric digit, \texttt{0} to
-	\texttt{9}.
-
-\subsubsection{sentencesEndWith}
-	Let's return to \vref{lst:multiple-sentences}; we have already seen the default way in
-	which \texttt{latexindent.pl} will operate on the sentences in this file in
-	\vref{lst:multiple-sentences-mod1}. We can populate the \texttt{other} field with
-	any character that we wish; for example, using the YAML specified in
-	\cref{lst:sentences-end1-yaml} and the command
-	\index{sentences!end with}
-	\index{switches!-l demonstration}
-	\index{switches!-m demonstration}
-	\begin{commandshell}
-latexindent.pl multiple-sentences -m -l=sentences-end1.yaml
-latexindent.pl multiple-sentences -m -l=sentences-end2.yaml
-\end{commandshell}
-	then we obtain the output in \cref{lst:multiple-sentences-mod4}.
-	\index{regular expressions!lowercase alph a-z}
-
-	\begin{cmhtcbraster}
-		\cmhlistingsfromfile{demonstrations/multiple-sentences-mod4.tex}{\texttt{multiple-sentences.tex} using \cref{lst:sentences-end1-yaml}}{lst:multiple-sentences-mod4}
-		\cmhlistingsfromfile[style=yaml-LST]*{demonstrations/sentences-end1.yaml}[MLB-TCB]{\texttt{sentences-end1.yaml}}{lst:sentences-end1-yaml}
-	\end{cmhtcbraster}
-
-	\begin{cmhtcbraster}
-		\cmhlistingsfromfile{demonstrations/multiple-sentences-mod5.tex}{\texttt{multiple-sentences.tex} using \cref{lst:sentences-end2-yaml}}{lst:multiple-sentences-mod5}
-		\cmhlistingsfromfile[style=yaml-LST]*{demonstrations/sentences-end2.yaml}[MLB-TCB]{\texttt{sentences-end2.yaml}}{lst:sentences-end2-yaml}
-	\end{cmhtcbraster}
-
-	There is a subtle difference between the output in \cref{lst:multiple-sentences-mod4,lst:multiple-sentences-mod5}; in
-	particular, in \cref{lst:multiple-sentences-mod4} the word \texttt{sentence} has not
-	been defined as a sentence, because we have not instructed \texttt{latexindent.pl} to
-	begin sentences with lower case letters. We have changed this by using the settings in
-	\cref{lst:sentences-end2-yaml}, and the associated output in \cref{lst:multiple-sentences-mod5}
-	reflects this.
-
-	Referencing \vref{lst:sentencesEndWith}, you'll notice that there is a field called
-	\texttt{basicFullStop}, which is set to \texttt{0}, and that the
-	\texttt{betterFullStop} is set to \texttt{1} by default.
-
-	Let's consider the file shown in \cref{lst:url}.
-
-	\cmhlistingsfromfile{demonstrations/url.tex}{\texttt{url.tex}}{lst:url}
-
-	Upon running the following commands
-	\index{switches!-l demonstration}
-	\index{switches!-m demonstration}
-	\begin{commandshell}
-latexindent.pl url -m -l=manipulate-sentences.yaml
-\end{commandshell}
-	we obtain the output given in \cref{lst:url-mod1}.
-
-	\cmhlistingsfromfile{demonstrations/url-mod1.tex}{\texttt{url.tex} using \vref{lst:manipulate-sentences-yaml}}{lst:url-mod1}
-
-	Notice that the full stop within the url has been interpreted correctly. This is because,
-	within the \texttt{betterFullStop}, full stops at the end of sentences have the
-	following properties:
-	\begin{itemize}
-		\item they are ignored within \texttt{e.g.} and \texttt{i.e.};
-		\item they can not be immediately followed by a lower case or upper case letter;
-		\item they can not be immediately followed by a hyphen, comma, or number.
-	\end{itemize}
-	If you find that the \texttt{betterFullStop} does not work for your purposes, then
-	you can switch it off by setting it to \texttt{0}, and you can
-	experiment with the \texttt{other}
-	field.%
-	\announce{2019-07-13}{fine tuning the betterFullStop} You can also seek
-	to customise the \texttt{betterFullStop} routine by using the
-	\emph{fine tuning}, detailed in \vref{lst:fineTuning}.
-
-	The \texttt{basicFullStop} routine should probably be avoided in most situations, as
-	it does not accommodate the specifications above. For example, using the following
-	command
-	\index{switches!-l demonstration}
-	\index{switches!-m demonstration}
-	\begin{commandshell}
-latexindent.pl url -m -l=alt-full-stop1.yaml
-\end{commandshell}
-	and the YAML in \cref{lst:alt-full-stop1-yaml} gives the output in
-	\cref{lst:url-mod2}.
-
-	\begin{cmhtcbraster}[ raster left skip=-3.5cm,
-			raster right skip=-2cm,
-			raster force size=false,
-			raster column 1/.style={add to width=.1\textwidth},
-			raster column skip=.06\linewidth]
-		\cmhlistingsfromfile{demonstrations/url-mod2.tex}{\texttt{url.tex} using \cref{lst:alt-full-stop1-yaml}}{lst:url-mod2}
-		\cmhlistingsfromfile[style=yaml-LST]*{demonstrations/alt-full-stop1.yaml}[MLB-TCB,width=.5\textwidth]{\texttt{alt-full-stop1.yaml}}{lst:alt-full-stop1-yaml}
-	\end{cmhtcbraster}
-
-	Notice that the full stop within the URL has not been accommodated correctly because of
-	the non-default settings in \cref{lst:alt-full-stop1-yaml}.
-
-\subsubsection{Features of the oneSentencePerLine routine}
-	The sentence manipulation routine takes place \emph{after} verbatim
-	\index{verbatim!in relation to oneSentencePerLine} environments, preamble and trailing comments have been
-	accounted for; this means that any characters within these types of code blocks will not
-	be part of the sentence manipulation routine.
-
-	For example, if we begin with the \texttt{.tex} file in
-	\cref{lst:multiple-sentences3}, and run the command
-	\index{switches!-l demonstration}
-	\index{switches!-m demonstration}
-	\begin{commandshell}
-latexindent.pl multiple-sentences3 -m -l=manipulate-sentences.yaml
-\end{commandshell}
-	then we obtain the output in \cref{lst:multiple-sentences3-mod1}. \cmhlistingsfromfile{demonstrations/multiple-sentences3.tex}{\texttt{multiple-sentences3.tex}}{lst:multiple-sentences3}
-	\cmhlistingsfromfile{demonstrations/multiple-sentences3-mod1.tex}{\texttt{multiple-sentences3.tex} using \vref{lst:manipulate-sentences-yaml}}{lst:multiple-sentences3-mod1}
-
-	Furthermore, if sentences run across environments then, by default, the line breaks
-	internal to the sentence will be removed. For example, if we use the
-	\texttt{.tex} file in \cref{lst:multiple-sentences4} and run the commands
-	\index{switches!-l demonstration}
-	\index{switches!-m demonstration}
-	\begin{commandshell}
-latexindent.pl multiple-sentences4 -m -l=manipulate-sentences.yaml
-latexindent.pl multiple-sentences4 -m -l=keep-sen-line-breaks.yaml
-\end{commandshell}
-	then we obtain the output in \cref{lst:multiple-sentences4-mod1,lst:multiple-sentences4-mod2}. \cmhlistingsfromfile{demonstrations/multiple-sentences4.tex}{\texttt{multiple-sentences4.tex}}{lst:multiple-sentences4}
-	\begin{widepage}
-		\cmhlistingsfromfile{demonstrations/multiple-sentences4-mod1.tex}{\texttt{multiple-sentences4.tex} using \vref{lst:manipulate-sentences-yaml}}{lst:multiple-sentences4-mod1}
-	\end{widepage}
-	\cmhlistingsfromfile{demonstrations/multiple-sentences4-mod2.tex}{\texttt{multiple-sentences4.tex} using \vref{lst:keep-sen-line-breaks-yaml}}{lst:multiple-sentences4-mod2}
-	Once you've read \cref{sec:poly-switches}, you will know that you can accommodate the
-	removal of internal sentence line breaks by using the YAML in \cref{lst:item-rules2-yaml}
-	and the command
-	\index{switches!-l demonstration}
-	\index{switches!-m demonstration}
-	\begin{commandshell}
-latexindent.pl multiple-sentences4 -m -l=item-rules2.yaml
-\end{commandshell}
-	the output of which is shown in \cref{lst:multiple-sentences4-mod3}.
-
-	\begin{cmhtcbraster}
-		\cmhlistingsfromfile{demonstrations/multiple-sentences4-mod3.tex}{\texttt{multiple-sentences4.tex} using \cref{lst:item-rules2-yaml}}{lst:multiple-sentences4-mod3}
-		\cmhlistingsfromfile[style=yaml-LST]*{demonstrations/item-rules2.yaml}[MLB-TCB]{\texttt{item-rules2.yaml}}{lst:item-rules2-yaml}
-	\end{cmhtcbraster}
-
-\subsubsection{text wrapping and indenting sentences}
-	The \texttt{oneSentencePerLine}%
-	\announce{2018-08-13}{oneSentencePerline text wrap and indent} can be instructed to perform
-	text wrapping and indentation upon sentences.
-	\index{sentences!text wrapping}
-	\index{sentences!indenting}
-
-	Let's use the code in \cref{lst:multiple-sentences5}.
-
-	\cmhlistingsfromfile{demonstrations/multiple-sentences5.tex}{\texttt{multiple-sentences5.tex}}{lst:multiple-sentences5}
-
-	Referencing \cref{lst:sentence-wrap1-yaml}, and running the following command
-	\index{switches!-l demonstration}
-	\index{switches!-m demonstration}
-	\begin{commandshell}
-latexindent.pl multiple-sentences5 -m -l=sentence-wrap1.yaml
-\end{commandshell}
-	we receive the output given in \cref{lst:multiple-sentences5-mod1}.
-
-	\begin{cmhtcbraster}[ raster left skip=-3.5cm,
-			raster right skip=-2cm,
-			raster force size=false,
-			raster column 1/.style={add to width=.1\textwidth},
-			raster column skip=.06\linewidth]
-		\cmhlistingsfromfile{demonstrations/multiple-sentences5-mod1.tex}{\texttt{multiple-sentences5.tex} using \cref{lst:sentence-wrap1-yaml}}{lst:multiple-sentences5-mod1}
-		\cmhlistingsfromfile[style=yaml-LST]*{demonstrations/sentence-wrap1.yaml}[MLB-TCB,width=0.5\textwidth]{\texttt{sentence-wrap1.yaml}}{lst:sentence-wrap1-yaml}
-	\end{cmhtcbraster}
-
-	If you wish to specify the \texttt{columns} field on a per-code-block basis
-	for sentences, then you would use \texttt{sentence}; explicitly, starting with
-	\vref{lst:textwrap9-yaml}, for example, you would replace/append
-	\texttt{environments} with, for example, \texttt{sentence: 50}.
-
-	If you specify \texttt{textWrapSentences} as 1, but do \emph{not}
-	specify a value for \texttt{columns} then the text wrapping will
-	\emph{not} operate on sentences, and you will see a warning in
-	\texttt{indent.log}.
-
-	The indentation of sentences requires that sentences are stored as code blocks. This
-	means that you may need to tweak \vref{lst:sentencesEndWith}. Let's explore this in
-	relation to \cref{lst:multiple-sentences6}.
-
-	\cmhlistingsfromfile{demonstrations/multiple-sentences6.tex}{\texttt{multiple-sentences6.tex}}{lst:multiple-sentences6}
-
-	By default, \texttt{latexindent.pl} will find the full-stop within the first
-	\texttt{item}, which means that, upon running the following commands
-	\index{switches!-l demonstration}
-	\index{switches!-m demonstration}
-	\index{switches!-y demonstration}
-	\begin{commandshell}
-latexindent.pl multiple-sentences6 -m -l=sentence-wrap1.yaml 
-latexindent.pl multiple-sentences6 -m -l=sentence-wrap1.yaml -y="modifyLineBreaks:oneSentencePerLine:sentenceIndent:''"
-\end{commandshell}
-	we receive the respective output in \cref{lst:multiple-sentences6-mod1} and
-	\cref{lst:multiple-sentences6-mod2}.
-
-	\cmhlistingsfromfile{demonstrations/multiple-sentences6-mod1.tex}{\texttt{multiple-sentences6-mod1.tex} using \cref{lst:sentence-wrap1-yaml}}{lst:multiple-sentences6-mod1}
-
-	\cmhlistingsfromfile{demonstrations/multiple-sentences6-mod2.tex}{\texttt{multiple-sentences6-mod2.tex} using \cref{lst:sentence-wrap1-yaml} and no sentence indentation}{lst:multiple-sentences6-mod2}
-
-	We note that \cref{lst:multiple-sentences6-mod1} the \texttt{itemize} code block has
-	\emph{not} been indented appropriately. This is because the
-	oneSentencePerLine has been instructed to store sentences (because
-	\cref{lst:sentence-wrap1-yaml}); each sentence is then searched for code blocks.
-
-	We can tweak the settings in \vref{lst:sentencesEndWith} to ensure that full stops are
-	not followed by \texttt{item} commands, and that the end of sentences
-	contains \lstinline!\end{itemize}! as in \cref{lst:itemize-yaml} (if you intend to use this, ensure that you
-	remove the line breaks from the \texttt{other} field).
-	\index{regular expressions!lowercase alph a-z}
-	\index{regular expressions!uppercase alph A-Z}
-	\index{regular expressions!numeric 0-9}
-	\index{regular expressions!horizontal space \textbackslash{h}}
-
-	\cmhlistingsfromfile[style=yaml-LST]*{demonstrations/itemized.yaml}[MLB-TCB]{\texttt{itemize.yaml}}{lst:itemize-yaml}
-
-	Upon running
-	\index{switches!-l demonstration}
-	\index{switches!-m demonstration}
-	\begin{commandshell}
-latexindent.pl multiple-sentences6 -m -l=sentence-wrap1.yaml,itemize.yaml
-\end{commandshell}
-	we receive the output in \cref{lst:multiple-sentences6-mod3}.
-
-	\cmhlistingsfromfile{demonstrations/multiple-sentences6-mod3.tex}{\texttt{multiple-sentences6-mod3.tex} using \cref{lst:sentence-wrap1-yaml} and \cref{lst:itemize-yaml}}{lst:multiple-sentences6-mod3}
-
-	Notice that the sentence has received indentation, and that the
-	\texttt{itemize} code block has been found and indented correctly.
-
-\subsection{removeParagraphLineBreaks: modifying line breaks for paragraphs}\label{subsec:removeparagraphlinebreaks}
-	When the \texttt{-m} switch is active \texttt{latexindent.pl} has the
-	ability to remove line breaks%
-	\announce{2017-05-27}{removeParagraphLineBreaks} from within paragraphs; the behaviour is controlled by the
-	\texttt{removeParagraphLineBreaks} field, detailed in \cref{lst:removeParagraphLineBreaks}. Thank you to
-	\cite{jowens} for shaping and assisting with the testing of this feature.
-\yamltitle{removeParagraphLineBreaks}*{fields}
-	This feature is considered complimentary to the \texttt{oneSentencePerLine} feature
-	described in \vref{sec:onesentenceperline}.
-	\index{specialBeginEnd!removeParagraphLineBreaks}
-
-	\cmhlistingsfromfile[style=removeParagraphLineBreaks]*{../defaultSettings.yaml}[MLB-TCB,width=.85\linewidth,before=\centering]{\texttt{removeParagraphLineBreaks}}{lst:removeParagraphLineBreaks}
-
-	This routine can be turned on \emph{globally} for \emph{every}
-	code block type known to \texttt{latexindent.pl}
-	(see \vref{tab:code-blocks}) by using the
-	\texttt{all} switch; by default, this switch is
-	\emph{off}. Assuming that the \texttt{all} switch is off,
-	then the routine can be controlled on a per-code-block-type basis, and within that, on a
-	per-name basis. We will consider examples of each of these in turn, but before we do,
-	let's specify what \texttt{latexindent.pl} considers as a paragraph:
-	\begin{itemize}
-		\item it must begin on its own line with either an alphabetic or numeric character, and not
-		      with any of the code-block types detailed in \vref{tab:code-blocks};
-		\item it can include line breaks, but finishes when it meets either a blank line, a
-		      \lstinline!\par! command, or any of the user-specified settings in the
-		      \texttt{paragraphsStopAt} field, detailed in \vref{lst:paragraphsStopAt}.
-	\end{itemize}
-
-	Let's start with the \texttt{.tex} file in \cref{lst:shortlines},
-	together with the YAML settings in \cref{lst:remove-para1-yaml}.
-
-	\begin{cmhtcbraster}
-		\cmhlistingsfromfile[showspaces=true]{demonstrations/shortlines.tex}{\texttt{shortlines.tex}}{lst:shortlines}
-		\cmhlistingsfromfile{demonstrations/remove-para1.yaml}[MLB-TCB]{\texttt{remove-para1.yaml}}{lst:remove-para1-yaml}
-	\end{cmhtcbraster}
-
-	Upon running the command
-	\index{switches!-l demonstration}
-	\index{switches!-m demonstration}
-	\index{switches!-o demonstration}
-	\begin{commandshell}
-latexindent.pl -m shortlines.tex -o shortlines1.tex -l remove-para1.yaml
-\end{commandshell}
-	then we obtain the output given in \cref{lst:shortlines1}.
-
-	\cmhlistingsfromfile[showspaces=true]{demonstrations/shortlines1.tex}{\texttt{shortlines1.tex}}{lst:shortlines1}
-
-	Keen readers may notice that some trailing white space must be present in the file in
-	\cref{lst:shortlines} which has crept in to the output in
-	\cref{lst:shortlines1}. This can be fixed using the YAML file in
-	\vref{lst:removeTWS-before} and running, for example,
-	\index{switches!-l demonstration}
-	\index{switches!-m demonstration}
-	\index{switches!-o demonstration}
-	\begin{commandshell}
-latexindent.pl -m shortlines.tex -o shortlines1-tws.tex -l remove-para1.yaml,removeTWS-before.yaml  
-\end{commandshell}
-	in which case the output is as in \cref{lst:shortlines1-tws}; notice that the double
-	spaces present in \cref{lst:shortlines1} have been addressed.
-
-	\cmhlistingsfromfile[showspaces=true]{demonstrations/shortlines1-tws.tex}{\texttt{shortlines1-tws.tex}}{lst:shortlines1-tws}
-
-	Keeping with the settings in \cref{lst:remove-para1-yaml}, we note that the
-	\texttt{all} switch applies to \emph{all} code block
-	types. So, for example, let's consider the files in \cref{lst:shortlines-mand,lst:shortlines-opt}
-
-	\begin{cmhtcbraster}
-		\cmhlistingsfromfile{demonstrations/shortlines-mand.tex}{\texttt{shortlines-mand.tex}}{lst:shortlines-mand}
-		\cmhlistingsfromfile{demonstrations/shortlines-opt.tex}{\texttt{shortlines-opt.tex}}{lst:shortlines-opt}
-	\end{cmhtcbraster}
-
-	Upon running the commands
-	\index{switches!-l demonstration}
-	\index{switches!-m demonstration}
-	\index{switches!-o demonstration}
-	\begin{widepage}
-		\begin{commandshell}
-latexindent.pl -m shortlines-mand.tex -o shortlines-mand1.tex -l remove-para1.yaml
-latexindent.pl -m shortlines-opt.tex -o shortlines-opt1.tex -l remove-para1.yaml
-\end{commandshell}
-	\end{widepage}
-
-	then we obtain the respective output given in \cref{lst:shortlines-mand1,lst:shortlines-opt1}.
-
-	\cmhlistingsfromfile{demonstrations/shortlines-mand1.tex}{\texttt{shortlines-mand1.tex}}{lst:shortlines-mand1}
-	\cmhlistingsfromfile{demonstrations/shortlines-opt1.tex}{\texttt{shortlines-opt1.tex}}{lst:shortlines-opt1}
-
-	Assuming that we turn \emph{off} the \texttt{all} switch
-	(by setting it to \texttt{0}), then we can control the behaviour of
-	\texttt{removeParagraphLineBreaks} either on a per-code-block-type basis, or on a per-name
-	basis.
-
-	For example, let's use the code in \cref{lst:shortlines-envs}, and consider the settings
-	in \cref{lst:remove-para2-yaml,lst:remove-para3-yaml}; note that in \cref{lst:remove-para2-yaml} we specify that
-	\emph{every} environment should receive treatment from the routine, while
-	in \cref{lst:remove-para3-yaml} we specify that \emph{only} the
-	\texttt{one} environment should receive the treatment.
-
-	\begin{minipage}{.45\linewidth}
-		\cmhlistingsfromfile{demonstrations/shortlines-envs.tex}{\texttt{shortlines-envs.tex}}{lst:shortlines-envs}
-	\end{minipage}
-	\hfill
-	\begin{minipage}{.49\linewidth}
-		\cmhlistingsfromfile{demonstrations/remove-para2.yaml}[MLB-TCB]{\texttt{remove-para2.yaml}}{lst:remove-para2-yaml}
-		\cmhlistingsfromfile{demonstrations/remove-para3.yaml}[MLB-TCB]{\texttt{remove-para3.yaml}}{lst:remove-para3-yaml}
-	\end{minipage}
-
-	Upon running the commands
-	\index{switches!-l demonstration}
-	\index{switches!-m demonstration}
-	\index{switches!-o demonstration}
-	\begin{widepage}
-		\begin{commandshell}
-latexindent.pl -m shortlines-envs.tex -o shortlines-envs2.tex -l remove-para2.yaml
-latexindent.pl -m shortlines-envs.tex -o shortlines-envs3.tex -l remove-para3.yaml
-\end{commandshell}
-	\end{widepage}
-	then we obtain the respective output given in \cref{lst:shortlines-envs2,lst:shortlines-envs3}.
-
-	\cmhlistingsfromfile{demonstrations/shortlines-envs2.tex}{\texttt{shortlines-envs2.tex}}{lst:shortlines-envs2}
-	\cmhlistingsfromfile{demonstrations/shortlines-envs3.tex}{\texttt{shortlines-envs3.tex}}{lst:shortlines-envs3}
-
-	The remaining code-block types can be customised in analogous ways, although note that
-	\texttt{commands}, \texttt{keyEqualsValuesBracesBrackets}, \texttt{namedGroupingBracesBrackets},
-	\texttt{UnNamedGroupingBracesBrackets} are controlled by the \texttt{optionalArguments} and the
-	\texttt{mandatoryArguments}.
-
-	The only special case is the \texttt{masterDocument} field; this is designed for
-	`chapter'-type files that may contain paragraphs that are not within any other
-	code-blocks. For example, consider the file in \cref{lst:shortlines-md}, with the YAML
-	settings in \cref{lst:remove-para4-yaml}.
-
-	\begin{cmhtcbraster}
-		\cmhlistingsfromfile{demonstrations/shortlines-md.tex}{\texttt{shortlines-md.tex}}{lst:shortlines-md}
-		\cmhlistingsfromfile{demonstrations/remove-para4.yaml}[MLB-TCB]{\texttt{remove-para4.yaml}}{lst:remove-para4-yaml}
-	\end{cmhtcbraster}
-
-	Upon running the following command
-	\index{switches!-l demonstration}
-	\index{switches!-m demonstration}
-	\index{switches!-o demonstration}
-	\begin{widepage}
-		\begin{commandshell}
-latexindent.pl -m shortlines-md.tex -o shortlines-md4.tex -l remove-para4.yaml
-\end{commandshell}
-	\end{widepage}
-	then we obtain the output in \cref{lst:shortlines-md4}. \cmhlistingsfromfile{demonstrations/shortlines-md4.tex}{\texttt{shortlines-md4.tex}}{lst:shortlines-md4}
-
-	Note%
-	\announce{2018-08-13}*{updates to all in removeParagraphLineBreaks} that the
-	\texttt{all} field can take the same exceptions detailed in
-	\cref{lst:textwrap6-yaml}{lst:textwrap8-yaml}.
-
-\yamltitle{paragraphsStopAt}*{fields}
-	The paragraph line break routine considers blank lines and the
-	\lstinline|\par| command to be the end of a paragraph;
-	\announce{2017-05-27}{paragraphsStopAt} you can fine tune the behaviour of the routine further by
-	using the \texttt{paragraphsStopAt} fields, shown in \cref{lst:paragraphsStopAt}.
-	\index{specialBeginEnd!paragraphsStopAt}
-	\index{verbatim!in relation to paragraphsStopAt}
-
-	\cmhlistingsfromfile[style=paragraphsStopAt]*{../defaultSettings.yaml}[MLB-TCB,width=.85\linewidth,before=\centering]{\texttt{paragraphsStopAt}}{lst:paragraphsStopAt}
-
-	The fields specified in \texttt{paragraphsStopAt} tell \texttt{latexindent.pl} to
-	stop the current paragraph when it reaches a line that \emph{begins} with
-	any of the code-block types specified as \texttt{1} in
-	\cref{lst:paragraphsStopAt}. By default, you'll see that the paragraph line break
-	routine will stop when it reaches an environment or verbatim code block at the beginning
-	of a line. It is \emph{not} possible to specify these fields on a
-	per-name basis.
-
-	Let's use the \texttt{.tex} file in \cref{lst:sl-stop}; we will,
-	in turn, consider the settings in \cref{lst:stop-command-yaml,lst:stop-comment-yaml}.
-
-	\begin{minipage}{.45\linewidth}
-		\cmhlistingsfromfile{demonstrations/sl-stop.tex}{\texttt{sl-stop.tex}}{lst:sl-stop}
-	\end{minipage}
-	\hfill
-	\begin{minipage}{.49\linewidth}
-		\cmhlistingsfromfile{demonstrations/stop-command.yaml}[MLB-TCB]{\texttt{stop-command.yaml}}{lst:stop-command-yaml}
-
-		\cmhlistingsfromfile{demonstrations/stop-comment.yaml}[MLB-TCB]{\texttt{stop-comment.yaml}}{lst:stop-comment-yaml}
-	\end{minipage}
-
-	Upon using the settings from \vref{lst:remove-para4-yaml} and running the commands
-	\index{switches!-l demonstration}
-	\index{switches!-m demonstration}
-	\index{switches!-o demonstration}
-	\begin{widepage}
-		\begin{commandshell}
-latexindent.pl -m sl-stop.tex -o sl-stop4.tex -l remove-para4.yaml
-latexindent.pl -m sl-stop.tex -o sl-stop4-command.tex -l=remove-para4.yaml,stop-command.yaml
-latexindent.pl -m sl-stop.tex -o sl-stop4-comment.tex -l=remove-para4.yaml,stop-comment.yaml
-\end{commandshell}
-	\end{widepage}
-	we obtain the respective outputs in \crefrange{lst:sl-stop4}{lst:sl-stop4-comment}; notice in particular
-	that:
-	\begin{itemize}
-		\item in \cref{lst:sl-stop4} the paragraph line break routine has included commands and
-		      comments;
-		\item in \cref{lst:sl-stop4-command} the paragraph line break routine has
-		      \emph{stopped} at the \texttt{emph} command, because in
-		      \cref{lst:stop-command-yaml} we have specified \texttt{commands} to be
-		      \texttt{1}, and \texttt{emph} is at the beginning of a
-		      line;
-		\item in \cref{lst:sl-stop4-comment} the paragraph line break routine has
-		      \emph{stopped} at the comments, because in \cref{lst:stop-comment-yaml} we
-		      have specified \texttt{comments} to be \texttt{1}, and the
-		      comment is at the beginning of a line.
-	\end{itemize}
-	In all outputs in \crefrange{lst:sl-stop4}{lst:sl-stop4-comment} we notice that the paragraph line break
-	routine has stopped at \lstinline!\begin{myenv}! because, by default,
-	\texttt{environments} is set to \texttt{1} in
-	\vref{lst:paragraphsStopAt}.
-
-	\cmhlistingsfromfile{demonstrations/sl-stop4.tex}{\texttt{sl-stop4.tex}}{lst:sl-stop4}
-	\cmhlistingsfromfile{demonstrations/sl-stop4-command.tex}{\texttt{sl-stop4-command.tex}}{lst:sl-stop4-command}
-	\cmhlistingsfromfile{demonstrations/sl-stop4-comment.tex}{\texttt{sl-stop4-comment.tex}}{lst:sl-stop4-comment}
-
-\subsection{Combining removeParagraphLineBreaks and textWrapOptions}\label{subsec:removeparagraphlinebreaks:and:textwrap}
-
-	The%
-	\announce{2018-08-13}{combine text wrap and remove paragraph line breaks} text wrapping
-	routine (\vref{subsec:textwrapping}) and remove paragraph line breaks routine
-	(\vref{subsec:removeparagraphlinebreaks}) can be combined.
-
-	We motivate this feature with the code given in \cref{lst:textwrap7}.
-
-	\cmhlistingsfromfile{demonstrations/textwrap7.tex}{\texttt{textwrap7.tex}}{lst:textwrap7}
-
-	Applying the text wrap routine from \vref{subsec:textwrapping} with, for example,
-	\vref{lst:textwrap3-yaml} gives the output in \cref{lst:textwrap7-mod3}.
-
-	\cmhlistingsfromfile{demonstrations/textwrap7-mod3.tex}{\texttt{textwrap7.tex} using \cref{lst:textwrap3-yaml}}{lst:textwrap7-mod3}
-
-	The text wrapping routine has behaved as expected, but it may be desired to remove
-	paragraph line breaks \emph{before} performing the text wrapping routine.
-	The desired behaviour can be achieved by employing the \texttt{beforeTextWrap}
-	switch.
-
-	Explicitly, using the settings in \cref{lst:textwrap12-yaml} and running the command
-	\index{switches!-l demonstration}
-	\index{switches!-m demonstration}
-	\index{switches!-o demonstration}
-	\begin{commandshell}
-latexindent.pl -m textwrap7.tex -l=textwrap12.yaml -o=+-mod12
-\end{commandshell}
-	we obtain the output in \cref{lst:textwrap7-mod12}.
-
-	\begin{cmhtcbraster}
-		\cmhlistingsfromfile{demonstrations/textwrap7-mod12.tex}{\texttt{textwrap7-mod12.tex}}{lst:textwrap7-mod12}
-		\cmhlistingsfromfile{demonstrations/textwrap12.yaml}[MLB-TCB]{\texttt{textwrap12.yaml}}{lst:textwrap12-yaml}
-	\end{cmhtcbraster}
-
-	In \cref{lst:textwrap7-mod12} the paragraph line breaks have first been removed from
-	\cref{lst:textwrap7}, and then the text wrapping routine has been applied. It is
-	envisaged that variants of \cref{lst:textwrap12-yaml} will be among the most useful
-	settings for these two features.
-
-\subsection{Poly-switches}\label{sec:poly-switches}
-	Every other field in the \texttt{modifyLineBreaks} field uses poly-switches, and can
-	take one of the following%
-	\announce{2017-08-21}*{blank line poly-switch} integer values:
-	\index{modifying linebreaks! using poly-switches}
-	\index{poly-switches!definition}
-	\index{poly-switches!values}
-	\index{poly-switches!off by default: set to 0}
-	\begin{description}
-		\item[$-1$] \emph{remove mode}: line breaks before or after the
-			\emph{<part of thing>} can be removed (assuming that \texttt{preserveBlankLines} is
-			set to \texttt{0});
-		\item[0] \emph{off mode}: line breaks will not be modified for the
-			\emph{<part of thing>} under consideration;
-		\item[1] \emph{add mode}: a line break will be added before or after the
-			\emph{<part of thing>} under consideration, assuming that
-			there is not already a line break before or after the \emph{<part of thing>};
-		\item[2] \emph{comment then add mode}: a comment symbol will be added, followed by a line break
-			before or after the \emph{<part of thing>} under consideration, assuming that there
-			is not already a comment and line break before or after the \emph{<part of thing>};
-		\item[3] \emph{add then blank line mode}%
-			\announce{2017-08-21}{blank line poly-switch}: a line break will be added before or after the
-			\emph{<part of thing>} under consideration, assuming that
-			there is not already a line break before or after the \emph{<part of thing>},
-			followed by a blank line;
-		\item[4] \emph{add blank line mode}%
-			\announce{2019-07-13}{blank line poly-switch}; a blank line will
-			be added before or after the \emph{<part of thing>} under consideration, even if the
-			\emph{<part of thing>} is already on its own line.
-	\end{description}
-	In the above, \emph{<part of thing>} refers to either the
-	\emph{begin statement}, \emph{body} or
-	\emph{end statement} of the code blocks detailed in \vref{tab:code-blocks}.
-	All poly-switches are \emph{off} by default;
-	\texttt{latexindent.pl} searches first of all for per-name settings, and then
-	followed by global per-thing settings.
-
-\subsection{modifyLineBreaks for environments}\label{sec:modifylinebreaks-environments}
-	We start by viewing a snippet of \texttt{defaultSettings.yaml} in
-	\cref{lst:environments-mlb}; note that it contains \emph{global} settings
-	(immediately after the \texttt{environments} field) and that
-	\emph{per-name} settings are also allowed -- in the case of
-	\cref{lst:environments-mlb}, settings for \texttt{equation*} have been
-	specified for demonstration. Note that all poly-switches are \emph{off} (set to 0)
-	by default.
-	\index{poly-switches!default values}
-	\index{poly-switches!environment global example}
-	\index{poly-switches!environment per-code block example}
-
-	\cmhlistingsfromfile[style=modifylinebreaksEnv]*{../defaultSettings.yaml}[width=.8\linewidth,before=\centering,MLB-TCB]{\texttt{environments}}{lst:environments-mlb}
-
-	Let's begin with the simple example given in \cref{lst:env-mlb1-tex}; note that we
-	have annotated key parts of the file using $\BeginStartsOnOwnLine$,
-	$\BodyStartsOnOwnLine$, $\EndStartsOnOwnLine$ and $\EndFinishesWithLineBreak$,
-	these will be related to fields specified in \cref{lst:environments-mlb}.
-	\index{poly-switches!visualisation: $\BeginStartsOnOwnLine$, $\BodyStartsOnOwnLine$, $\EndStartsOnOwnLine$, $\EndFinishesWithLineBreak$}
-
-	\begin{cmhlistings}[style=tcblatex,escapeinside={(*@}{@*)}]{\texttt{env-mlb1.tex}}{lst:env-mlb1-tex}
-before words(*@$\BeginStartsOnOwnLine$@*) \begin{myenv}(*@$\BodyStartsOnOwnLine$@*)body of myenv(*@$\EndStartsOnOwnLine$@*)\end{myenv}(*@$\EndFinishesWithLineBreak$@*) after words
-\end{cmhlistings}
-
-\subsubsection{Adding line breaks: BeginStartsOnOwnLine and BodyStartsOnOwnLine}
-	Let's explore \texttt{BeginStartsOnOwnLine} and \texttt{BodyStartsOnOwnLine} in
-	\cref{lst:env-mlb1,lst:env-mlb2}, and in particular, let's allow each of them in turn to take
-	a value of $1$.
-	\index{modifying linebreaks! at the \emph{beginning} of a code block}
-	\index{poly-switches!adding line breaks: set to 1}
-
-	\begin{minipage}{.45\textwidth}
-		\cmhlistingsfromfile[style=yaml-LST]*{demonstrations/env-mlb1.yaml}[MLB-TCB]{\texttt{env-mlb1.yaml}}{lst:env-mlb1}
-	\end{minipage}
-	\hfill
-	\begin{minipage}{.45\textwidth}
-		\cmhlistingsfromfile[style=yaml-LST]*{demonstrations/env-mlb2.yaml}[MLB-TCB]{\texttt{env-mlb2.yaml}}{lst:env-mlb2}
-	\end{minipage}
-
-	After running the following commands,
-	\index{switches!-l demonstration}
-	\index{switches!-m demonstration}
-	\begin{commandshell}
-latexindent.pl -m env-mlb.tex -l env-mlb1.yaml
-latexindent.pl -m env-mlb.tex -l env-mlb2.yaml
-\end{commandshell}
-	the output is as in \cref{lst:env-mlb-mod1,lst:env-mlb-mod2} respectively.
-
-	\begin{widepage}
-		\begin{minipage}{.56\linewidth}
-			\cmhlistingsfromfile{demonstrations/env-mlb-mod1.tex}{\texttt{env-mlb.tex} using \cref{lst:env-mlb1}}{lst:env-mlb-mod1}
-		\end{minipage}
-		\hfill
-		\begin{minipage}{.43\linewidth}
-			\cmhlistingsfromfile{demonstrations/env-mlb-mod2.tex}{\texttt{env-mlb.tex} using \cref{lst:env-mlb2}}{lst:env-mlb-mod2}
-		\end{minipage}
-	\end{widepage}
-
-	There are a couple of points to note:
-	\begin{itemize}
-		\item in \cref{lst:env-mlb-mod1} a line break has been added at the point denoted by
-		      $\BeginStartsOnOwnLine$ in \cref{lst:env-mlb1-tex}; no other line breaks have been
-		      changed;
-		\item in \cref{lst:env-mlb-mod2} a line break has been added at the point denoted by
-		      $\BodyStartsOnOwnLine$ in \cref{lst:env-mlb1-tex}; furthermore, note that the
-		      \emph{body} of \texttt{myenv} has received the appropriate
-		      (default) indentation.
-	\end{itemize}
-
-	Let's now change each of the \texttt{1} values in
-	\cref{lst:env-mlb1,lst:env-mlb2} so that they are $2$ and save them
-	into \texttt{env-mlb3.yaml} and \texttt{env-mlb4.yaml} respectively (see
-	\cref{lst:env-mlb3,lst:env-mlb4}).
-	\index{poly-switches!adding comments and then line breaks: set to 2}
-
-	\begin{minipage}{.45\textwidth}
-		\cmhlistingsfromfile[style=yaml-LST]*{demonstrations/env-mlb3.yaml}[MLB-TCB]{\texttt{env-mlb3.yaml}}{lst:env-mlb3}
-	\end{minipage}
-	\hfill
-	\begin{minipage}{.45\textwidth}
-		\cmhlistingsfromfile[style=yaml-LST]*{demonstrations/env-mlb4.yaml}[MLB-TCB]{\texttt{env-mlb4.yaml}}{lst:env-mlb4}
-	\end{minipage}
-
-	Upon running commands analogous to the above, we obtain \cref{lst:env-mlb-mod3,lst:env-mlb-mod4}.
-
-	\begin{widepage}
-		\begin{minipage}{.56\linewidth}
-			\cmhlistingsfromfile{demonstrations/env-mlb-mod3.tex}{\texttt{env-mlb.tex} using \cref{lst:env-mlb3}}{lst:env-mlb-mod3}
-		\end{minipage}
-		\hfill
-		\begin{minipage}{.43\linewidth}
-			\cmhlistingsfromfile{demonstrations/env-mlb-mod4.tex}{\texttt{env-mlb.tex} using \cref{lst:env-mlb4}}{lst:env-mlb-mod4}
-		\end{minipage}
-	\end{widepage}
-
-	Note that line breaks have been added as in \cref{lst:env-mlb-mod1,lst:env-mlb-mod2}, but this time a
-	comment symbol has been added before adding the line break; in both cases, trailing
-	horizontal space has been stripped before doing so.
-
-	Let's%
-	\announce{2017-08-21}{demonstration of blank line poly-switch (3)} now change each
-	of the \texttt{1} values in \cref{lst:env-mlb1,lst:env-mlb2} so that they
-	are $3$ and save them into \texttt{env-mlb5.yaml} and
-	\texttt{env-mlb6.yaml} respectively (see \cref{lst:env-mlb5,lst:env-mlb6}).
-	\index{poly-switches!adding blank lines: set to 3}
-
-	\begin{minipage}{.45\textwidth}
-		\cmhlistingsfromfile[style=yaml-LST]*{demonstrations/env-mlb5.yaml}[MLB-TCB]{\texttt{env-mlb5.yaml}}{lst:env-mlb5}
-	\end{minipage}
-	\hfill
-	\begin{minipage}{.45\textwidth}
-		\cmhlistingsfromfile[style=yaml-LST]*{demonstrations/env-mlb6.yaml}[MLB-TCB]{\texttt{env-mlb6.yaml}}{lst:env-mlb6}
-	\end{minipage}
-
-	Upon running commands analogous to the above, we obtain \cref{lst:env-mlb-mod5,lst:env-mlb-mod6}.
-
-	\begin{widepage}
-		\begin{minipage}{.56\linewidth}
-			\cmhlistingsfromfile{demonstrations/env-mlb-mod5.tex}{\texttt{env-mlb.tex} using \cref{lst:env-mlb5}}{lst:env-mlb-mod5}
-		\end{minipage}
-		\hfill
-		\begin{minipage}{.43\linewidth}
-			\cmhlistingsfromfile{demonstrations/env-mlb-mod6.tex}{\texttt{env-mlb.tex} using \cref{lst:env-mlb6}}{lst:env-mlb-mod6}
-		\end{minipage}
-	\end{widepage}
-
-	Note that line breaks have been added as in \cref{lst:env-mlb-mod1,lst:env-mlb-mod2}, but this time a
-	\emph{blank line} has been added after adding the line break.
-
-	Let's now change%
-	\announce{2019-07-13}{demonstration of new blank line poly-switch} each
-	of the \texttt{1} values in \cref{lst:env-mlb5,lst:env-mlb6} so that they
-	are $4$ and save them into \texttt{env-beg4.yaml} and
-	\texttt{env-body4.yaml} respectively (see \cref{lst:env-beg4,lst:env-body4}).
-	\index{poly-switches!adding blank lines (again"!): set to 4}
-
-	\begin{minipage}{.45\textwidth}
-		\cmhlistingsfromfile[style=yaml-LST]*{demonstrations/env-beg4.yaml}[MLB-TCB]{\texttt{env-beg4.yaml}}{lst:env-beg4}
-	\end{minipage}
-	\hfill
-	\begin{minipage}{.45\textwidth}
-		\cmhlistingsfromfile[style=yaml-LST]*{demonstrations/env-body4.yaml}[MLB-TCB]{\texttt{env-body4.yaml}}{lst:env-body4}
-	\end{minipage}
-
-	We will demonstrate this poly-switch value using the code in
-	\cref{lst:env-mlb1-text}.
-
-	\cmhlistingsfromfile{demonstrations/env-mlb1.tex}{\texttt{env-mlb1.tex}}{lst:env-mlb1-text}
-
-	Upon running the commands
-	\index{switches!-l demonstration}
-	\index{switches!-m demonstration}
-	\begin{commandshell}
-latexindent.pl -m env-mlb1.tex -l env-beg4.yaml
-latexindent.pl -m env-mlb.1tex -l env-body4.yaml
-\end{commandshell}
-
-	then we receive the respective outputs in \cref{lst:env-mlb1-beg4,lst:env-mlb1-body4}.
-
-	\begin{cmhtcbraster}[raster column skip=.1\linewidth]
-		\cmhlistingsfromfile{demonstrations/env-mlb1-beg4.tex}{\texttt{env-mlb1.tex} using \cref{lst:env-beg4}}{lst:env-mlb1-beg4}
-		\cmhlistingsfromfile{demonstrations/env-mlb1-body4.tex}{\texttt{env-mlb1.tex} using \cref{lst:env-body4}}{lst:env-mlb1-body4}
-	\end{cmhtcbraster}
-
-	We note in particular that, by design, for this value of the poly-switches:
-	\begin{enumerate}
-		\item in \cref{lst:env-mlb1-beg4} a blank line has been inserted before the
-		      \lstinline!\begin! statement, even though the \lstinline!\begin!
-		      statement was already on its own line;
-		\item in \cref{lst:env-mlb1-body4} a blank line has been inserted before the beginning of the
-		      \emph{body}, even though it already began on its own line.
-	\end{enumerate}
-
-\subsubsection{Adding line breaks using EndStartsOnOwnLine and EndFinishesWithLineBreak}
-	Let's explore \texttt{EndStartsOnOwnLine} and \texttt{EndFinishesWithLineBreak} in
-	\cref{lst:env-mlb7,lst:env-mlb8}, and in particular, let's allow each of them in turn to take
-	a value of $1$.
-	\index{modifying linebreaks! at the \emph{end} of a code block}
-	\index{poly-switches!adding line breaks: set to 1}
-
-	\begin{minipage}{.49\textwidth}
-		\cmhlistingsfromfile[style=yaml-LST]*{demonstrations/env-mlb7.yaml}[MLB-TCB]{\texttt{env-mlb7.yaml}}{lst:env-mlb7}
-	\end{minipage}
-	\hfill
-	\begin{minipage}{.49\textwidth}
-		\cmhlistingsfromfile[style=yaml-LST]*{demonstrations/env-mlb8.yaml}[MLB-TCB]{\texttt{env-mlb8.yaml}}{lst:env-mlb8}
-	\end{minipage}
-
-	After running the following commands,
-	\index{switches!-l demonstration}
-	\index{switches!-m demonstration}
-	\begin{commandshell}
-latexindent.pl -m env-mlb.tex -l env-mlb7.yaml
-latexindent.pl -m env-mlb.tex -l env-mlb8.yaml
-\end{commandshell}
-	the output is as in \cref{lst:env-mlb-mod7,lst:env-mlb-mod8}.
-
-	\begin{widepage}
-		\begin{minipage}{.42\linewidth}
-			\cmhlistingsfromfile{demonstrations/env-mlb-mod7.tex}{\texttt{env-mlb.tex} using \cref{lst:env-mlb7}}{lst:env-mlb-mod7}
-		\end{minipage}
-		\hfill
-		\begin{minipage}{.57\linewidth}
-			\cmhlistingsfromfile{demonstrations/env-mlb-mod8.tex}{\texttt{env-mlb.tex} using \cref{lst:env-mlb8}}{lst:env-mlb-mod8}
-		\end{minipage}
-	\end{widepage}
-
-	There are a couple of points to note:
-	\begin{itemize}
-		\item in \cref{lst:env-mlb-mod7} a line break has been added at the point denoted by
-		      $\EndStartsOnOwnLine$ in \vref{lst:env-mlb1-tex}; no other line breaks have been
-		      changed and the \lstinline!\end{myenv}! statement has \emph{not}
-		      received indentation (as intended);
-		\item in \cref{lst:env-mlb-mod8} a line break has been added at the point denoted by
-		      $\EndFinishesWithLineBreak$ in \vref{lst:env-mlb1-tex}.
-	\end{itemize}
-
-	Let's now change each of the \texttt{1} values in
-	\cref{lst:env-mlb7,lst:env-mlb8} so that they are $2$ and save them
-	into \texttt{env-mlb9.yaml} and \texttt{env-mlb10.yaml} respectively (see
-	\cref{lst:env-mlb9,lst:env-mlb10}).
-	\index{poly-switches!adding comments and then line breaks: set to 2}
-
-	\begin{minipage}{.49\textwidth}
-		\cmhlistingsfromfile[style=yaml-LST]*{demonstrations/env-mlb9.yaml}[MLB-TCB]{\texttt{env-mlb9.yaml}}{lst:env-mlb9}
-	\end{minipage}
-	\hfill
-	\begin{minipage}{.49\textwidth}
-		\cmhlistingsfromfile[style=yaml-LST]*{demonstrations/env-mlb10.yaml}[MLB-TCB]{\texttt{env-mlb10.yaml}}{lst:env-mlb10}
-	\end{minipage}
-
-	Upon running commands analogous to the above, we obtain \cref{lst:env-mlb-mod9,lst:env-mlb-mod10}.
-
-	\begin{widepage}
-		\begin{minipage}{.43\linewidth}
-			\cmhlistingsfromfile{demonstrations/env-mlb-mod9.tex}{\texttt{env-mlb.tex} using \cref{lst:env-mlb9}}{lst:env-mlb-mod9}
-		\end{minipage}
-		\hfill
-		\begin{minipage}{.56\linewidth}
-			\cmhlistingsfromfile{demonstrations/env-mlb-mod10.tex}{\texttt{env-mlb.tex} using \cref{lst:env-mlb10}}{lst:env-mlb-mod10}
-		\end{minipage}
-	\end{widepage}
-
-	Note that line breaks have been added as in \cref{lst:env-mlb-mod7,lst:env-mlb-mod8}, but this time a
-	comment symbol has been added before adding the line break; in both cases, trailing
-	horizontal space has been stripped before doing so.
-
-	Let's%
-	\announce{2017-08-21}{demonstration of blank line poly-switch (3)} now change each
-	of the \texttt{1} values in \cref{lst:env-mlb7,lst:env-mlb8} so that they
-	are $3$ and save them into \texttt{env-mlb11.yaml} and
-	\texttt{env-mlb12.yaml} respectively (see \cref{lst:env-mlb11,lst:env-mlb12}).
-	\index{poly-switches!adding blank lines: set to 3}
-
-	\begin{minipage}{.49\textwidth}
-		\cmhlistingsfromfile[style=yaml-LST]*{demonstrations/env-mlb11.yaml}[MLB-TCB]{\texttt{env-mlb11.yaml}}{lst:env-mlb11}
-	\end{minipage}
-	\hfill
-	\begin{minipage}{.49\textwidth}
-		\cmhlistingsfromfile[style=yaml-LST]*{demonstrations/env-mlb12.yaml}[MLB-TCB]{\texttt{env-mlb12.yaml}}{lst:env-mlb12}
-	\end{minipage}
-
-	Upon running commands analogous to the above, we obtain \cref{lst:env-mlb-mod11,lst:env-mlb-mod12}.
-
-	\begin{widepage}
-		\begin{minipage}{.42\linewidth}
-			\cmhlistingsfromfile{demonstrations/env-mlb-mod11.tex}{\texttt{env-mlb.tex} using \cref{lst:env-mlb11}}{lst:env-mlb-mod11}
-		\end{minipage}
-		\hfill
-		\begin{minipage}{.57\linewidth}
-			\cmhlistingsfromfile{demonstrations/env-mlb-mod12.tex}{\texttt{env-mlb.tex} using \cref{lst:env-mlb12}}{lst:env-mlb-mod12}
-		\end{minipage}
-	\end{widepage}
-
-	Note that line breaks have been added as in \cref{lst:env-mlb-mod7,lst:env-mlb-mod8}, and that a
-	\emph{blank line} has been added after the line break.
-
-	Let's now change%
-	\announce{2019-07-13}{demonstration of new blank line poly-switch} each
-	of the \texttt{1} values in \cref{lst:env-mlb11,lst:env-mlb12} so that they
-	are $4$ and save them into \texttt{env-end4.yaml} and
-	\texttt{env-end-f4.yaml} respectively (see \cref{lst:env-end4,lst:env-end-f4}).
-	\index{poly-switches!adding blank lines (again"!): set to 4}
-
-	\begin{minipage}{.45\textwidth}
-		\cmhlistingsfromfile[style=yaml-LST]*{demonstrations/env-end4.yaml}[MLB-TCB]{\texttt{env-end4.yaml}}{lst:env-end4}
-	\end{minipage}
-	\hfill
-	\begin{minipage}{.5\textwidth}
-		\cmhlistingsfromfile[style=yaml-LST]*{demonstrations/env-end-f4.yaml}[MLB-TCB]{\texttt{env-end-f4.yaml}}{lst:env-end-f4}
-	\end{minipage}
-
-	We will demonstrate this poly-switch value using the code from
-	\vref{lst:env-mlb1-text}.
-
-	Upon running the commands
-	\index{switches!-l demonstration}
-	\index{switches!-m demonstration}
-	\begin{commandshell}
-latexindent.pl -m env-mlb1.tex -l env-end4.yaml
-latexindent.pl -m env-mlb.1tex -l env-end-f4.yaml
-\end{commandshell}
-
-	then we receive the respective outputs in \cref{lst:env-mlb1-end4,lst:env-mlb1-end-f4}.
-
-	\begin{cmhtcbraster}[raster column skip=.1\linewidth]
-		\cmhlistingsfromfile{demonstrations/env-mlb1-end4.tex}{\texttt{env-mlb1.tex} using \cref{lst:env-end4}}{lst:env-mlb1-end4}
-		\cmhlistingsfromfile{demonstrations/env-mlb1-end-f4.tex}{\texttt{env-mlb1.tex} using \cref{lst:env-end-f4}}{lst:env-mlb1-end-f4}
-	\end{cmhtcbraster}
-
-	We note in particular that, by design, for this value of the poly-switches:
-	\begin{enumerate}
-		\item in \cref{lst:env-mlb1-end4} a blank line has been inserted before the
-		      \lstinline!\end! statement, even though the \lstinline!\end!
-		      statement was already on its own line;
-		\item in \cref{lst:env-mlb1-end-f4} a blank line has been inserted after the
-		      \lstinline!\end! statement, even though it already began on its own line.
-	\end{enumerate}
-
-\subsubsection{poly-switches 1, 2, and 3 only add line breaks when necessary}
-	If you ask \texttt{latexindent.pl} to add a line break (possibly with a comment)
-	using a poly-switch value of $1$ (or $2$
-	or $3$), it will only do so if necessary. For example, if you
-	process the file in \vref{lst:mlb2} using poly-switch values of 1, 2, or 3,
-	it will be left unchanged.
-
-	\begin{minipage}{.45\linewidth}
-		\cmhlistingsfromfile{demonstrations/env-mlb2.tex}{\texttt{env-mlb2.tex}}{lst:mlb2}
-	\end{minipage}
-	\hfill
-	\begin{minipage}{.45\linewidth}
-		\cmhlistingsfromfile{demonstrations/env-mlb3.tex}{\texttt{env-mlb3.tex}}{lst:mlb3}
-	\end{minipage}
-
-	Setting the poly-switches to a value of $4$ instructs
-	\texttt{latexindent.pl} to add a line break even if the \emph{<part of thing>}
-	is already on its own line; see \cref{lst:env-mlb1-beg4,lst:env-mlb1-body4} and
-	\cref{lst:env-mlb1-end4,lst:env-mlb1-end-f4}.
-
-	In contrast, the output from processing the file in \cref{lst:mlb3} will
-	vary depending on the poly-switches used; in \cref{lst:env-mlb3-mod2} you'll see that
-	the comment symbol after the \lstinline!\begin{myenv}! has been moved to the next line,
-	as \texttt{BodyStartsOnOwnLine} is set to \texttt{1}. In
-	\cref{lst:env-mlb3-mod4} you'll see that the comment has been accounted for correctly
-	because \texttt{BodyStartsOnOwnLine} has been set to \texttt{2}, and
-	the comment symbol has \emph{not} been moved to its own line. You're
-	encouraged to experiment with \cref{lst:mlb3} and by setting the other
-	poly-switches considered so far to \texttt{2} in turn.
-
-	\begin{cmhtcbraster}[raster column skip=.1\linewidth]
-		\cmhlistingsfromfile{demonstrations/env-mlb3-mod2.tex}{\texttt{env-mlb3.tex} using \vref{lst:env-mlb2}}{lst:env-mlb3-mod2}
-		\cmhlistingsfromfile{demonstrations/env-mlb3-mod4.tex}{\texttt{env-mlb3.tex} using \vref{lst:env-mlb4}}{lst:env-mlb3-mod4}
-	\end{cmhtcbraster}
-
-	The details of the discussion in this section have concerned \emph{global}
-	poly-switches in the \texttt{environments} field; each switch can also be
-	specified on a \emph{per-name} basis, which would take priority over the
-	global values; with reference to \vref{lst:environments-mlb}, an example is shown for
-	the \texttt{equation*} environment.
-
-\subsubsection{Removing line breaks (poly-switches set to $-1$)}
-	Setting poly-switches to $-1$ tells \texttt{latexindent.pl}
-	to remove line breaks of the \emph{<part of the thing>}, if necessary. We will consider
-	the example code given in \cref{lst:mlb4}, noting in particular the
-	positions of the line break highlighters, $\BeginStartsOnOwnLine$,
-	$\BodyStartsOnOwnLine$, $\EndStartsOnOwnLine$ and $\EndFinishesWithLineBreak$,
-	together with the associated YAML files in \crefrange{lst:env-mlb13}{lst:env-mlb16}.
-	\index{poly-switches!removing line breaks: set to -1}
-
-	\begin{minipage}{.45\linewidth}
-		\begin{cmhlistings}[style=tcblatex,escapeinside={(*@}{@*)}]{\texttt{env-mlb4.tex}}{lst:mlb4}
-before words(*@$\BeginStartsOnOwnLine$@*)
-\begin{myenv}(*@$\BodyStartsOnOwnLine$@*)
-body of myenv(*@$\EndStartsOnOwnLine$@*)
-\end{myenv}(*@$\EndFinishesWithLineBreak$@*)
-after words
-\end{cmhlistings}
-	\end{minipage}%
-	\hfill
-	\begin{minipage}{.51\textwidth}
-		\cmhlistingsfromfile[style=yaml-LST]*{demonstrations/env-mlb13.yaml}[MLB-TCB]{\texttt{env-mlb13.yaml}}{lst:env-mlb13}
-
-		\cmhlistingsfromfile[style=yaml-LST]*{demonstrations/env-mlb14.yaml}[MLB-TCB]{\texttt{env-mlb14.yaml}}{lst:env-mlb14}
-
-		\cmhlistingsfromfile[style=yaml-LST]*{demonstrations/env-mlb15.yaml}[MLB-TCB]{\texttt{env-mlb15.yaml}}{lst:env-mlb15}
-
-		\cmhlistingsfromfile[style=yaml-LST]*{demonstrations/env-mlb16.yaml}[MLB-TCB]{\texttt{env-mlb16.yaml}}{lst:env-mlb16}
-	\end{minipage}
-
-	After running the commands
-	\index{switches!-l demonstration}
-	\index{switches!-m demonstration}
-	\begin{commandshell}
-latexindent.pl -m env-mlb4.tex -l env-mlb13.yaml
-latexindent.pl -m env-mlb4.tex -l env-mlb14.yaml
-latexindent.pl -m env-mlb4.tex -l env-mlb15.yaml
-latexindent.pl -m env-mlb4.tex -l env-mlb16.yaml
-\end{commandshell}
-
-	we obtain the respective output in \crefrange{lst:env-mlb4-mod13}{lst:env-mlb4-mod16}.
-
-	\begin{minipage}{.45\linewidth}
-		\cmhlistingsfromfile{demonstrations/env-mlb4-mod13.tex}{\texttt{env-mlb4.tex} using \cref{lst:env-mlb13}}{lst:env-mlb4-mod13}
-	\end{minipage}
-	\hfill
-	\begin{minipage}{.45\linewidth}
-		\cmhlistingsfromfile{demonstrations/env-mlb4-mod14.tex}{\texttt{env-mlb4.tex} using \cref{lst:env-mlb14}}{lst:env-mlb4-mod14}
-	\end{minipage}
-
-	\begin{minipage}{.45\linewidth}
-		\cmhlistingsfromfile{demonstrations/env-mlb4-mod15.tex}{\texttt{env-mlb4.tex} using \cref{lst:env-mlb15}}{lst:env-mlb4-mod15}
-	\end{minipage}
-	\hfill
-	\begin{minipage}{.45\linewidth}
-		\cmhlistingsfromfile{demonstrations/env-mlb4-mod16.tex}{\texttt{env-mlb4.tex} using \cref{lst:env-mlb16}}{lst:env-mlb4-mod16}
-	\end{minipage}
-
-	Notice that in:
-	\begin{itemize}
-		\item \cref{lst:env-mlb4-mod13} the line break denoted by $\BeginStartsOnOwnLine$ in
-		      \cref{lst:mlb4} has been removed;
-		\item \cref{lst:env-mlb4-mod14} the line break denoted by $\BodyStartsOnOwnLine$ in
-		      \cref{lst:mlb4} has been removed;
-		\item \cref{lst:env-mlb4-mod15} the line break denoted by $\EndStartsOnOwnLine$ in
-		      \cref{lst:mlb4} has been removed;
-		\item \cref{lst:env-mlb4-mod16} the line break denoted by $\EndFinishesWithLineBreak$ in
-		      \cref{lst:mlb4} has been removed.
-	\end{itemize}
-	We examined each of these cases separately for clarity of explanation, but you can
-	combine all of the YAML settings in \crefrange{lst:env-mlb13}{lst:env-mlb16} into one file;
-	alternatively, you could tell \texttt{latexindent.pl} to load them all by using the
-	following command, for example
-	\index{switches!-l demonstration}
-	\index{switches!-m demonstration}
-	\begin{widepage}
-		\begin{commandshell}
-latexindent.pl -m env-mlb4.tex -l env-mlb13.yaml,env-mlb14.yaml,env-mlb15.yaml,env-mlb16.yaml
-\end{commandshell}
-	\end{widepage}
-	which gives the output in \vref{lst:env-mlb1-tex}.
-
-\subsubsection{About trailing horizontal space}
-	Recall that on \cpageref{yaml:removeTrailingWhitespace} we discussed the YAML field
-	\texttt{removeTrailingWhitespace}, and that it has two (binary) switches to determine if
-	horizontal space should be removed \texttt{beforeProcessing} and
-	\texttt{afterProcessing}. The \texttt{beforeProcessing} is particularly relevant
-	when considering the \texttt{-m} switch; let's consider the file shown
-	in \cref{lst:mlb5}, which highlights trailing spaces.
-
-	\begin{cmhtcbraster}
-		\begin{cmhlistings}[style=tcblatex,showspaces=true,escapeinside={(*@}{@*)}]{\texttt{env-mlb5.tex}}{lst:mlb5}
-before words   (*@$\BeginStartsOnOwnLine$@*) 
-\begin{myenv}           (*@$\BodyStartsOnOwnLine$@*)
-body of myenv      (*@$\EndStartsOnOwnLine$@*) 
-\end{myenv}     (*@$\EndFinishesWithLineBreak$@*)
-after words
-\end{cmhlistings}
-		\cmhlistingsfromfile[style=yaml-LST]*{demonstrations/removeTWS-before.yaml}[yaml-TCB]{\texttt{removeTWS-before.yaml}}{lst:removeTWS-before}
-	\end{cmhtcbraster}
-
-	The output from the following commands
-	\index{switches!-l demonstration}
-	\index{switches!-m demonstration}
-	\begin{widepage}
-		\begin{commandshell}
-latexindent.pl -m env-mlb5.tex -l env-mlb13.yaml,env-mlb14.yaml,env-mlb15.yaml,env-mlb16.yaml
-latexindent.pl -m env-mlb5.tex -l env-mlb13.yaml,env-mlb14.yaml,env-mlb15.yaml,env-mlb16.yaml,removeTWS-before.yaml
-\end{commandshell}
-	\end{widepage}
-	is shown, respectively, in \cref{lst:env-mlb5-modAll,lst:env-mlb5-modAll-remove-WS}; note that the trailing
-	horizontal white space has been preserved (by default) in \cref{lst:env-mlb5-modAll},
-	while in \cref{lst:env-mlb5-modAll-remove-WS}, it has been removed using the switch specified in
-	\cref{lst:removeTWS-before}.
-
-	\begin{widepage}
-		\cmhlistingsfromfile[showspaces=true]{demonstrations/env-mlb5-modAll.tex}{\texttt{env-mlb5.tex} using \crefrange{lst:env-mlb4-mod13}{lst:env-mlb4-mod16}}{lst:env-mlb5-modAll}
-
-		\cmhlistingsfromfile[showspaces=true]{demonstrations/env-mlb5-modAll-remove-WS.tex}{\texttt{env-mlb5.tex} using \crefrange{lst:env-mlb4-mod13}{lst:env-mlb4-mod16} \emph{and} \cref{lst:removeTWS-before}}{lst:env-mlb5-modAll-remove-WS}
-	\end{widepage}
-
-\subsubsection{poly-switch line break removal and blank lines}
-	Now let's consider the file in \cref{lst:mlb6}, which contains blank lines.
-	\index{poly-switches!blank lines}
-
-	\begin{cmhtcbraster}
-		\begin{cmhlistings}[style=tcblatex,escapeinside={(*@}{@*)}]{\texttt{env-mlb6.tex}}{lst:mlb6}
-before words(*@$\BeginStartsOnOwnLine$@*)
-
-
-\begin{myenv}(*@$\BodyStartsOnOwnLine$@*)
-
-
-body of myenv(*@$\EndStartsOnOwnLine$@*)
-
-
-\end{myenv}(*@$\EndFinishesWithLineBreak$@*)
-
-after words
-\end{cmhlistings}
-		\cmhlistingsfromfile[style=yaml-LST]*{demonstrations/UnpreserveBlankLines.yaml}[MLB-TCB]{\texttt{UnpreserveBlankLines.yaml}}{lst:UnpreserveBlankLines}
-	\end{cmhtcbraster}
-
-	Upon running the following commands
-	\index{switches!-l demonstration}
-	\index{switches!-m demonstration}
-	\begin{widepage}
-		\begin{commandshell}
-latexindent.pl -m env-mlb6.tex -l env-mlb13.yaml,env-mlb14.yaml,env-mlb15.yaml,env-mlb16.yaml
-latexindent.pl -m env-mlb6.tex -l env-mlb13.yaml,env-mlb14.yaml,env-mlb15.yaml,env-mlb16.yaml,UnpreserveBlankLines.yaml
-\end{commandshell}
-	\end{widepage}
-	we receive the respective outputs in \cref{lst:env-mlb6-modAll,lst:env-mlb6-modAll-un-Preserve-Blank-Lines}. In
-	\cref{lst:env-mlb6-modAll} we see that the multiple blank lines have each been
-	condensed into one blank line, but that blank lines have \emph{not}
-	been removed by the poly-switches -- this is because, by default,
-	\texttt{preserveBlankLines} is set to \texttt{1}. By contrast, in
-	\cref{lst:env-mlb6-modAll-un-Preserve-Blank-Lines}, we have allowed the poly-switches to remove blank lines
-	because, in \cref{lst:UnpreserveBlankLines}, we have set \texttt{preserveBlankLines} to
-	\texttt{0}.
-
-	\begin{cmhtcbraster}[ raster left skip=-3.5cm,
-			raster right skip=-2cm,
-			raster force size=false,
-			raster column 1/.style={add to width=-.2\textwidth},
-			raster column 2/.style={add to width=.2\textwidth},
-			raster column skip=.06\linewidth]
-		\cmhlistingsfromfile{demonstrations/env-mlb6-modAll.tex}{\texttt{env-mlb6.tex} using \crefrange{lst:env-mlb4-mod13}{lst:env-mlb4-mod16}}{lst:env-mlb6-modAll}
-		\cmhlistingsfromfile{demonstrations/env-mlb6-modAll-un-Preserve-Blank-Lines.tex}{\texttt{env-mlb6.tex} using \crefrange{lst:env-mlb4-mod13}{lst:env-mlb4-mod16} \emph{and} \cref{lst:UnpreserveBlankLines}}{lst:env-mlb6-modAll-un-Preserve-Blank-Lines}
-	\end{cmhtcbraster}
-
-	We can explore this further using the blank-line poly-switch value of
-	$3$; let's use the file given in \cref{lst:env-mlb7-tex}.
-
-	\cmhlistingsfromfile{demonstrations/env-mlb7.tex}{\texttt{env-mlb7.tex}}{lst:env-mlb7-tex}
-
-	Upon running the following commands
-	\index{switches!-l demonstration}
-	\index{switches!-m demonstration}
-	\begin{commandshell}
-latexindent.pl -m env-mlb7.tex -l env-mlb12.yaml,env-mlb13.yaml
-latexindent.pl -m env-mlb7.tex -l env-mlb13.yaml,env-mlb14.yaml,UnpreserveBlankLines.yaml
-\end{commandshell}
-	we receive the outputs given in \cref{lst:env-mlb7-preserve,lst:env-mlb7-no-preserve}.
-
-	\cmhlistingsfromfile{demonstrations/env-mlb7-preserve.tex}{\texttt{env-mlb7-preserve.tex}}{lst:env-mlb7-preserve}
-	\cmhlistingsfromfile{demonstrations/env-mlb7-no-preserve.tex}{\texttt{env-mlb7-no-preserve.tex}}{lst:env-mlb7-no-preserve}
-
-	Notice that in:
-	\begin{itemize}
-		\item \cref{lst:env-mlb7-preserve} that \lstinline!\end{one}! has added a blank line,
-		      because of the value of \texttt{EndFinishesWithLineBreak} in \vref{lst:env-mlb12}, and
-		      even though the line break ahead of \lstinline!\begin{two}! should have been removed
-		      (because of \texttt{BeginStartsOnOwnLine} in \vref{lst:env-mlb13}), the blank line
-		      has been preserved by default;
-		\item \cref{lst:env-mlb7-no-preserve}, by contrast, has had the additional line-break removed,
-		      because of the settings in \cref{lst:UnpreserveBlankLines}.
-	\end{itemize}
-
-\subsection{Poly-switches for double back slash}\label{subsec:dbs}
-	With reference to \texttt{lookForAlignDelims} (see \vref{lst:aligndelims:basic})%
-	\announce{2019-07-13}{poly-switch for double back slash} you can
-	specify poly-switches to dictate the line-break behaviour of double back slashes in
-	environments (\vref{lst:tabularafter:basic}), commands (\vref{lst:matrixafter}), or
-	special code blocks (\vref{lst:specialafter}). Note that for these poly-switches to
-	take effect, the name of the code block must necessarily be specified within
-	\texttt{lookForAlignDelims} (\vref{lst:aligndelims:basic}); we will demonstrate this in what follows.
-	\index{delimiters!poly-switches for double back slash}
-	\index{modifying linebreaks! surrounding double back slash}
-	\index{poly-switches!for double back slash (delimiters)}
-
-	Consider the code given in \cref{lst:dbs-demo}.
-	\begin{cmhlistings}[style=tcblatex,escapeinside={(*@}{@*)}]{\texttt{tabular3.tex}}{lst:dbs-demo}
-\begin{tabular}{cc}
- 1 & 2 (*@$\ElseStartsOnOwnLine$@*)\\(*@$\ElseFinishesWithLineBreak$@*) 3 & 4 (*@$\ElseStartsOnOwnLine$@*)\\(*@$\ElseFinishesWithLineBreak$@*)
-\end{tabular}
-\end{cmhlistings}
-	Referencing \cref{lst:dbs-demo}:
-	\begin{itemize}
-		\item \texttt{DBS} stands for \emph{double back slash};
-		\item line breaks ahead of the double back slash are annotated by $\ElseStartsOnOwnLine$,
-		      and are controlled by \texttt{DBSStartsOnOwnLine};
-		\item line breaks after the double back slash are annotated by $\ElseFinishesWithLineBreak$, and
-		      are controlled by \texttt{DBSFinishesWithLineBreak}.
-	\end{itemize}
-
-	Let's explore each of these in turn.
-
-\subsubsection{Double back slash starts on own line}
-	We explore \texttt{DBSStartsOnOwnLine} ($\ElseStartsOnOwnLine$ in \cref{lst:dbs-demo}); starting with the code in
-	\cref{lst:dbs-demo}, together with the YAML files given in
-	\cref{lst:DBS1} and \cref{lst:DBS2} and running the following
-	commands
-	\index{switches!-l demonstration}
-	\index{switches!-m demonstration}
-	\begin{commandshell}
-latexindent.pl -m tabular3.tex -l DBS1.yaml
-latexindent.pl -m tabular3.tex -l DBS2.yaml
-\end{commandshell}
-	then we receive the respective output given in \cref{lst:tabular3-DBS1} and
-	\cref{lst:tabular3-DBS2}.
-
-	\begin{cmhtcbraster}[raster column skip=.01\linewidth]
-		\cmhlistingsfromfile{demonstrations/tabular3-mod1.tex}{\texttt{tabular3.tex} using \cref{lst:DBS1}}{lst:tabular3-DBS1}
-		\cmhlistingsfromfile[style=yaml-LST]*{demonstrations/DBS1.yaml}[MLB-TCB]{\texttt{DBS1.yaml}}{lst:DBS1}
-	\end{cmhtcbraster}
-
-	\begin{cmhtcbraster}[raster column skip=.01\linewidth]
-		\cmhlistingsfromfile{demonstrations/tabular3-mod2.tex}{\texttt{tabular3.tex} using \cref{lst:DBS2}}{lst:tabular3-DBS2}
-		\cmhlistingsfromfile[style=yaml-LST]*{demonstrations/DBS2.yaml}[MLB-TCB]{\texttt{DBS2.yaml}}{lst:DBS2}
-	\end{cmhtcbraster}
-
-	We note that
-	\begin{itemize}
-		\item \cref{lst:DBS1} specifies \texttt{DBSStartsOnOwnLine} for
-		      \emph{every} environment (that is within \texttt{lookForAlignDelims},
-		      \vref{lst:aligndelims:advanced});
-		      the double back slashes from \cref{lst:dbs-demo} have been moved to their own
-		      line in \cref{lst:tabular3-DBS1};
-		\item \cref{lst:DBS2} specifies \texttt{DBSStartsOnOwnLine} on a
-		      \emph{per-name} basis for \texttt{tabular} (that is within \texttt{lookForAlignDelims}, \vref{lst:aligndelims:advanced});
-		      the double back slashes from \cref{lst:dbs-demo} have been moved to their own
-		      line in \cref{lst:tabular3-DBS2}, having added comment symbols before moving them.
-	\end{itemize}
-
-\subsubsection{Double back slash finishes with line break}
-	Let's now explore \texttt{DBSFinishesWithLineBreak} ($\ElseFinishesWithLineBreak$ in \cref{lst:dbs-demo}); starting with the code in
-	\cref{lst:dbs-demo}, together with the YAML files given in
-	\cref{lst:DBS3} and \cref{lst:DBS4} and running the following
-	commands
-	\index{poly-switches!for double back slash (delimiters)}
-	\index{switches!-l demonstration}
-	\index{switches!-m demonstration}
-	\begin{commandshell}
-latexindent.pl -m tabular3.tex -l DBS3.yaml
-latexindent.pl -m tabular3.tex -l DBS4.yaml
-\end{commandshell}
-	then we receive the respective output given in \cref{lst:tabular3-DBS3} and
-	\cref{lst:tabular3-DBS4}.
-
-	\begin{cmhtcbraster}[raster column skip=.01\linewidth]
-		\cmhlistingsfromfile{demonstrations/tabular3-mod3.tex}{\texttt{tabular3.tex} using \cref{lst:DBS3}}{lst:tabular3-DBS3}
-		\cmhlistingsfromfile[style=yaml-LST]*{demonstrations/DBS3.yaml}[MLB-TCB]{\texttt{DBS3.yaml}}{lst:DBS3}
-	\end{cmhtcbraster}
-
-	\begin{cmhtcbraster}[raster column skip=.01\linewidth]
-		\cmhlistingsfromfile{demonstrations/tabular3-mod4.tex}{\texttt{tabular3.tex} using \cref{lst:DBS4}}{lst:tabular3-DBS4}
-		\cmhlistingsfromfile[style=yaml-LST]*{demonstrations/DBS4.yaml}[MLB-TCB]{\texttt{DBS4.yaml}}{lst:DBS4}
-	\end{cmhtcbraster}
-
-	We note that
-	\begin{itemize}
-		\item \cref{lst:DBS3} specifies \texttt{DBSFinishesWithLineBreak} for
-		      \emph{every} environment (that is within \texttt{lookForAlignDelims},
-		      \vref{lst:aligndelims:advanced});
-		      the code following the double back slashes from \cref{lst:dbs-demo} has been
-		      moved to their own line in \cref{lst:tabular3-DBS3};
-		\item \cref{lst:DBS4} specifies \texttt{DBSFinishesWithLineBreak} on a
-		      \emph{per-name} basis for \texttt{tabular} (that is within \texttt{lookForAlignDelims}, \vref{lst:aligndelims:advanced});
-		      the first double back slashes from \cref{lst:dbs-demo} have moved code following
-		      them to their own line in \cref{lst:tabular3-DBS4}, having added comment symbols
-		      before moving them; the final double back slashes have \emph{not} added
-		      a line break as they are at the end of the body within the code block.
-	\end{itemize}
-
-\subsubsection{Double back slash poly-switches for specialBeginEnd}
-	Let's explore the double back slash poly-switches for code blocks within
-	\texttt{specialBeginEnd} code blocks (\vref{lst:specialBeginEnd}); we begin with
-	the code within \cref{lst:special4}.
-	\index{specialBeginEnd!double backslash poly-switch demonstration}
-	\index{poly-switches!double backslash}
-	\index{poly-switches!for double back slash (delimiters)}
-	\index{specialBeginEnd!lookForAlignDelims}
-	\index{delimiters}
-	\index{linebreaks!summary of poly-switches}
-
-	\cmhlistingsfromfile{demonstrations/special4.tex}{\texttt{special4.tex}}{lst:special4}
-
-	Upon using the YAML settings in \cref{lst:DBS5}, and running the command
-	\index{switches!-l demonstration}
-	\index{switches!-m demonstration}
-	\begin{commandshell}
-latexindent.pl -m special4.tex -l DBS5.yaml
-\end{commandshell}
-	then we receive the output given in \cref{lst:special4-DBS5}.
-	\index{delimiters!with specialBeginEnd and the -m switch}
-
-	\begin{cmhtcbraster}[
-			raster force size=false,
-			raster column 1/.style={add to width=-.1\textwidth},
-			raster column skip=.06\linewidth]
-		\cmhlistingsfromfile{demonstrations/special4-mod5.tex}{\texttt{special4.tex} using \cref{lst:DBS5}}{lst:special4-DBS5}
-		\cmhlistingsfromfile[style=yaml-LST]*{demonstrations/DBS5.yaml}[MLB-TCB,width=0.6\textwidth]{\texttt{DBS5.yaml}}{lst:DBS5}
-	\end{cmhtcbraster}
-
-	There are a few things to note:
-	\begin{itemize}
-		\item in \cref{lst:DBS5} we have specified \texttt{cmhMath} within
-		      \texttt{lookForAlignDelims}; without this, the double back slash poly-switches would be
-		      ignored for this code block;
-		\item the \texttt{DBSFinishesWithLineBreak} poly-switch has controlled the line breaks following the
-		      double back slashes;
-		\item the \texttt{SpecialEndStartsOnOwnLine} poly-switch has controlled the addition of a comment
-		      symbol, followed by a line break, as it is set to a value of 2.
-	\end{itemize}
-
-\subsubsection{Double back slash poly-switches for optional and mandatory arguments}
-	For clarity, we provide a demonstration of controlling the double back slash
-	poly-switches for optional and mandatory arguments. We begin with the code in
-	\cref{lst:mycommand2}.
-	\index{poly-switches!for double back slash (delimiters)}
-
-	\cmhlistingsfromfile{demonstrations/mycommand2.tex}{\texttt{mycommand2.tex}}{lst:mycommand2}
-
-	Upon using the YAML settings in \cref{lst:DBS6,lst:DBS7}, and running the command
-	\index{switches!-l demonstration}
-	\index{switches!-m demonstration}
-	\begin{commandshell}
-latexindent.pl -m mycommand2.tex -l DBS6.yaml
-latexindent.pl -m mycommand2.tex -l DBS7.yaml
-\end{commandshell}
-	then we receive the output given in \cref{lst:mycommand2-DBS6,lst:mycommand2-DBS7}.
-
-	\begin{cmhtcbraster}[
-			raster force size=false,
-			raster column 1/.style={add to width=-.1\textwidth},
-			raster column skip=.03\linewidth]
-		\cmhlistingsfromfile{demonstrations/mycommand2-mod6.tex}{\texttt{mycommand2.tex} using \cref{lst:DBS6}}{lst:mycommand2-DBS6}
-		\cmhlistingsfromfile[style=yaml-LST]*{demonstrations/DBS6.yaml}[MLB-TCB,width=0.6\textwidth]{\texttt{DBS6.yaml}}{lst:DBS6}
-	\end{cmhtcbraster}
-
-	\begin{cmhtcbraster}[
-			raster force size=false,
-			raster column 1/.style={add to width=-.1\textwidth},
-			raster column skip=.03\linewidth]
-		\cmhlistingsfromfile{demonstrations/mycommand2-mod7.tex}{\texttt{mycommand2.tex} using \cref{lst:DBS7}}{lst:mycommand2-DBS7}
-		\cmhlistingsfromfile[style=yaml-LST]*{demonstrations/DBS7.yaml}[MLB-TCB,width=0.6\textwidth]{\texttt{DBS7.yaml}}{lst:DBS7}
-	\end{cmhtcbraster}
-
-\subsubsection{Double back slash optional square brackets}
-	The pattern matching for the double back slash will also, optionally, allow trailing
-	square brackets that contain a measurement of vertical spacing, for example
-	\lstinline!\\[3pt]!.
-	\index{poly-switches!for double back slash (delimiters)}
-
-	For example, beginning with the code in \cref{lst:pmatrix3}
-
-	\cmhlistingsfromfile{demonstrations/pmatrix3.tex}{\texttt{pmatrix3.tex}}{lst:pmatrix3}
-
-	and running the following command, using \cref{lst:DBS3},
-	\index{switches!-l demonstration}
-	\index{switches!-m demonstration}
-	\begin{commandshell}
-latexindent.pl -m pmatrix3.tex -l DBS3.yaml
-\end{commandshell}
-	then we receive the output given in \cref{lst:pmatrix3-DBS3}.
-
-	\cmhlistingsfromfile{demonstrations/pmatrix3-mod3.tex}{\texttt{pmatrix3.tex} using \cref{lst:DBS3}}{lst:pmatrix3-DBS3}
-
-	You can customise the pattern for the double back slash by exploring the
-	\emph{fine tuning} field detailed in \vref{lst:fineTuning}.
-
-\subsection{Poly-switches for other code blocks}
-	Rather than repeat the examples shown for the environment code blocks (in
-	\vref{sec:modifylinebreaks-environments}), we choose to detail the poly-switches for all other code
-	blocks in \cref{tab:poly-switch-mapping}; note that each and every one of these
-	poly-switches is \emph{off by default}, i.e, set to \texttt{0}.
-
-	Note also that, by design, line breaks involving, \texttt{filecontents} and
-	`comment-marked' code blocks (\vref{lst:alignmentmarkup}) can
-	\emph{not} be modified using
-	\texttt{latexindent.pl}.%
-	\announce{2019-05-05}*{verbatim poly-switch} However, there are two poly-switches available for
-	\texttt{verbatim} code blocks: environments (\vref{lst:verbatimEnvironments}),
-	commands (\vref{lst:verbatimCommands}) and \texttt{specialBeginEnd} (\vref{lst:special-verb1-yaml}).
-	\index{specialBeginEnd!poly-switch summary}
-	\index{verbatim!poly-switch summary}
-	\index{poly-switches!summary of all poly-switches}
-
-	\clearpage
-	\begin{longtable}{llll}
-		\caption{Poly-switch mappings for all code-block types}\label{tab:poly-switch-mapping}                                                                                                                                                   \\
-		\toprule
-		Code block                                             & Sample                                                            & \multicolumn{2}{c}{Poly-switch mapping}                                                                     \\
-		\midrule
-		environment                                            & \verb!before words!$\BeginStartsOnOwnLine$                        & $\BeginStartsOnOwnLine$                 & BeginStartsOnOwnLine                                              \\
-		                                                       & \verb!\begin{myenv}!$\BodyStartsOnOwnLine$                        & $\BodyStartsOnOwnLine$                  & BodyStartsOnOwnLine                                               \\
-		                                                       & \verb!body of myenv!$\EndStartsOnOwnLine$                         & $\EndStartsOnOwnLine$                   & EndStartsOnOwnLine                                                \\
-		                                                       & \verb!\end{myenv}!$\EndFinishesWithLineBreak$                     & $\EndFinishesWithLineBreak$             & EndFinishesWithLineBreak                                          \\
-		                                                       & \verb!after words!                                                &                                         &                                                                   \\
-		\cmidrule{2-4}
-		ifelsefi                                               & \verb!before words!$\BeginStartsOnOwnLine$                        & $\BeginStartsOnOwnLine$                 & IfStartsOnOwnLine                                                 \\
-		                                                       & \verb!\if...!$\BodyStartsOnOwnLine$                               & $\BodyStartsOnOwnLine$                  & BodyStartsOnOwnLine                                               \\
-		                                                       & \verb!body of if/or statement!$\OrStartsOnOwnLine$                & $\OrStartsOnOwnLine$                    & OrStartsOnOwnLine                                                 %
-		\announce{2018-04-27}{new ifElseFi code block poly-switches}                                                                                                                                                                             \\
-		                                                       & \verb!\or!$\OrFinishesWithLineBreak$                              & $\OrFinishesWithLineBreak$              & OrFinishesWithLineBreak                                           \\
-		                                                       & \verb!body of if/or statement!$\ElseStartsOnOwnLine$              & $\ElseStartsOnOwnLine$                  & ElseStartsOnOwnLine                                               \\
-		                                                       & \verb!\else!$\ElseFinishesWithLineBreak$                          & $\ElseFinishesWithLineBreak$            & ElseFinishesWithLineBreak                                         \\
-		                                                       & \verb!body of else statement!$\EndStartsOnOwnLine$                & $\EndStartsOnOwnLine$                   & FiStartsOnOwnLine                                                 \\
-		                                                       & \verb!\fi!$\EndFinishesWithLineBreak$                             & $\EndFinishesWithLineBreak$             & FiFinishesWithLineBreak                                           \\
-		                                                       & \verb!after words!                                                &                                         &                                                                   \\
-		\cmidrule{2-4}
-		optionalArguments                                      & \verb!...!$\BeginStartsOnOwnLine$                                 & $\BeginStartsOnOwnLine$                 & LSqBStartsOnOwnLine\footnote{LSqB stands for Left Square Bracket} \\
-		                                                       & \verb![!$\BodyStartsOnOwnLine$                                    & $\BodyStartsOnOwnLine$                  & OptArgBodyStartsOnOwnLine                                         \\
-		\announce{2019-07-13}{new comma-related poly-switches} & \verb!value before comma!$\ElseStartsOnOwnLine$,                  & $\ElseStartsOnOwnLine$                  & CommaStartsOnOwnLine                                              \\
-		                                                       & $\ElseFinishesWithLineBreak$                                      & $\ElseFinishesWithLineBreak$            & CommaFinishesWithLineBreak                                        \\
-		                                                       & \verb!end of body of opt arg!$\EndStartsOnOwnLine$                & $\EndStartsOnOwnLine$                   & RSqBStartsOnOwnLine                                               \\
-		                                                       & \verb!]!$\EndFinishesWithLineBreak$                               & $\EndFinishesWithLineBreak$             & RSqBFinishesWithLineBreak                                         \\
-		                                                       & \verb!...!                                                        &                                         &                                                                   \\
-		\cmidrule{2-4}
-		mandatoryArguments                                     & \verb!...!$\BeginStartsOnOwnLine$                                 & $\BeginStartsOnOwnLine$                 & LCuBStartsOnOwnLine\footnote{LCuB stands for Left Curly Brace}    \\
-		                                                       & \verb!{!$\BodyStartsOnOwnLine$                                    & $\BodyStartsOnOwnLine$                  & MandArgBodyStartsOnOwnLine                                        \\
-		\announce{2019-07-13}{new comma-related poly-switches} & \verb!value before comma!$\ElseStartsOnOwnLine$,                  & $\ElseStartsOnOwnLine$                  & CommaStartsOnOwnLine                                              \\
-		                                                       & $\ElseFinishesWithLineBreak$                                      & $\ElseFinishesWithLineBreak$            & CommaFinishesWithLineBreak                                        \\
-		                                                       & \verb!end of body of mand arg!$\EndStartsOnOwnLine$               & $\EndStartsOnOwnLine$                   & RCuBStartsOnOwnLine                                               \\
-		                                                       & \verb!}!$\EndFinishesWithLineBreak$                               & $\EndFinishesWithLineBreak$             & RCuBFinishesWithLineBreak                                         \\
-		                                                       & \verb!...!                                                        &                                         &                                                                   \\
-		\cmidrule{2-4}
-		commands                                               & \verb!before words!$\BeginStartsOnOwnLine$                        & $\BeginStartsOnOwnLine$                 & CommandStartsOnOwnLine                                            \\
-		                                                       & \verb!\mycommand!$\BodyStartsOnOwnLine$                           & $\BodyStartsOnOwnLine$                  & CommandNameFinishesWithLineBreak                                  \\
-		                                                       & $\langle$\itshape{arguments}$\rangle$                             &                                         &                                                                   \\
-		\cmidrule{2-4}
-		namedGroupingBraces Brackets                           & before words$\BeginStartsOnOwnLine$                               & $\BeginStartsOnOwnLine$                 & NameStartsOnOwnLine                                               \\
-		                                                       & myname$\BodyStartsOnOwnLine$                                      & $\BodyStartsOnOwnLine$                  & NameFinishesWithLineBreak                                         \\
-		                                                       & $\langle$\itshape{braces/brackets}$\rangle$                       &                                         &                                                                   \\
-		\cmidrule{2-4}
-		keyEqualsValuesBraces\newline Brackets                 & before words$\BeginStartsOnOwnLine$                               & $\BeginStartsOnOwnLine$                 & KeyStartsOnOwnLine                                                \\
-		                                                       & key$\EqualsStartsOnOwnLine$=$\BodyStartsOnOwnLine$                & $\EqualsStartsOnOwnLine$                & EqualsStartsOnOwnLine                                             \\
-		                                                       & $\langle$\itshape{braces/brackets}$\rangle$                       & $\BodyStartsOnOwnLine$                  & EqualsFinishesWithLineBreak                                       \\
-		\cmidrule{2-4}
-		items                                                  & before words$\BeginStartsOnOwnLine$                               & $\BeginStartsOnOwnLine$                 & ItemStartsOnOwnLine                                               \\
-		                                                       & \verb!\item!$\BodyStartsOnOwnLine$                                & $\BodyStartsOnOwnLine$                  & ItemFinishesWithLineBreak                                         \\
-		                                                       & \verb!...!                                                        &                                         &                                                                   \\
-		\cmidrule{2-4}
-		specialBeginEnd                                        & before words$\BeginStartsOnOwnLine$                               & $\BeginStartsOnOwnLine$                 & SpecialBeginStartsOnOwnLine                                       \\
-		                                                       & \verb!\[!$\BodyStartsOnOwnLine$                                   & $\BodyStartsOnOwnLine$                  & SpecialBodyStartsOnOwnLine                                        \\
-		                                                       & \verb!body of special/middle!$\ElseStartsOnOwnLine$               & $\ElseStartsOnOwnLine$                  & SpecialMiddleStartsOnOwnLine                                      %
-		\announce{2018-04-27}{new special code block poly-switches}                                                                                                                                                                              \\
-		                                                       & \verb!\middle!$\ElseFinishesWithLineBreak$                        & $\ElseFinishesWithLineBreak$            & SpecialMiddleFinishesWithLineBreak                                \\
-		                                                       & body of special/middle $\EndStartsOnOwnLine$                      & $\EndStartsOnOwnLine$                   & SpecialEndStartsOnOwnLine                                         \\
-		                                                       & \verb!\]!$\EndFinishesWithLineBreak$                              & $\EndFinishesWithLineBreak$             & SpecialEndFinishesWithLineBreak                                   \\
-		                                                       & after words                                                       &                                         &                                                                   \\
-		\cmidrule{2-4}
-		verbatim                                               & before words$\BeginStartsOnOwnLine$\verb!\begin{verbatim}!        & $\BeginStartsOnOwnLine$                 & VerbatimBeginStartsOnOwnLine                                      \\
-		\announce{2019-05-05}{verbatim poly-switches}          & body of verbatim \verb!\end{verbatim}!$\EndFinishesWithLineBreak$ & $\EndFinishesWithLineBreak$             & VerbatimEndFinishesWithLineBreak                                  \\
-		                                                       & after words                                                       &                                         &                                                                   \\
-		\bottomrule
-	\end{longtable}

Added: trunk/Master/texmf-dist/doc/support/latexindent/subsec-combine-text-wrap-para-line-breaks.tex
===================================================================
--- trunk/Master/texmf-dist/doc/support/latexindent/subsec-combine-text-wrap-para-line-breaks.tex	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/support/latexindent/subsec-combine-text-wrap-para-line-breaks.tex	2021-08-01 20:35:09 UTC (rev 60132)
@@ -0,0 +1,112 @@
+% arara: pdflatex: {shell: yes, files: [latexindent]}
+\subsection{Combining removeParagraphLineBreaks and textWrapOptions}\label{subsec:removeparagraphlinebreaks:and:textwrap}
+
+	The%
+	\announce{2018-08-13}{combine text wrap and remove paragraph line breaks} text wrapping routine (\vref{subsec:textwrapping}) and remove
+	paragraph line breaks routine (\vref{subsec:removeparagraphlinebreaks}) can be combined.
+
+	We motivate this feature with the code given in \cref{lst:textwrap7}.
+
+	\cmhlistingsfromfile{demonstrations/textwrap7.tex}{\texttt{textwrap7.tex}}{lst:textwrap7}
+
+	Applying the text wrap routine from \vref{subsec:textwrapping} with, for example,
+	\vref{lst:textwrap3-yaml} gives the output in \cref{lst:textwrap7-mod3}.
+
+	\cmhlistingsfromfile{demonstrations/textwrap7-mod3.tex}{\texttt{textwrap7.tex} using \cref{lst:textwrap3-yaml}}{lst:textwrap7-mod3}
+
+	The text wrapping routine has behaved as expected, but it may be desired to remove
+	paragraph line breaks \emph{before} performing the text wrapping routine. The desired
+	behaviour can be achieved by employing the \texttt{beforeTextWrap} switch.
+
+	Explicitly, using the settings in \cref{lst:textwrap12-yaml} and running the command
+	\index{switches!-l demonstration}
+	\index{switches!-m demonstration}
+	\index{switches!-o demonstration}
+	\begin{commandshell}
+latexindent.pl -m textwrap7.tex -l=textwrap12.yaml -o=+-mod12
+\end{commandshell}
+	we obtain the output in \cref{lst:textwrap7-mod12}.
+
+	\begin{cmhtcbraster}
+		\cmhlistingsfromfile{demonstrations/textwrap7-mod12.tex}{\texttt{textwrap7-mod12.tex}}{lst:textwrap7-mod12}
+		\cmhlistingsfromfile{demonstrations/textwrap12.yaml}[MLB-TCB]{\texttt{textwrap12.yaml}}{lst:textwrap12-yaml}
+	\end{cmhtcbraster}
+
+	In \cref{lst:textwrap7-mod12} the paragraph line breaks have first been removed from
+	\cref{lst:textwrap7}, and then the text wrapping routine has been applied. It is
+	envisaged that variants of \cref{lst:textwrap12-yaml} will be among the most useful
+	settings for these two features.
+
+\subsubsection{text wrapping beforeFindingChildCodeBlocks}\label{subsubsec:text-wrap-remove-para-bfccb}
+
+	\index{text wrap!recommended starting point}
+
+	I%
+	\announce*{2021-07-31}{textWrapOptions new feature: beforeFindingChildCodeBlocks} think it likely that most users will wish to employ the
+	\texttt{beforeFindingChildCodeBlocks} option for the text wrap routine.
+
+	To motivate its use, we begin with the file in \cref{lst:textwrap-bfccb}.
+
+	\cmhlistingsfromfile*{demonstrations/textwrap-bfccb.tex}{\texttt{textwrap-bfccb.tex}}{lst:textwrap-bfccb}
+
+	Using the settings in \cref{lst:textwrap12-yaml} and running
+	\begin{commandshell}
+latexindent.pl -m textwrap-bfccb.tex -l=textwrap12.yaml -o=+-mod12
+\end{commandshell}
+	gives the output in \cref{lst:textwrap-bfccb-mod12}
+
+	\cmhlistingsfromfile*{demonstrations/textwrap-bfccb-mod12.tex}{\texttt{textwrap-bfccb-mod12.tex}}{lst:textwrap-bfccb-mod12}
+
+	Note that we have added a `ruler' to \cref{lst:textwrap-bfccb-mod12} to assist with
+	measuring.
+
+	The output in \cref{lst:textwrap-bfccb-mod12} is not ideal, but it is \emph{expected}.
+	The reasoning is as follows:
+	\begin{itemize}
+		\item \texttt{latexindent.pl} first of all searches for code blocks (see
+		      \vref{tab:code-blocks});
+		\item it replaces each code block with a unique identifying string;
+		\item with the settings of \cref{lst:textwrap12-yaml} in place, it performs the paragraph line
+		      break removal, and then the text wrapping routine first of all on the \texttt{text}
+		      command, and then on the surrounding text;
+		\item the surrounding text does not know that \texttt{text} is a command.
+	\end{itemize}
+
+	We can instruct \texttt{latexindent.pl} to perform text wrapping \emph{before searching
+		for child code blocks} by using the \texttt{beforeFindingChildCodeBlocks} field.
+
+	We save the \emph{quick-start} settings from \cref{lst:textwrap-qs-yaml} into
+	\cref{lst:textwrap13-yaml} and change the value of \texttt{columns} for demonstration.
+	Upon running the command
+	\begin{commandshell}
+latexindent.pl -m textwrap-bfccb.tex -l=textwrap13.yaml -o=+-mod13
+\end{commandshell}
+	we receive the output in \cref{lst:textwrap-bfccb-mod13}.
+
+	\cmhlistingsfromfile*{demonstrations/textwrap13.yaml}[MLB-TCB,width=\linewidth]{\texttt{textwrap13.yaml} (tweaked quick start)}{lst:textwrap13-yaml}
+
+	\cmhlistingsfromfile*{demonstrations/textwrap-bfccb-mod13.tex}{\texttt{textwrap-bfccb-mod13.tex}}{lst:textwrap-bfccb-mod13}
+
+	This output is different from \cref{lst:textwrap-bfccb-mod12}, but is still not ideal, as
+	the \texttt{test} command has indented its mandatory argument. We can employ
+	\texttt{noAdditionalIndent} from \vref{sec:noadd-indent-rules} in
+	\cref{lst:textwrap14-yaml} and run the command
+	\begin{commandshell}
+latexindent.pl -m textwrap-bfccb.tex -l=textwrap14.yaml -o=+-mod14
+\end{commandshell}
+	to receive the output in \cref{lst:textwrap-bfccb-mod14}.
+
+	\begin{widepage}
+		\begin{cmhtcbraster}
+			\cmhlistingsfromfile*{demonstrations/textwrap-bfccb-mod14.tex}{\texttt{textwrap-bfccb-mod14.tex}}{lst:textwrap-bfccb-mod14}
+			\cmhlistingsfromfile*{demonstrations/textwrap14.yaml}[MLB-TCB]{\texttt{textwrap14.yaml}}{lst:textwrap14-yaml}
+		\end{cmhtcbraster}
+	\end{widepage}
+
+	For reference, let's say that we had started from \cref{lst:textwrap12-yaml}, which
+	instructs \texttt{latexindent.pl} to apply the text-wrapping and
+	paragraph-line-break-removal routines to \emph{all} code blocks. In order to achieve the
+	output in \cref{lst:textwrap-bfccb-mod14}, then we would need to employ an exception,
+	which we demonstrate in \cref{lst:textwrap15-yaml}.
+
+	\cmhlistingsfromfile*{demonstrations/textwrap15.yaml}[MLB-TCB]{\texttt{textwrap15.yaml}}{lst:textwrap15-yaml}


Property changes on: trunk/Master/texmf-dist/doc/support/latexindent/subsec-combine-text-wrap-para-line-breaks.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Modified: trunk/Master/texmf-dist/doc/support/latexindent/subsec-commands-and-their-options.tex
===================================================================
--- trunk/Master/texmf-dist/doc/support/latexindent/subsec-commands-and-their-options.tex	2021-08-01 02:06:28 UTC (rev 60131)
+++ trunk/Master/texmf-dist/doc/support/latexindent/subsec-commands-and-their-options.tex	2021-08-01 20:35:09 UTC (rev 60132)
@@ -1,15 +1,14 @@
 % arara: pdflatex: {shell: yes, files: [latexindent]}
-\subsection{Commands and the strings between their arguments}\label{subsec:commands-string-between}
-	The \texttt{command} code blocks will always look for optional (square bracketed)
-	and mandatory (curly braced) arguments which can contain comments, line breaks and
-	`beamer' commands \lstinline!<.*?>!  between them. There are switches that can allow
-	them to contain other strings, which we discuss next.
+\subsection{Commands and the strings between their arguments}\label{subsec:commands-string-between} The \texttt{command} code blocks will
+	always look for optional (square bracketed) and mandatory (curly braced) arguments which
+	can contain comments, line breaks and `beamer' commands \lstinline!<.*?>! between them.
+	There are switches that can allow them to contain other strings, which we discuss next.
 
 \yamltitle{commandCodeBlocks}*{fields}
 
 	The \texttt{commandCodeBlocks} field%
-	\announce{2018-04-27}*{commandCodeBlocks}
-	contains a few switches detailed in \cref{lst:commandCodeBlocks}.
+	\announce{2018-04-27}*{commandCodeBlocks} contains a few switches detailed in
+	\cref{lst:commandCodeBlocks}.
 
 	\cmhlistingsfromfile[style=commandCodeBlocks]*{../defaultSettings.yaml}[width=.8\linewidth,before=\centering,yaml-TCB]{\texttt{commandCodeBlocks}}{lst:commandCodeBlocks}
 
@@ -16,8 +15,8 @@
 \yamltitle{roundParenthesesAllowed}{0|1}
 
 	The need for this field was mostly motivated by commands found in code used to generate
-	images in \texttt{PSTricks} and \texttt{tikz}; for example, let's consider
-	the code given in \cref{lst:pstricks1}.
+	images in \texttt{PSTricks} and \texttt{tikz}; for example, let's consider the code given
+	in \cref{lst:pstricks1}.
 
 	\begin{minipage}{.45\textwidth}
 		\cmhlistingsfromfile{demonstrations/pstricks1.tex}{\texttt{pstricks1.tex}}{lst:pstricks1}
@@ -31,14 +30,15 @@
 	mandatory argument, followed by a round-parenthesis argument, $(u,v)$.
 
 	By default, because \texttt{roundParenthesesAllowed} is set to $1$ in
-	\cref{lst:commandCodeBlocks}, then \texttt{latexindent.pl} will allow round parenthesis between
-	optional and mandatory arguments. In the case of the code in \cref{lst:pstricks1},
-	\texttt{latexindent.pl} finds \emph{all} the arguments of
+	\cref{lst:commandCodeBlocks}, then \texttt{latexindent.pl} will allow round parenthesis
+	between optional and mandatory arguments. In the case of the code in
+	\cref{lst:pstricks1}, \texttt{latexindent.pl} finds \emph{all} the arguments of
 	\lstinline!defFunction!, both before and after \lstinline!(u,v)!.
 
 	The default output from running \texttt{latexindent.pl} on \cref{lst:pstricks1} actually
-	leaves it unchanged (see \cref{lst:pstricks1-default}); note in particular, this is because of
-	\texttt{noAdditionalIndentGlobal} as discussed on \cpageref{page:command:noAddGlobal}.
+	leaves it unchanged (see \cref{lst:pstricks1-default}); note in particular, this is
+	because of \texttt{noAdditionalIndentGlobal} as discussed on
+	\cpageref{page:command:noAddGlobal}.
 
 	Upon using the YAML settings in \cref{lst:noRoundParentheses}, and running the command
 	\index{switches!-l demonstration}
@@ -45,7 +45,7 @@
 	\begin{commandshell}
 latexindent.pl pstricks1.tex -l noRoundParentheses.yaml
 \end{commandshell}
-	we obtain the output given in  \cref{lst:pstricks1-nrp}.
+	we obtain the output given in \cref{lst:pstricks1-nrp}.
 
 	\begin{cmhtcbraster}[raster column skip=.1\linewidth]
 		\cmhlistingsfromfile{demonstrations/pstricks1-nrp.tex}{\texttt{pstricks1.tex} using \cref{lst:noRoundParentheses}}{lst:pstricks1-nrp}
@@ -52,12 +52,13 @@
 		\cmhlistingsfromfile[style=yaml-LST]*{demonstrations/noRoundParentheses.yaml}[yaml-TCB]{\texttt{noRoundParentheses.yaml}}{lst:noRoundParentheses}
 	\end{cmhtcbraster}
 
-	Notice the difference between \cref{lst:pstricks1-default} and \cref{lst:pstricks1-nrp}; in
-	particular, in \cref{lst:pstricks1-nrp}, because round parentheses are
-	\emph{not} allowed, \texttt{latexindent.pl} finds that the
-	\lstinline!\defFunction! command finishes at the first opening round parenthesis. As such,
-	the remaining braced, mandatory, arguments are found to be \texttt{UnNamedGroupingBracesBrackets} (see \vref{tab:code-blocks}) which,
-	by default, assume indentation for their body, and hence the tabbed indentation in
+	Notice the difference between \cref{lst:pstricks1-default} and \cref{lst:pstricks1-nrp};
+	in particular, in \cref{lst:pstricks1-nrp}, because round parentheses are \emph{not}
+	allowed, \texttt{latexindent.pl} finds that the
+	\lstinline!\defFunction! command finishes at the first opening round parenthesis. As
+	such, the remaining braced, mandatory, arguments are found to be
+	\texttt{UnNamedGroupingBracesBrackets} (see \vref{tab:code-blocks}) which, by default,
+	assume indentation for their body, and hence the tabbed indentation in
 	\cref{lst:pstricks1-nrp}.
 
 	Let's explore this using the YAML given in \cref{lst:defFunction} and run the command
@@ -104,14 +105,13 @@
 		\item the string \lstinline!to! (specified in \texttt{stringsAllowedBetweenArguments})
 		\item the optional argument \lstinline![in=110,out=-90]!
 		\item the string \lstinline!++! (specified in \texttt{stringsAllowedBetweenArguments})
-		\item the round-bracketed argument \lstinline!(0,-0.5cm)! because \texttt{roundParenthesesAllowed} is
-		      $1$ by default
+		\item the round-bracketed argument \lstinline!(0,-0.5cm)! because
+		      \texttt{roundParenthesesAllowed} is $1$ by default
 		\item the string \lstinline!node! (specified in \texttt{stringsAllowedBetweenArguments})
 		\item the optional argument \lstinline![below,align=left,scale=0.5]!
 	\end{itemize}
 
-	We can explore this further, for example using \cref{lst:draw} and running the
-	command
+	We can explore this further, for example using \cref{lst:draw} and running the command
 	\index{switches!-l demonstration}
 	\begin{commandshell}
 latexindent.pl tikz-node1.tex -l draw.yaml  
@@ -127,8 +127,8 @@
 	\cref{lst:tikz-node1-draw} has been given the appropriate two-spaces worth of indentation
 	specified in \cref{lst:draw}.
 
-	Let's compare this with the output from using the YAML settings in
-	\cref{lst:no-strings}, and running the command
+	Let's compare this with the output from using the YAML settings in \cref{lst:no-strings},
+	and running the command
 	\index{switches!-l demonstration}
 	\begin{commandshell}
 latexindent.pl tikz-node1.tex -l no-strings.yaml  
@@ -145,18 +145,19 @@
 		\item the \lstinline!\draw! command finishes after the \lstinline!(c)!, as
 		      \texttt{stringsAllowedBetweenArguments} has been set to $0$ so there are no strings
 		      allowed between arguments;
-		\item it finds a \texttt{namedGroupingBracesBrackets} called \texttt{to} (see \vref{tab:code-blocks}) \emph{with}
-		      argument \lstinline![in=110,out=-90]!
-		\item it finds another \texttt{namedGroupingBracesBrackets} but this time called \texttt{node} with
-		      argument \lstinline![below,align=left,scale=0.5]!
+		\item it finds a \texttt{namedGroupingBracesBrackets} called \texttt{to} (see
+		      \vref{tab:code-blocks}) \emph{with} argument \lstinline![in=110,out=-90]!
+		\item it finds another \texttt{namedGroupingBracesBrackets} but this time called \texttt{node}
+		      with argument \lstinline![below,align=left,scale=0.5]!
 	\end{itemize}
 
 	Referencing \vref{lst:commandCodeBlocks},%
-	\announce{2018-04-27}*{amalgamate feature in commandCodeBlocks}, we see that the first field in the \texttt{stringsAllowedBetweenArguments} is
-	\texttt{amalgamate} and is set to \texttt{1} by default. This is for
-	users who wish to specify their settings in multiple YAML files. For example, by using
-	the settings in either \cref{lst:amalgamate-demo} or\cref{lst:amalgamate-demo1} is equivalent to
-	using the settings in \cref{lst:amalgamate-demo2}.
+	\announce{2018-04-27}*{amalgamate feature in commandCodeBlocks}, we see that the first
+	field in the \texttt{stringsAllowedBetweenArguments} is \texttt{amalgamate} and is set to
+	\texttt{1} by default. This is for users who wish to specify their settings in multiple
+	YAML files. For example, by using the settings in either \cref{lst:amalgamate-demo}
+	or\cref{lst:amalgamate-demo1} is equivalent to using the settings in
+	\cref{lst:amalgamate-demo2}.
 
 	\begin{cmhtcbraster}[raster columns=3,
 			raster left skip=-3.5cm,
@@ -167,18 +168,19 @@
 		\cmhlistingsfromfile[style=yaml-LST]*{demonstrations/amalgamate-demo2.yaml}[yaml-TCB]{\texttt{amalgamate-demo2.yaml}}{lst:amalgamate-demo2}
 	\end{cmhtcbraster}
 
-	We specify \texttt{amalgamate} to be set to \texttt{0} and in which case
-	any settings loaded prior to those specified, including the default, will be overwritten.
-	For example, using the settings in \cref{lst:amalgamate-demo3} means that only the strings
-	specified in that field will be used.
+	We specify \texttt{amalgamate} to be set to \texttt{0} and in which case any settings
+	loaded prior to those specified, including the default, will be overwritten. For example,
+	using the settings in \cref{lst:amalgamate-demo3} means that only the strings specified
+	in that field will be used.
 
 	\cmhlistingsfromfile[style=yaml-LST]*{demonstrations/amalgamate-demo3.yaml}[yaml-TCB]{\texttt{amalgamate-demo3.yaml}}{lst:amalgamate-demo3}
 
-	It is important to note that the \texttt{amalgamate} field, if used, must be in the
-	first field, and specified using the syntax given in \cref{lst:amalgamate-demo1,lst:amalgamate-demo2,lst:amalgamate-demo3}.
+	It is important to note that the \texttt{amalgamate} field, if used, must be in the first
+	field, and specified using the syntax given in
+	\cref{lst:amalgamate-demo1,lst:amalgamate-demo2,lst:amalgamate-demo3}.
 
-	We may explore this feature further with the code in \cref{lst:for-each}, whose
-	default output is given in \cref{lst:for-each-default}.
+	We may explore this feature further with the code in \cref{lst:for-each}, whose default
+	output is given in \cref{lst:for-each-default}.
 
 	\begin{cmhtcbraster}[raster column skip=.1\linewidth]
 		\cmhlistingsfromfile{demonstrations/for-each.tex}{\texttt{for-each.tex}}{lst:for-each}
@@ -185,8 +187,8 @@
 		\cmhlistingsfromfile{demonstrations/for-each-default.tex}{\texttt{for-each} default output}{lst:for-each-default}
 	\end{cmhtcbraster}
 
-	Let's compare this with the output from using the YAML settings in
-	\cref{lst:foreach}, and running the command
+	Let's compare this with the output from using the YAML settings in \cref{lst:foreach},
+	and running the command
 	\index{switches!-l demonstration}
 	\begin{commandshell}
 latexindent.pl for-each.tex -l foreach.yaml  
@@ -200,24 +202,24 @@
 
 	You might like to compare the output given in \cref{lst:for-each-default} and
 	\cref{lst:for-each-mod1}. Note,in particular, in \cref{lst:for-each-default} that the
-	\texttt{foreach} command has not included any of the subsequent strings, and that
-	the braces have been treated as a \texttt{namedGroupingBracesBrackets}. In \cref{lst:for-each-mod1} the
-	\texttt{foreach} command has been allowed to have \lstinline!\x/\y! and
-	\texttt{in} between arguments because of the settings given in
-	\cref{lst:foreach}.
+	\texttt{foreach} command has not included any of the subsequent strings, and that the
+	braces have been treated as a \texttt{namedGroupingBracesBrackets}. In
+	\cref{lst:for-each-mod1} the \texttt{foreach} command has been allowed to have
+	\lstinline!\x/\y! and \texttt{in} between arguments because of the settings given
+	in \cref{lst:foreach}.
 
 \yamltitle{commandNameSpecial}*{fields}
 	There are some special command names%
 	\announce{2018-04-27}*{commandNameSpecial} that do not fit within the names recognised by
 	\texttt{latexindent.pl}, the first one of which is \lstinline!\@ifnextchar[!. From the
-	perspective of \texttt{latexindent.pl}, the whole of the text \lstinline!\@ifnextchar[! is
-	a command, because it is immediately followed by sets of mandatory arguments. However,
-	without the \texttt{commandNameSpecial} field, \texttt{latexindent.pl} would not be able to
-	label it as such, because the \lstinline![! is, necessarily, not matched by a
-	closing \lstinline!]!.
+	perspective of \texttt{latexindent.pl}, the whole of the text \lstinline!\@ifnextchar[!
+	is a command, because it is immediately followed by sets of mandatory arguments. However,
+	without the \texttt{commandNameSpecial} field, \texttt{latexindent.pl} would not be able
+	to label it as such, because the \lstinline![! is, necessarily, not matched by a closing
+	\lstinline!]!.
 
-	For example, consider the sample file in \cref{lst:ifnextchar}, which has default
-	output in \cref{lst:ifnextchar-default}.
+	For example, consider the sample file in \cref{lst:ifnextchar}, which has default output
+	in \cref{lst:ifnextchar-default}.
 
 	\begin{cmhtcbraster}[raster column skip=.1\linewidth]
 		\cmhlistingsfromfile{demonstrations/ifnextchar.tex}{\texttt{ifnextchar.tex}}{lst:ifnextchar}
@@ -224,17 +226,18 @@
 		\cmhlistingsfromfile{demonstrations/ifnextchar-default.tex}{\texttt{ifnextchar.tex} default output}{lst:ifnextchar-default}
 	\end{cmhtcbraster}
 
-	Notice that in \cref{lst:ifnextchar-default} the \texttt{parbox} command has been able
-	to indent its body, because \texttt{latexindent.pl} has successfully found the command
+	Notice that in \cref{lst:ifnextchar-default} the \texttt{parbox} command has been able to
+	indent its body, because \texttt{latexindent.pl} has successfully found the command
 	\lstinline!\@ifnextchar! first; the pattern-matching of \texttt{latexindent.pl} starts
-	from \emph{the inner most <thing> and works outwards}, discussed in more detail on \cpageref{page:phases}.
+	from \emph{the inner most <thing> and works outwards}, discussed in more detail on
+	\cpageref{page:phases}.
 
-	For demonstration, we can compare this output with that given in \cref{lst:ifnextchar-off}
-	in which the settings from \cref{lst:no-ifnextchar} have dictated that no special command
-	names, including the \lstinline!\@ifnextchar[! command, should not be searched for
-	specially; as such, the \texttt{parbox} command has been \emph{unable}
-	to indent its body successfully, because the \lstinline!\@ifnextchar[! command has not been
-	found.
+	For demonstration, we can compare this output with that given in
+	\cref{lst:ifnextchar-off} in which the settings from \cref{lst:no-ifnextchar} have
+	dictated that no special command names, including the \lstinline!\@ifnextchar[! command,
+	should not be searched for specially; as such, the \texttt{parbox} command has been
+	\emph{unable} to indent its body successfully, because the \lstinline!\@ifnextchar[!
+	command has not been found.
 
 	\begin{cmhtcbraster}[raster column skip=.1\linewidth]
 		\cmhlistingsfromfile{demonstrations/ifnextchar-off.tex}{\texttt{ifnextchar.tex} using \cref{lst:no-ifnextchar}}{lst:ifnextchar-off}
@@ -242,8 +245,8 @@
 	\end{cmhtcbraster}
 
 	The \texttt{amalgamate} field can be used for \texttt{commandNameSpecial}, just as for
-	\texttt{stringsAllowedBetweenArguments}. The same condition holds as stated previously, which we state
-	again here:
+	\texttt{stringsAllowedBetweenArguments}. The same condition holds as stated previously,
+	which we state again here:
 	\index{warning!amalgamate field}
 
 	\begin{warning}

Deleted: trunk/Master/texmf-dist/doc/support/latexindent/subsec-conflicting-poly-switches.tex
===================================================================
--- trunk/Master/texmf-dist/doc/support/latexindent/subsec-conflicting-poly-switches.tex	2021-08-01 02:06:28 UTC (rev 60131)
+++ trunk/Master/texmf-dist/doc/support/latexindent/subsec-conflicting-poly-switches.tex	2021-08-01 20:35:09 UTC (rev 60132)
@@ -1,170 +0,0 @@
-% arara: pdflatex: {shell: yes, files: [latexindent]}
-\subsection{Conflicting poly-switches: sequential code blocks}
-	It is very easy to have conflicting poly-switches; if we use the example from
-	\vref{lst:mycommand1}, and consider the YAML settings given in \cref{lst:mycom-mlb4}.
-	The output from running
-	\index{poly-switches!conflicting switches}
-	\index{switches!-l demonstration}
-	\index{switches!-m demonstration}
-	\begin{commandshell}
-latexindent.pl -m -l=mycom-mlb4.yaml mycommand1.tex
-\end{commandshell}
-	is given in \cref{lst:mycom-mlb4}.
-
-	\begin{cmhtcbraster}
-		\cmhlistingsfromfile{demonstrations/mycommand1-mlb4.tex}{\texttt{mycommand1.tex} using \cref{lst:mycom-mlb4}}{lst:mycommand1-mlb4}
-		\cmhlistingsfromfile[style=yaml-LST]*{demonstrations/mycom-mlb4.yaml}[MLB-TCB,width=\linewidth]{\texttt{mycom-mlb4.yaml}}{lst:mycom-mlb4}
-	\end{cmhtcbraster}
-
-	Studying \cref{lst:mycom-mlb4}, we see that the two poly-switches are at opposition with
-	one another:
-	\begin{itemize}
-		\item on the one hand, \texttt{LCuBStartsOnOwnLine} should \emph{not} start on its own line
-		      (as poly-switch is set to $-1$);
-		\item on the other hand, \texttt{RCuBFinishesWithLineBreak} \emph{should} finish with a line break.
-	\end{itemize}
-	So, which should win the conflict? As demonstrated in \cref{lst:mycommand1-mlb4}, it is clear
-	that \texttt{LCuBStartsOnOwnLine} won this conflict, and the reason is that
-	\emph{the second argument was processed after the first} -- in general, the most recently-processed code block and
-	associated poly-switch takes priority.
-
-	We can explore this further by considering the YAML settings in \cref{lst:mycom-mlb5};
-	upon running the command
-	\index{switches!-l demonstration}
-	\index{switches!-m demonstration}
-	\begin{commandshell}
-latexindent.pl -m -l=mycom-mlb5.yaml mycommand1.tex
-\end{commandshell}
-	we obtain the output given in \cref{lst:mycommand1-mlb5}.
-
-	\begin{cmhtcbraster}[raster column skip=.1\linewidth]
-		\cmhlistingsfromfile{demonstrations/mycommand1-mlb5.tex}{\texttt{mycommand1.tex} using \cref{lst:mycom-mlb5}}{lst:mycommand1-mlb5}
-		\cmhlistingsfromfile[style=yaml-LST]*{demonstrations/mycom-mlb5.yaml}[MLB-TCB,width=\linewidth]{\texttt{mycom-mlb5.yaml}}{lst:mycom-mlb5}
-	\end{cmhtcbraster}
-
-	As previously, the most-recently-processed code block takes priority -- as before, the
-	second (i.e, \emph{last}) argument. Exploring this further, we consider the
-	YAML settings in \cref{lst:mycom-mlb6}, which give associated output in
-	\cref{lst:mycommand1-mlb6}.
-
-	\begin{cmhtcbraster}[raster column skip=.1\linewidth]
-		\cmhlistingsfromfile{demonstrations/mycommand1-mlb6.tex}{\texttt{mycommand1.tex} using \cref{lst:mycom-mlb6}}{lst:mycommand1-mlb6}
-		\cmhlistingsfromfile[style=yaml-LST]*{demonstrations/mycom-mlb6.yaml}[MLB-TCB,width=\linewidth]{\texttt{mycom-mlb6.yaml}}{lst:mycom-mlb6}
-	\end{cmhtcbraster}
-
-	Note that a \lstinline!%! \emph{has} been added to the trailing
-	first \lstinline!}!; this is because:
-	\begin{itemize}
-		\item while processing the \emph{first} argument, the trailing line break has been
-		      removed (\texttt{RCuBFinishesWithLineBreak} set to $-1$);
-		\item while processing the \emph{second} argument, \texttt{latexindent.pl} finds that
-		      it does \emph{not} begin on its own line, and so because
-		      \texttt{LCuBStartsOnOwnLine} is set to $2$, it adds a comment, followed by a
-		      line break.
-	\end{itemize}
-
-\subsection{Conflicting poly-switches: nested code blocks}
-	Now let's consider an example when nested code blocks have conflicting poly-switches;
-	we'll use the code in \cref{lst:nested-env}, noting that it contains nested
-	environments.
-	\index{poly-switches!conflicting switches}
-
-	\cmhlistingsfromfile{demonstrations/nested-env.tex}{\texttt{nested-env.tex}}{lst:nested-env}
-
-	Let's use the YAML settings given in \cref{lst:nested-env-mlb1-yaml}, which upon running the
-	command
-	\index{switches!-l demonstration}
-	\index{switches!-m demonstration}
-	\begin{commandshell}
-latexindent.pl -m -l=nested-env-mlb1.yaml nested-env.tex
-\end{commandshell}
-	gives the output in \cref{lst:nested-env-mlb1}.
-
-	\begin{cmhtcbraster}[raster column skip=.05\linewidth]
-		\cmhlistingsfromfile{demonstrations/nested-env-mlb1.tex}{\texttt{nested-env.tex} using \cref{lst:nested-env-mlb1-yaml}}{lst:nested-env-mlb1}
-		\cmhlistingsfromfile[style=yaml-LST]*{demonstrations/nested-env-mlb1.yaml}[MLB-TCB,width=\linewidth]{\texttt{nested-env-mlb1.yaml}}{lst:nested-env-mlb1-yaml}
-	\end{cmhtcbraster}
-
-	In \cref{lst:nested-env-mlb1}, let's first of all note that both environments have received
-	the appropriate (default) indentation; secondly, note that the poly-switch
-	\texttt{EndStartsOnOwnLine} appears to have won the conflict, as \lstinline!\end{one}! has
-	had its leading line break removed.
-
-	To understand it, let's talk about the three basic phases \label{page:phases}of
-	\texttt{latexindent.pl}:
-	\begin{enumerate}
-		\item Phase 1: packing, in which code blocks are replaced with unique ids, working from
-		      \emph{the inside to the outside}, and then sequentially -- for example, in \cref{lst:nested-env},
-		      the \texttt{two} environment is found \emph{before} the
-		      \texttt{one} environment; if the -m switch is active, then during this phase:
-		      \begin{itemize}
-			      \item line breaks at the beginning of the \texttt{body} can be added (if
-			            \texttt{BodyStartsOnOwnLine} is $1$ or $2$) or removed (if
-			            \texttt{BodyStartsOnOwnLine} is $-1$);
-			      \item line breaks at the end of the body can be added (if \texttt{EndStartsOnOwnLine} is
-			            $1$ or $2$) or removed (if \texttt{EndStartsOnOwnLine} is
-			            $-1$);
-			      \item line breaks after the end statement can be added (if \texttt{EndFinishesWithLineBreak} is
-			            $1$ or $2$).
-		      \end{itemize}
-		\item Phase 2: indentation, in which white space is added to the begin, body, and end
-		      statements;
-		\item Phase 3: unpacking, in which unique ids are replaced by their \emph{indented} code
-		      blocks; if the -m switch is active, then during this phase,
-		      \begin{itemize}
-			      \item line breaks before \texttt{begin} statements can be added or removed (depending
-			            upon \texttt{BeginStartsOnOwnLine});
-			      \item line breaks after \emph{end} statements can be removed but
-			            \emph{NOT} added (see \texttt{EndFinishesWithLineBreak}).
-		      \end{itemize}
-	\end{enumerate}
-
-	With reference to \cref{lst:nested-env-mlb1}, this means that during Phase 1:
-	\begin{itemize}
-		\item the \texttt{two} environment is found first, and the line break ahead of the
-		      \lstinline!\end{two}! statement is removed because \texttt{EndStartsOnOwnLine} is set to
-		      $-1$. Importantly, because, \emph{at this stage},
-		      \lstinline!\end{two}! \emph{does} finish with a line break,
-		      \texttt{EndFinishesWithLineBreak} causes no action.
-		\item next, the \texttt{one} environment is found; the line break ahead of
-		      \lstinline!\end{one}! is removed because \texttt{EndStartsOnOwnLine} is set to
-		      $-1$.
-	\end{itemize}
-	The indentation is done in Phase 2; in Phase 3 \emph{there is no option to add a line break after the \lstinline!end! statements}. We can justify
-	this by remembering that during Phase 3, the \texttt{one} environment will be
-	found and processed first, followed by the \texttt{two} environment. If the
-	\texttt{two} environment were to add a line break after the
-	\lstinline!\end{two}! statement, then \texttt{latexindent.pl} would have no way of
-	knowing how much indentation to add to the subsequent text (in this case,
-	\lstinline!\end{one}!).
-
-	We can explore this further using the poly-switches in \cref{lst:nested-env-mlb2}; upon
-	running the command
-	\index{switches!-l demonstration}
-	\index{switches!-m demonstration}
-	\begin{commandshell}
-latexindent.pl -m -l=nested-env-mlb2.yaml nested-env.tex
-\end{commandshell}
-	we obtain the output given in \cref{lst:nested-env-mlb2-output}.
-
-	\begin{cmhtcbraster}
-		\cmhlistingsfromfile{demonstrations/nested-env-mlb2.tex}{\texttt{nested-env.tex} using \cref{lst:nested-env-mlb2}}{lst:nested-env-mlb2-output}
-		\cmhlistingsfromfile[style=yaml-LST]*{demonstrations/nested-env-mlb2.yaml}[MLB-TCB,width=\linewidth]{\texttt{nested-env-mlb2.yaml}}{lst:nested-env-mlb2}
-	\end{cmhtcbraster}
-
-	During Phase 1:
-	\begin{itemize}
-		\item the \texttt{two} environment is found first, and the line break ahead of the
-		      \lstinline!\end{two}! statement is not changed because \texttt{EndStartsOnOwnLine} is set to
-		      $1$. Importantly, because, \emph{at this stage},
-		      \lstinline!\end{two}! \emph{does} finish with a line break,
-		      \texttt{EndFinishesWithLineBreak} causes no action.
-		\item next, the \texttt{one} environment is found; the line break ahead of
-		      \lstinline!\end{one}! is already present, and no action is needed.
-	\end{itemize}
-	The indentation is done in Phase 2, and then in Phase 3, the \texttt{one}
-	environment is found and processed first, followed by the \texttt{two}
-	environment. \emph{At this stage}, the \texttt{two} environment finds
-	\texttt{EndFinishesWithLineBreak} is $-1$, so it removes the trailing line break;
-	remember, at this point, \texttt{latexindent.pl} has completely finished with the
-	\texttt{one} environment.

Modified: trunk/Master/texmf-dist/doc/support/latexindent/subsec-noAdditionalIndent-indentRules.tex
===================================================================
--- trunk/Master/texmf-dist/doc/support/latexindent/subsec-noAdditionalIndent-indentRules.tex	2021-08-01 02:06:28 UTC (rev 60131)
+++ trunk/Master/texmf-dist/doc/support/latexindent/subsec-noAdditionalIndent-indentRules.tex	2021-08-01 20:35:09 UTC (rev 60132)
@@ -8,12 +8,15 @@
 \subsection{noAdditionalIndent and indentRules}\label{sec:noadd-indent-rules}
 	\texttt{latexindent.pl} operates on files by looking for code blocks, as detailed in
 	\vref{subsubsec:code-blocks};
-	for each type of code block in \vref{tab:code-blocks} (which we will call a \emph{$\langle$thing$\rangle$} in what follows) it searches YAML fields for
-	information in the following order:
+	for each type of code block in \vref{tab:code-blocks} (which we will call a
+	\emph{$\langle$thing$\rangle$} in what follows) it searches YAML fields for information
+	in the following order:
 	\begin{enumerate}
-		\item \texttt{noAdditionalIndent} for the \emph{name} of the current \emph{$\langle$thing$\rangle$};
+		\item \texttt{noAdditionalIndent} for the \emph{name} of the current
+		      \emph{$\langle$thing$\rangle$};
 		\item \texttt{indentRules} for the \emph{name} of the current \emph{$\langle$thing$\rangle$};
-		\item \texttt{noAdditionalIndentGlobal} for the \emph{type} of the current \emph{$\langle$thing$\rangle$};
+		\item \texttt{noAdditionalIndentGlobal} for the \emph{type} of the current
+		      \emph{$\langle$thing$\rangle$};
 		\item \texttt{indentRulesGlobal} for the \emph{type} of the current
 		      \emph{$\langle$thing$\rangle$}.
 	\end{enumerate}
@@ -21,8 +24,9 @@
 	Using the above list, the first piece of information to be found will be used; failing
 	that, the value of \texttt{defaultIndent} is used. If information is found in multiple
 	fields, the first one according to the list above will be used; for example, if
-	information is present in both \texttt{indentRules} and in \texttt{noAdditionalIndentGlobal}, then
-	the information from \texttt{indentRules} takes priority.
+	information is present in both \texttt{indentRules} and in
+	\texttt{noAdditionalIndentGlobal}, then the information from \texttt{indentRules} takes
+	priority.
 
 	We now present details for the different type of code blocks known to
 	\texttt{latexindent.pl}, as detailed in \vref{tab:code-blocks}; for reference, there

Added: trunk/Master/texmf-dist/doc/support/latexindent/subsec-one-sentence-per-line.tex
===================================================================
--- trunk/Master/texmf-dist/doc/support/latexindent/subsec-one-sentence-per-line.tex	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/support/latexindent/subsec-one-sentence-per-line.tex	2021-08-01 20:35:09 UTC (rev 60132)
@@ -0,0 +1,404 @@
+% arara: pdflatex: {shell: yes, files: [latexindent]}
+\subsection{oneSentencePerLine: modifying line breaks for sentences}\label{sec:onesentenceperline}
+
+	You can instruct \texttt{latexindent.pl} to format%
+	\announce{2018-01-13}{one sentence per line} your file so that it puts one sentence per
+	line. Thank you to \cite{mlep} for helping to shape and test this feature. The behaviour
+	of this part of the script is controlled by the switches detailed in
+	\cref{lst:oneSentencePerLine}, all of which we discuss next.
+	\index{modifying linebreaks! by using one sentence per line}
+	\index{sentences!oneSentencePerLine}
+	\index{sentences!one sentence per line}
+	\index{regular expressions!lowercase alph a-z}
+	\index{regular expressions!uppercase alph A-Z}
+
+	\cmhlistingsfromfile[style=oneSentencePerLine]*{../defaultSettings.yaml}[MLB-TCB,width=.85\linewidth,before=\centering]{\texttt{oneSentencePerLine}}{lst:oneSentencePerLine}
+
+\yamltitle{manipulateSentences}{0|1}
+	This is a binary switch that details if \texttt{latexindent.pl} should perform the
+	sentence manipulation routine; it is \emph{off} (set to \texttt{0}) by default, and you
+	will need to turn it on (by setting it to \texttt{1}) if you want the script to modify
+	line breaks surrounding and within sentences.
+
+\yamltitle{removeSentenceLineBreaks}{0|1}
+	When operating upon sentences \texttt{latexindent.pl} will, by default, remove internal
+	line breaks as \texttt{removeSentenceLineBreaks} is set to \texttt{1}. Setting this
+	switch to \texttt{0} instructs \texttt{latexindent.pl} not to do so.
+	\index{sentences!removing sentence line breaks}
+
+	For example, consider \texttt{multiple-sentences.tex} shown in
+	\cref{lst:multiple-sentences}.
+
+	\cmhlistingsfromfile{demonstrations/multiple-sentences.tex}{\texttt{multiple-sentences.tex}}{lst:multiple-sentences}
+
+	If we use the YAML files in
+	\cref{lst:manipulate-sentences-yaml,lst:keep-sen-line-breaks-yaml}, and run the commands
+	\index{switches!-l demonstration}
+	\index{switches!-m demonstration}
+	\begin{widepage}
+		\begin{commandshell}
+latexindent.pl multiple-sentences -m -l=manipulate-sentences.yaml
+latexindent.pl multiple-sentences -m -l=keep-sen-line-breaks.yaml
+\end{commandshell}
+	\end{widepage}
+	then we obtain the respective output given in
+	\cref{lst:multiple-sentences-mod1,lst:multiple-sentences-mod2}.
+
+	\begin{cmhtcbraster}
+		\cmhlistingsfromfile{demonstrations/multiple-sentences-mod1.tex}{\texttt{multiple-sentences.tex} using \cref{lst:manipulate-sentences-yaml}}{lst:multiple-sentences-mod1}
+		\cmhlistingsfromfile[style=yaml-LST]*{demonstrations/manipulate-sentences.yaml}[MLB-TCB]{\texttt{manipulate-sentences.yaml}}{lst:manipulate-sentences-yaml}
+	\end{cmhtcbraster}
+
+	\begin{cmhtcbraster}
+		\cmhlistingsfromfile{demonstrations/multiple-sentences-mod2.tex}{\texttt{multiple-sentences.tex} using \cref{lst:keep-sen-line-breaks-yaml}}{lst:multiple-sentences-mod2}
+		\cmhlistingsfromfile[style=yaml-LST]*{demonstrations/keep-sen-line-breaks.yaml}[MLB-TCB]{\texttt{keep-sen-line-breaks.yaml}}{lst:keep-sen-line-breaks-yaml}
+	\end{cmhtcbraster}
+
+	Notice, in particular, that the `internal' sentence line breaks in
+	\cref{lst:multiple-sentences} have been removed in \cref{lst:multiple-sentences-mod1},
+	but have not been removed in \cref{lst:multiple-sentences-mod2}.
+
+	The remainder of the settings displayed in \vref{lst:oneSentencePerLine} instruct
+	\texttt{latexindent.pl} on how to define a sentence. From the perspective of
+	\texttt{latexindent.pl} a sentence must:
+	\index{sentences!follow}
+	\index{sentences!begin with}
+	\index{sentences!end with}
+	\begin{itemize}
+		\item \emph{follow} a certain character or set of characters (see
+		      \cref{lst:sentencesFollow}); by default, this is either \lstinline!\par!, a
+		      blank line, a full stop/period (.), exclamation mark (!), question mark (?) right brace
+		      (\}) or a comment on the previous line;
+		\item \emph{begin} with a character type (see \cref{lst:sentencesBeginWith}); by
+		      default, this is only capital letters;
+		\item \emph{end} with a character (see \cref{lst:sentencesEndWith}); by
+		      default, these are full stop/period (.), exclamation mark (!) and question mark (?).
+	\end{itemize}
+	In each case, you can specify the \texttt{other} field to include any pattern that you
+	would like; you can specify anything in this field using the language of regular
+	expressions.
+	\index{regular expressions!lowercase alph a-z}
+	\index{regular expressions!uppercase alph A-Z}
+
+	\begin{cmhtcbraster}[raster columns=3,
+			raster left skip=-3.5cm,
+			raster right skip=-2cm,
+			raster column skip=.06\linewidth]
+		\cmhlistingsfromfile[style=sentencesFollow]*{../defaultSettings.yaml}[MLB-TCB,width=.9\linewidth,before=\centering]{\texttt{sentencesFollow}}{lst:sentencesFollow}
+		\cmhlistingsfromfile[style=sentencesBeginWith]*{../defaultSettings.yaml}[MLB-TCB,width=.9\linewidth,before=\centering]{\texttt{sentencesBeginWith}}{lst:sentencesBeginWith}
+		\cmhlistingsfromfile[style=sentencesEndWith]*{../defaultSettings.yaml}[MLB-TCB,width=.9\linewidth,before=\centering]{\texttt{sentencesEndWith}}{lst:sentencesEndWith}
+	\end{cmhtcbraster}
+
+\subsubsection{sentencesFollow}
+	Let's explore a few of the switches in \texttt{sentencesFollow}; let's start with
+	\vref{lst:multiple-sentences}, and use the YAML settings given in
+	\cref{lst:sentences-follow1-yaml}. Using the command
+	\index{sentences!follow}
+	\index{switches!-l demonstration}
+	\index{switches!-m demonstration}
+	\begin{commandshell}
+latexindent.pl multiple-sentences -m -l=sentences-follow1.yaml
+\end{commandshell}
+	we obtain the output given in \cref{lst:multiple-sentences-mod3}.
+
+	\begin{cmhtcbraster}
+		\cmhlistingsfromfile{demonstrations/multiple-sentences-mod3.tex}{\texttt{multiple-sentences.tex} using \cref{lst:sentences-follow1-yaml}}{lst:multiple-sentences-mod3}
+		\cmhlistingsfromfile[style=yaml-LST]*{demonstrations/sentences-follow1.yaml}[MLB-TCB]{\texttt{sentences-follow1.yaml}}{lst:sentences-follow1-yaml}
+	\end{cmhtcbraster}
+
+	Notice that, because \texttt{blankLine} is set to \texttt{0}, \texttt{latexindent.pl}
+	will not seek sentences following a blank line, and so the fourth sentence has not been
+	accounted for.
+
+	We can explore the \texttt{other} field in \cref{lst:sentencesFollow} with the
+	\texttt{.tex} file detailed in \cref{lst:multiple-sentences1}.
+
+	\cmhlistingsfromfile{demonstrations/multiple-sentences1.tex}{\texttt{multiple-sentences1.tex}}{lst:multiple-sentences1}
+
+	Upon running the following commands
+	\index{switches!-l demonstration}
+	\index{switches!-m demonstration}
+	\begin{widepage}
+		\begin{commandshell}
+latexindent.pl multiple-sentences1 -m -l=manipulate-sentences.yaml
+latexindent.pl multiple-sentences1 -m -l=manipulate-sentences.yaml,sentences-follow2.yaml
+\end{commandshell}
+	\end{widepage}
+	then we obtain the respective output given in
+	\cref{lst:multiple-sentences1-mod1,lst:multiple-sentences1-mod2}.
+	\cmhlistingsfromfile{demonstrations/multiple-sentences1-mod1.tex}{\texttt{multiple-sentences1.tex} using \vref{lst:manipulate-sentences-yaml}}{lst:multiple-sentences1-mod1}
+
+	\begin{cmhtcbraster}[
+			raster force size=false,
+			raster column 1/.style={add to width=1cm},
+		]
+		\cmhlistingsfromfile{demonstrations/multiple-sentences1-mod2.tex}{\texttt{multiple-sentences1.tex} using \cref{lst:sentences-follow2-yaml}}{lst:multiple-sentences1-mod2}
+		\cmhlistingsfromfile[style=yaml-LST]*{demonstrations/sentences-follow2.yaml}[MLB-TCB,width=.45\textwidth]{\texttt{sentences-follow2.yaml}}{lst:sentences-follow2-yaml}
+	\end{cmhtcbraster}
+
+	Notice that in \cref{lst:multiple-sentences1-mod1} the first sentence after the
+	\texttt{)} has not been accounted for, but that following the inclusion of
+	\cref{lst:sentences-follow2-yaml}, the output given in
+	\cref{lst:multiple-sentences1-mod2} demonstrates that the sentence \emph{has} been
+	accounted for correctly.
+
+\subsubsection{sentencesBeginWith}
+	By default, \texttt{latexindent.pl} will only assume that sentences begin with the upper
+	case letters \texttt{A-Z}; you can instruct the script to define sentences to begin with
+	lower case letters (see \cref{lst:sentencesBeginWith}), and we can use the \texttt{other}
+	field to define sentences to begin with other characters.
+	\index{sentences!begin with}
+
+	\cmhlistingsfromfile{demonstrations/multiple-sentences2.tex}{\texttt{multiple-sentences2.tex}}{lst:multiple-sentences2}
+
+	Upon running the following commands
+	\index{switches!-l demonstration}
+	\index{switches!-m demonstration}
+	\begin{widepage}
+		\begin{commandshell}
+latexindent.pl multiple-sentences2 -m -l=manipulate-sentences.yaml
+latexindent.pl multiple-sentences2 -m -l=manipulate-sentences.yaml,sentences-begin1.yaml
+\end{commandshell}
+	\end{widepage}
+	then we obtain the respective output given in
+	\cref{lst:multiple-sentences2-mod1,lst:multiple-sentences2-mod2}.
+	\cmhlistingsfromfile{demonstrations/multiple-sentences2-mod1.tex}{\texttt{multiple-sentences2.tex} using \vref{lst:manipulate-sentences-yaml}}{lst:multiple-sentences2-mod1}
+	\index{regular expressions!numeric 0-9}
+
+	\begin{cmhtcbraster}[
+			raster force size=false,
+			raster column 1/.style={add to width=1cm},
+		]
+		\cmhlistingsfromfile{demonstrations/multiple-sentences2-mod2.tex}{\texttt{multiple-sentences2.tex} using \cref{lst:sentences-begin1-yaml}}{lst:multiple-sentences2-mod2}
+		\cmhlistingsfromfile[style=yaml-LST]*{demonstrations/sentences-begin1.yaml}[MLB-TCB,width=.45\textwidth]{\texttt{sentences-begin1.yaml}}{lst:sentences-begin1-yaml}
+	\end{cmhtcbraster}
+	Notice that in \cref{lst:multiple-sentences2-mod1}, the first sentence has been accounted
+	for but that the subsequent sentences have not. In \cref{lst:multiple-sentences2-mod2},
+	all of the sentences have been accounted for, because the \texttt{other} field in
+	\cref{lst:sentences-begin1-yaml} has defined sentences to begin with either
+	\lstinline!$! or any numeric digit, \texttt{0} to
+	\texttt{9}.
+
+\subsubsection{sentencesEndWith}
+	Let's return to \vref{lst:multiple-sentences}; we have already seen the default way in
+	which \texttt{latexindent.pl} will operate on the sentences in this file in
+	\vref{lst:multiple-sentences-mod1}. We can populate the \texttt{other} field with any
+	character that we wish; for example, using the YAML specified in
+	\cref{lst:sentences-end1-yaml} and the command
+	\index{sentences!end with}
+	\index{switches!-l demonstration}
+	\index{switches!-m demonstration}
+	\begin{commandshell}
+latexindent.pl multiple-sentences -m -l=sentences-end1.yaml
+latexindent.pl multiple-sentences -m -l=sentences-end2.yaml
+\end{commandshell}
+	then we obtain the output in \cref{lst:multiple-sentences-mod4}.
+	\index{regular expressions!lowercase alph a-z}
+
+	\begin{cmhtcbraster}
+		\cmhlistingsfromfile{demonstrations/multiple-sentences-mod4.tex}{\texttt{multiple-sentences.tex} using \cref{lst:sentences-end1-yaml}}{lst:multiple-sentences-mod4}
+		\cmhlistingsfromfile[style=yaml-LST]*{demonstrations/sentences-end1.yaml}[MLB-TCB]{\texttt{sentences-end1.yaml}}{lst:sentences-end1-yaml}
+	\end{cmhtcbraster}
+
+	\begin{cmhtcbraster}
+		\cmhlistingsfromfile{demonstrations/multiple-sentences-mod5.tex}{\texttt{multiple-sentences.tex} using \cref{lst:sentences-end2-yaml}}{lst:multiple-sentences-mod5}
+		\cmhlistingsfromfile[style=yaml-LST]*{demonstrations/sentences-end2.yaml}[MLB-TCB]{\texttt{sentences-end2.yaml}}{lst:sentences-end2-yaml}
+	\end{cmhtcbraster}
+
+	There is a subtle difference between the output in
+	\cref{lst:multiple-sentences-mod4,lst:multiple-sentences-mod5}; in particular, in
+	\cref{lst:multiple-sentences-mod4} the word \texttt{sentence} has not been defined as a
+	sentence, because we have not instructed \texttt{latexindent.pl} to begin sentences with
+	lower case letters. We have changed this by using the settings in
+	\cref{lst:sentences-end2-yaml}, and the associated output in
+	\cref{lst:multiple-sentences-mod5} reflects this.
+
+	Referencing \vref{lst:sentencesEndWith}, you'll notice that there is a field called
+	\texttt{basicFullStop}, which is set to \texttt{0}, and that the \texttt{betterFullStop}
+	is set to \texttt{1} by default.
+
+	Let's consider the file shown in \cref{lst:url}.
+
+	\cmhlistingsfromfile{demonstrations/url.tex}{\texttt{url.tex}}{lst:url}
+
+	Upon running the following commands
+	\index{switches!-l demonstration}
+	\index{switches!-m demonstration}
+	\begin{commandshell}
+latexindent.pl url -m -l=manipulate-sentences.yaml
+\end{commandshell}
+	we obtain the output given in \cref{lst:url-mod1}.
+
+	\cmhlistingsfromfile{demonstrations/url-mod1.tex}{\texttt{url.tex} using \vref{lst:manipulate-sentences-yaml}}{lst:url-mod1}
+
+	Notice that the full stop within the url has been interpreted correctly. This is because,
+	within the \texttt{betterFullStop}, full stops at the end of sentences have the following
+	properties:
+	\begin{itemize}
+		\item they are ignored within \texttt{e.g.} and \texttt{i.e.};
+		\item they can not be immediately followed by a lower case or upper case letter;
+		\item they can not be immediately followed by a hyphen, comma, or number.
+	\end{itemize}
+	If you find that the \texttt{betterFullStop} does not work for your purposes, then you
+	can switch it off by setting it to \texttt{0}, and you can experiment with the
+	\texttt{other} field.%
+	\announce{2019-07-13}{fine tuning the betterFullStop} You can also seek to customise the \texttt{betterFullStop}
+	routine by using the \emph{fine tuning}, detailed in \vref{lst:fineTuning}.
+
+	The \texttt{basicFullStop} routine should probably be avoided in most situations, as it
+	does not accommodate the specifications above. For example, using the following command
+	\index{switches!-l demonstration}
+	\index{switches!-m demonstration}
+	\begin{commandshell}
+latexindent.pl url -m -l=alt-full-stop1.yaml
+\end{commandshell}
+	and the YAML in \cref{lst:alt-full-stop1-yaml} gives the output in \cref{lst:url-mod2}.
+
+	\begin{cmhtcbraster}[ raster left skip=-3.5cm,
+			raster right skip=-2cm,
+			raster force size=false,
+			raster column 1/.style={add to width=.1\textwidth},
+			raster column skip=.06\linewidth]
+		\cmhlistingsfromfile{demonstrations/url-mod2.tex}{\texttt{url.tex} using \cref{lst:alt-full-stop1-yaml}}{lst:url-mod2}
+		\cmhlistingsfromfile[style=yaml-LST]*{demonstrations/alt-full-stop1.yaml}[MLB-TCB,width=.5\textwidth]{\texttt{alt-full-stop1.yaml}}{lst:alt-full-stop1-yaml}
+	\end{cmhtcbraster}
+
+	Notice that the full stop within the URL has not been accommodated correctly because of
+	the non-default settings in \cref{lst:alt-full-stop1-yaml}.
+
+\subsubsection{Features of the oneSentencePerLine routine}
+	The sentence manipulation routine takes place \emph{after} verbatim
+	\index{verbatim!in relation to oneSentencePerLine} environments, preamble and trailing comments have been
+	accounted for; this means that any characters within these types of code blocks will not
+	be part of the sentence manipulation routine.
+
+	For example, if we begin with the \texttt{.tex} file in \cref{lst:multiple-sentences3},
+	and run the command
+	\index{switches!-l demonstration}
+	\index{switches!-m demonstration}
+	\begin{commandshell}
+latexindent.pl multiple-sentences3 -m -l=manipulate-sentences.yaml
+\end{commandshell}
+	then we obtain the output in \cref{lst:multiple-sentences3-mod1}.
+	\cmhlistingsfromfile{demonstrations/multiple-sentences3.tex}{\texttt{multiple-sentences3.tex}}{lst:multiple-sentences3}
+	\cmhlistingsfromfile{demonstrations/multiple-sentences3-mod1.tex}{\texttt{multiple-sentences3.tex} using \vref{lst:manipulate-sentences-yaml}}{lst:multiple-sentences3-mod1}
+
+	Furthermore, if sentences run across environments then, by default, the line breaks
+	internal to the sentence will be removed. For example, if we use the \texttt{.tex} file
+	in \cref{lst:multiple-sentences4} and run the commands
+	\index{switches!-l demonstration}
+	\index{switches!-m demonstration}
+	\begin{commandshell}
+latexindent.pl multiple-sentences4 -m -l=manipulate-sentences.yaml
+latexindent.pl multiple-sentences4 -m -l=keep-sen-line-breaks.yaml
+\end{commandshell}
+	then we obtain the output in
+	\cref{lst:multiple-sentences4-mod1,lst:multiple-sentences4-mod2}.
+	\cmhlistingsfromfile{demonstrations/multiple-sentences4.tex}{\texttt{multiple-sentences4.tex}}{lst:multiple-sentences4}
+	\begin{widepage}
+		\cmhlistingsfromfile{demonstrations/multiple-sentences4-mod1.tex}{\texttt{multiple-sentences4.tex} using \vref{lst:manipulate-sentences-yaml}}{lst:multiple-sentences4-mod1}
+	\end{widepage}
+	\cmhlistingsfromfile{demonstrations/multiple-sentences4-mod2.tex}{\texttt{multiple-sentences4.tex} using \vref{lst:keep-sen-line-breaks-yaml}}{lst:multiple-sentences4-mod2}
+
+	Once you've read \cref{sec:poly-switches}, you will know that you can accommodate the
+	removal of internal sentence line breaks by using the YAML in \cref{lst:item-rules2-yaml}
+	and the command
+	\index{switches!-l demonstration}
+	\index{switches!-m demonstration}
+	\begin{commandshell}
+latexindent.pl multiple-sentences4 -m -l=item-rules2.yaml
+\end{commandshell}
+	the output of which is shown in \cref{lst:multiple-sentences4-mod3}.
+
+	\begin{cmhtcbraster}
+		\cmhlistingsfromfile{demonstrations/multiple-sentences4-mod3.tex}{\texttt{multiple-sentences4.tex} using \cref{lst:item-rules2-yaml}}{lst:multiple-sentences4-mod3}
+		\cmhlistingsfromfile[style=yaml-LST]*{demonstrations/item-rules2.yaml}[MLB-TCB]{\texttt{item-rules2.yaml}}{lst:item-rules2-yaml}
+	\end{cmhtcbraster}
+
+\subsubsection{Text wrapping and indenting sentences}
+	The \texttt{oneSentencePerLine}%
+	\announce{2018-08-13}{oneSentencePerline text wrap and indent} can be instructed to
+	perform text wrapping and indentation upon sentences.
+	\index{sentences!text wrapping}
+	\index{sentences!indenting}
+
+	Let's use the code in \cref{lst:multiple-sentences5}.
+
+	\cmhlistingsfromfile{demonstrations/multiple-sentences5.tex}{\texttt{multiple-sentences5.tex}}{lst:multiple-sentences5}
+
+	Referencing \cref{lst:sentence-wrap1-yaml}, and running the following command
+	\index{switches!-l demonstration}
+	\index{switches!-m demonstration}
+	\begin{commandshell}
+latexindent.pl multiple-sentences5 -m -l=sentence-wrap1.yaml
+\end{commandshell}
+	we receive the output given in \cref{lst:multiple-sentences5-mod1}.
+
+	\begin{cmhtcbraster}[ raster left skip=-3.5cm,
+			raster right skip=-2cm,
+			raster force size=false,
+			raster column 1/.style={add to width=.1\textwidth},
+			raster column skip=.06\linewidth]
+		\cmhlistingsfromfile{demonstrations/multiple-sentences5-mod1.tex}{\texttt{multiple-sentences5.tex} using \cref{lst:sentence-wrap1-yaml}}{lst:multiple-sentences5-mod1}
+		\cmhlistingsfromfile[style=yaml-LST]*{demonstrations/sentence-wrap1.yaml}[MLB-TCB,width=0.5\textwidth]{\texttt{sentence-wrap1.yaml}}{lst:sentence-wrap1-yaml}
+	\end{cmhtcbraster}
+
+	If you wish to specify the \texttt{columns} field on a per-code-block basis for
+	sentences, then you would use \texttt{sentence}; explicitly, starting with
+	\vref{lst:textwrap9-yaml}, for example, you would replace/append \texttt{environments}
+	with, for example, \texttt{sentence: 50}.
+
+	If you specify \texttt{textWrapSentences} as 1, but do \emph{not} specify a value for
+	\texttt{columns} then the text wrapping will \emph{not} operate on sentences, and you
+	will see a warning in \texttt{indent.log}.
+
+	The indentation of sentences requires that sentences are stored as code blocks. This
+	means that you may need to tweak \vref{lst:sentencesEndWith}. Let's explore this in
+	relation to \cref{lst:multiple-sentences6}.
+
+	\cmhlistingsfromfile{demonstrations/multiple-sentences6.tex}{\texttt{multiple-sentences6.tex}}{lst:multiple-sentences6}
+
+	By default, \texttt{latexindent.pl} will find the full-stop within the first
+	\texttt{item}, which means that, upon running the following commands
+	\index{switches!-l demonstration}
+	\index{switches!-m demonstration}
+	\index{switches!-y demonstration}
+	\begin{commandshell}
+latexindent.pl multiple-sentences6 -m -l=sentence-wrap1.yaml 
+latexindent.pl multiple-sentences6 -m -l=sentence-wrap1.yaml -y="modifyLineBreaks:oneSentencePerLine:sentenceIndent:''"
+\end{commandshell}
+	we receive the respective output in \cref{lst:multiple-sentences6-mod1} and
+	\cref{lst:multiple-sentences6-mod2}.
+
+	\cmhlistingsfromfile{demonstrations/multiple-sentences6-mod1.tex}{\texttt{multiple-sentences6-mod1.tex} using \cref{lst:sentence-wrap1-yaml}}{lst:multiple-sentences6-mod1}
+
+	\cmhlistingsfromfile{demonstrations/multiple-sentences6-mod2.tex}{\texttt{multiple-sentences6-mod2.tex} using \cref{lst:sentence-wrap1-yaml} and no sentence indentation}{lst:multiple-sentences6-mod2}
+
+	We note that \cref{lst:multiple-sentences6-mod1} the \texttt{itemize} code block has
+	\emph{not} been indented appropriately. This is because the oneSentencePerLine has been
+	instructed to store sentences (because \cref{lst:sentence-wrap1-yaml}); each sentence is
+	then searched for code blocks.
+
+	We can tweak the settings in \vref{lst:sentencesEndWith} to ensure that full stops are
+	not followed by \texttt{item} commands, and that the end of sentences contains
+	\lstinline!\end{itemize}! as in \cref{lst:itemize-yaml} (if you intend to use this,
+	ensure that you remove the line breaks from the \texttt{other} field).
+	\index{regular expressions!lowercase alph a-z}
+	\index{regular expressions!uppercase alph A-Z}
+	\index{regular expressions!numeric 0-9}
+	\index{regular expressions!horizontal space \textbackslash{h}}
+
+	\cmhlistingsfromfile[style=yaml-LST]*{demonstrations/itemized.yaml}[MLB-TCB]{\texttt{itemize.yaml}}{lst:itemize-yaml}
+
+	Upon running
+	\index{switches!-l demonstration}
+	\index{switches!-m demonstration}
+	\begin{commandshell}
+latexindent.pl multiple-sentences6 -m -l=sentence-wrap1.yaml,itemize.yaml
+\end{commandshell}
+	we receive the output in \cref{lst:multiple-sentences6-mod3}.
+
+	\cmhlistingsfromfile{demonstrations/multiple-sentences6-mod3.tex}{\texttt{multiple-sentences6-mod3.tex} using \cref{lst:sentence-wrap1-yaml} and \cref{lst:itemize-yaml}}{lst:multiple-sentences6-mod3}
+
+	Notice that the sentence has received indentation, and that the \texttt{itemize} code
+	block has been found and indented correctly.


Property changes on: trunk/Master/texmf-dist/doc/support/latexindent/subsec-one-sentence-per-line.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Deleted: trunk/Master/texmf-dist/doc/support/latexindent/subsec-partnering-poly-switches.tex
===================================================================
--- trunk/Master/texmf-dist/doc/support/latexindent/subsec-partnering-poly-switches.tex	2021-08-01 02:06:28 UTC (rev 60131)
+++ trunk/Master/texmf-dist/doc/support/latexindent/subsec-partnering-poly-switches.tex	2021-08-01 20:35:09 UTC (rev 60132)
@@ -1,54 +0,0 @@
-% arara: pdflatex: {shell: yes, files: [latexindent]}
-\subsection{Partnering BodyStartsOnOwnLine with argument-based poly-switches}
-	Some poly-switches need to be partnered together; in particular, when line breaks
-	involving the \emph{first} argument of a code block need to be accounted for
-	using both \texttt{BodyStartsOnOwnLine} (or its equivalent, see \vref{tab:poly-switch-mapping}) and \texttt{LCuBStartsOnOwnLine} for mandatory arguments, and
-	\texttt{LSqBStartsOnOwnLine} for optional arguments.
-	\index{poly-switches!conflicting partnering}
-
-	Let's begin with the code in \cref{lst:mycommand1} and the YAML settings in
-	\cref{lst:mycom-mlb1}; with reference to \vref{tab:poly-switch-mapping}, the key
-	\texttt{CommandNameFinishesWithLineBreak} is an alias for \texttt{BodyStartsOnOwnLine}.
-
-	\cmhlistingsfromfile{demonstrations/mycommand1.tex}{\texttt{mycommand1.tex}}{lst:mycommand1}
-
-	Upon running the command
-	\index{switches!-l demonstration}
-	\index{switches!-m demonstration}
-	\begin{commandshell}
-latexindent.pl -m -l=mycom-mlb1.yaml mycommand1.tex
-\end{commandshell}
-	we obtain \cref{lst:mycommand1-mlb1}; note that the \emph{second} mandatory argument
-	beginning brace \lstinline!{! has had its leading line break removed, but that
-	the \emph{first} brace has not.
-
-	\begin{cmhtcbraster}[
-			raster force size=false,
-			raster column 1/.style={add to width=-1cm},
-		]
-		\cmhlistingsfromfile{demonstrations/mycommand1-mlb1.tex}{\texttt{mycommand1.tex} using \cref{lst:mycom-mlb1}}{lst:mycommand1-mlb1}
-		\cmhlistingsfromfile[style=yaml-LST]*{demonstrations/mycom-mlb1.yaml}[MLB-TCB,width=.6\textwidth]{\texttt{mycom-mlb1.yaml}}{lst:mycom-mlb1}
-	\end{cmhtcbraster}
-
-	Now let's change the YAML file so that it is as in \cref{lst:mycom-mlb2}; upon running
-	the analogous command to that given above, we obtain \cref{lst:mycommand1-mlb2}; both
-	beginning braces \lstinline!{! have had their leading line breaks removed.
-
-	\begin{cmhtcbraster}[
-			raster force size=false,
-			raster column 1/.style={add to width=-1cm},
-		]
-		\cmhlistingsfromfile{demonstrations/mycommand1-mlb2.tex}{\texttt{mycommand1.tex} using \cref{lst:mycom-mlb2}}{lst:mycommand1-mlb2}
-		\cmhlistingsfromfile[style=yaml-LST]*{demonstrations/mycom-mlb2.yaml}[MLB-TCB,width=.6\textwidth]{\texttt{mycom-mlb2.yaml}}{lst:mycom-mlb2}
-	\end{cmhtcbraster}
-
-	Now let's change the YAML file so that it is as in \cref{lst:mycom-mlb3}; upon running
-	the analogous command to that given above, we obtain \cref{lst:mycommand1-mlb3}.
-
-	\begin{cmhtcbraster}[
-			raster force size=false,
-			raster column 1/.style={add to width=-1cm},
-		]
-		\cmhlistingsfromfile{demonstrations/mycommand1-mlb3.tex}{\texttt{mycommand1.tex} using \cref{lst:mycom-mlb3}}{lst:mycommand1-mlb3}
-		\cmhlistingsfromfile[style=yaml-LST]*{demonstrations/mycom-mlb3.yaml}[MLB-TCB,width=.6\textwidth]{\texttt{mycom-mlb3.yaml}}{lst:mycom-mlb3}
-	\end{cmhtcbraster}

Added: trunk/Master/texmf-dist/doc/support/latexindent/subsec-poly-switches.tex
===================================================================
--- trunk/Master/texmf-dist/doc/support/latexindent/subsec-poly-switches.tex	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/support/latexindent/subsec-poly-switches.tex	2021-08-01 20:35:09 UTC (rev 60132)
@@ -0,0 +1,1101 @@
+% arara: pdflatex: {shell: yes, files: [latexindent]}
+\subsection{Poly-switches}\label{sec:poly-switches}
+	Every other field in the \texttt{modifyLineBreaks} field uses poly-switches, and can take
+	one of the following%
+	\announce{2017-08-21}*{blank line poly-switch} integer values:
+	\index{modifying linebreaks! using poly-switches}
+	\index{poly-switches!definition}
+	\index{poly-switches!values}
+	\index{poly-switches!off by default: set to 0}
+	\begin{description}
+		\item[$-1$] \emph{remove mode}: line breaks before or after the
+			\emph{<part of thing>} can be removed (assuming that \texttt{preserveBlankLines} is
+			set to \texttt{0});
+		\item[0] \emph{off mode}: line breaks will not be modified for the
+			\emph{<part of thing>} under consideration;
+		\item[1] \emph{add mode}: a line break will be added before or after the
+			\emph{<part of thing>} under consideration, assuming that
+			there is not already a line break before or after the \emph{<part of thing>};
+		\item[2] \emph{comment then add mode}: a comment symbol will be added, followed by a line break
+			before or after the \emph{<part of thing>} under consideration, assuming that there is
+			not already a comment and line break before or after the \emph{<part of thing>};
+		\item[3] \emph{add then blank line mode}%
+			\announce{2017-08-21}{blank line poly-switch}: a line break will be added before or after
+			the \emph{<part of thing>} under consideration, assuming that there is not already a line
+			break before or after the \emph{<part of thing>}, followed by a blank line;
+		\item[4] \emph{add blank line mode}%
+			\announce{2019-07-13}{blank line poly-switch}; a blank line will
+			be added before or after the \emph{<part of thing>} under consideration, even if the
+			\emph{<part of thing>} is already on its own line.
+	\end{description}
+	In the above, \emph{<part of thing>} refers to either the \emph{begin statement},
+	\emph{body} or \emph{end statement} of the code blocks detailed in
+	\vref{tab:code-blocks}. All poly-switches are \emph{off} by default;
+	\texttt{latexindent.pl} searches first of all for per-name settings, and then followed by
+	global per-thing settings.
+
+\subsubsection{Poly-switches for environments}\label{sec:modifylinebreaks-environments}
+	We start by viewing a snippet of \texttt{defaultSettings.yaml} in
+	\cref{lst:environments-mlb}; note that it contains \emph{global} settings (immediately
+	after the \texttt{environments} field) and that \emph{per-name} settings are also allowed
+	-- in the case of \cref{lst:environments-mlb}, settings for \texttt{equation*} have been
+	specified for demonstration. Note that all poly-switches are \emph{off} (set to 0) by
+	default.
+	\index{poly-switches!default values}
+	\index{poly-switches!environment global example}
+	\index{poly-switches!environment per-code block example}
+
+	\cmhlistingsfromfile[style=modifylinebreaksEnv]*{../defaultSettings.yaml}[width=.8\linewidth,before=\centering,MLB-TCB]{\texttt{environments}}{lst:environments-mlb}
+
+	Let's begin with the simple example given in \cref{lst:env-mlb1-tex}; note that we have
+	annotated key parts of the file using $\BeginStartsOnOwnLine$, $\BodyStartsOnOwnLine$,
+	$\EndStartsOnOwnLine$ and $\EndFinishesWithLineBreak$, these will be related to fields
+	specified in \cref{lst:environments-mlb}.
+	\index{poly-switches!visualisation: $\BeginStartsOnOwnLine$, $\BodyStartsOnOwnLine$, $\EndStartsOnOwnLine$, $\EndFinishesWithLineBreak$}
+
+	\begin{cmhlistings}[style=tcblatex,escapeinside={(*@}{@*)}]{\texttt{env-mlb1.tex}}{lst:env-mlb1-tex}
+before words(*@$\BeginStartsOnOwnLine$@*) \begin{myenv}(*@$\BodyStartsOnOwnLine$@*)body of myenv(*@$\EndStartsOnOwnLine$@*)\end{myenv}(*@$\EndFinishesWithLineBreak$@*) after words
+\end{cmhlistings}
+
+	\paragraph{Adding line breaks: BeginStartsOnOwnLine and BodyStartsOnOwnLine}
+		Let's explore \texttt{BeginStartsOnOwnLine} and \texttt{BodyStartsOnOwnLine} in
+		\cref{lst:env-mlb1,lst:env-mlb2}, and in particular, let's allow each of them in turn to
+		take a value of $1$.
+		\index{modifying linebreaks! at the \emph{beginning} of a code block}
+		\index{poly-switches!adding line breaks: set to 1}
+
+		\begin{minipage}{.45\textwidth}
+			\cmhlistingsfromfile[style=yaml-LST]*{demonstrations/env-mlb1.yaml}[MLB-TCB]{\texttt{env-mlb1.yaml}}{lst:env-mlb1}
+		\end{minipage}
+		\hfill
+		\begin{minipage}{.45\textwidth}
+			\cmhlistingsfromfile[style=yaml-LST]*{demonstrations/env-mlb2.yaml}[MLB-TCB]{\texttt{env-mlb2.yaml}}{lst:env-mlb2}
+		\end{minipage}
+
+		After running the following commands,
+		\index{switches!-l demonstration}
+		\index{switches!-m demonstration}
+		\begin{commandshell}
+latexindent.pl -m env-mlb.tex -l env-mlb1.yaml
+latexindent.pl -m env-mlb.tex -l env-mlb2.yaml
+\end{commandshell}
+		the output is as in \cref{lst:env-mlb-mod1,lst:env-mlb-mod2} respectively.
+
+		\begin{widepage}
+			\begin{minipage}{.56\linewidth}
+				\cmhlistingsfromfile{demonstrations/env-mlb-mod1.tex}{\texttt{env-mlb.tex} using \cref{lst:env-mlb1}}{lst:env-mlb-mod1}
+			\end{minipage}
+			\hfill
+			\begin{minipage}{.43\linewidth}
+				\cmhlistingsfromfile{demonstrations/env-mlb-mod2.tex}{\texttt{env-mlb.tex} using \cref{lst:env-mlb2}}{lst:env-mlb-mod2}
+			\end{minipage}
+		\end{widepage}
+
+		There are a couple of points to note:
+		\begin{itemize}
+			\item in \cref{lst:env-mlb-mod1} a line break has been added at the point denoted by
+			      $\BeginStartsOnOwnLine$ in \cref{lst:env-mlb1-tex}; no other line breaks have been
+			      changed;
+			\item in \cref{lst:env-mlb-mod2} a line break has been added at the point denoted by
+			      $\BodyStartsOnOwnLine$ in \cref{lst:env-mlb1-tex}; furthermore, note that the \emph{body}
+			      of \texttt{myenv} has received the appropriate (default) indentation.
+		\end{itemize}
+
+		Let's now change each of the \texttt{1} values in \cref{lst:env-mlb1,lst:env-mlb2} so
+		that they are $2$ and save them into \texttt{env-mlb3.yaml} and \texttt{env-mlb4.yaml}
+		respectively (see \cref{lst:env-mlb3,lst:env-mlb4}).
+		\index{poly-switches!adding comments and then line breaks: set to 2}
+
+		\begin{minipage}{.45\textwidth}
+			\cmhlistingsfromfile[style=yaml-LST]*{demonstrations/env-mlb3.yaml}[MLB-TCB]{\texttt{env-mlb3.yaml}}{lst:env-mlb3}
+		\end{minipage}
+		\hfill
+		\begin{minipage}{.45\textwidth}
+			\cmhlistingsfromfile[style=yaml-LST]*{demonstrations/env-mlb4.yaml}[MLB-TCB]{\texttt{env-mlb4.yaml}}{lst:env-mlb4}
+		\end{minipage}
+
+		Upon running commands analogous to the above, we obtain
+		\cref{lst:env-mlb-mod3,lst:env-mlb-mod4}.
+
+		\begin{widepage}
+			\begin{minipage}{.56\linewidth}
+				\cmhlistingsfromfile{demonstrations/env-mlb-mod3.tex}{\texttt{env-mlb.tex} using \cref{lst:env-mlb3}}{lst:env-mlb-mod3}
+			\end{minipage}
+			\hfill
+			\begin{minipage}{.43\linewidth}
+				\cmhlistingsfromfile{demonstrations/env-mlb-mod4.tex}{\texttt{env-mlb.tex} using \cref{lst:env-mlb4}}{lst:env-mlb-mod4}
+			\end{minipage}
+		\end{widepage}
+
+		Note that line breaks have been added as in \cref{lst:env-mlb-mod1,lst:env-mlb-mod2}, but
+		this time a comment symbol has been added before adding the line break; in both cases,
+		trailing horizontal space has been stripped before doing so.
+
+		Let's%
+		\announce{2017-08-21}{demonstration of blank line poly-switch (3)} now change each of the \texttt{1} values in
+		\cref{lst:env-mlb1,lst:env-mlb2} so that they are $3$ and save them into
+		\texttt{env-mlb5.yaml} and \texttt{env-mlb6.yaml} respectively (see
+		\cref{lst:env-mlb5,lst:env-mlb6}).
+		\index{poly-switches!adding blank lines: set to 3}
+
+		\begin{minipage}{.45\textwidth}
+			\cmhlistingsfromfile[style=yaml-LST]*{demonstrations/env-mlb5.yaml}[MLB-TCB]{\texttt{env-mlb5.yaml}}{lst:env-mlb5}
+		\end{minipage}
+		\hfill
+		\begin{minipage}{.45\textwidth}
+			\cmhlistingsfromfile[style=yaml-LST]*{demonstrations/env-mlb6.yaml}[MLB-TCB]{\texttt{env-mlb6.yaml}}{lst:env-mlb6}
+		\end{minipage}
+
+		Upon running commands analogous to the above, we obtain
+		\cref{lst:env-mlb-mod5,lst:env-mlb-mod6}.
+
+		\begin{widepage}
+			\begin{minipage}{.56\linewidth}
+				\cmhlistingsfromfile{demonstrations/env-mlb-mod5.tex}{\texttt{env-mlb.tex} using \cref{lst:env-mlb5}}{lst:env-mlb-mod5}
+			\end{minipage}
+			\hfill
+			\begin{minipage}{.43\linewidth}
+				\cmhlistingsfromfile{demonstrations/env-mlb-mod6.tex}{\texttt{env-mlb.tex} using \cref{lst:env-mlb6}}{lst:env-mlb-mod6}
+			\end{minipage}
+		\end{widepage}
+
+		Note that line breaks have been added as in \cref{lst:env-mlb-mod1,lst:env-mlb-mod2}, but
+		this time a \emph{blank line} has been added after adding the line break.
+
+		Let's now change%
+		\announce{2019-07-13}{demonstration of new blank line poly-switch} each of the \texttt{1} values in
+		\cref{lst:env-mlb5,lst:env-mlb6} so that they are $4$ and save them into
+		\texttt{env-beg4.yaml} and \texttt{env-body4.yaml} respectively (see
+		\cref{lst:env-beg4,lst:env-body4}).
+		\index{poly-switches!adding blank lines (again"!): set to 4}
+
+		\begin{minipage}{.45\textwidth}
+			\cmhlistingsfromfile[style=yaml-LST]*{demonstrations/env-beg4.yaml}[MLB-TCB]{\texttt{env-beg4.yaml}}{lst:env-beg4}
+		\end{minipage}
+		\hfill
+		\begin{minipage}{.45\textwidth}
+			\cmhlistingsfromfile[style=yaml-LST]*{demonstrations/env-body4.yaml}[MLB-TCB]{\texttt{env-body4.yaml}}{lst:env-body4}
+		\end{minipage}
+
+		We will demonstrate this poly-switch value using the code in \cref{lst:env-mlb1-text}.
+
+		\cmhlistingsfromfile{demonstrations/env-mlb1.tex}{\texttt{env-mlb1.tex}}{lst:env-mlb1-text}
+
+		Upon running the commands
+		\index{switches!-l demonstration}
+		\index{switches!-m demonstration}
+		\begin{commandshell}
+latexindent.pl -m env-mlb1.tex -l env-beg4.yaml
+latexindent.pl -m env-mlb.1tex -l env-body4.yaml
+\end{commandshell}
+
+		then we receive the respective outputs in \cref{lst:env-mlb1-beg4,lst:env-mlb1-body4}.
+
+		\begin{cmhtcbraster}[raster column skip=.1\linewidth]
+			\cmhlistingsfromfile{demonstrations/env-mlb1-beg4.tex}{\texttt{env-mlb1.tex} using \cref{lst:env-beg4}}{lst:env-mlb1-beg4}
+			\cmhlistingsfromfile{demonstrations/env-mlb1-body4.tex}{\texttt{env-mlb1.tex} using \cref{lst:env-body4}}{lst:env-mlb1-body4}
+		\end{cmhtcbraster}
+
+		We note in particular that, by design, for this value of the poly-switches:
+		\begin{enumerate}
+			\item in \cref{lst:env-mlb1-beg4} a blank line has been inserted before the
+			      \lstinline!\begin! statement, even though the \lstinline!\begin!
+			      statement was already on its own line;
+			\item in \cref{lst:env-mlb1-body4} a blank line has been inserted before the beginning of the
+			      \emph{body}, even though it already began on its own line.
+		\end{enumerate}
+
+	\paragraph{Adding line breaks using EndStartsOnOwnLine and EndFinishesWithLineBreak}
+		Let's explore \texttt{EndStartsOnOwnLine} and \texttt{EndFinishesWithLineBreak} in
+		\cref{lst:env-mlb7,lst:env-mlb8}, and in particular, let's allow each of them in turn to
+		take a value of $1$.
+		\index{modifying linebreaks! at the \emph{end} of a code block}
+		\index{poly-switches!adding line breaks: set to 1}
+
+		\begin{minipage}{.49\textwidth}
+			\cmhlistingsfromfile[style=yaml-LST]*{demonstrations/env-mlb7.yaml}[MLB-TCB]{\texttt{env-mlb7.yaml}}{lst:env-mlb7}
+		\end{minipage}
+		\hfill
+		\begin{minipage}{.49\textwidth}
+			\cmhlistingsfromfile[style=yaml-LST]*{demonstrations/env-mlb8.yaml}[MLB-TCB]{\texttt{env-mlb8.yaml}}{lst:env-mlb8}
+		\end{minipage}
+
+		After running the following commands,
+		\index{switches!-l demonstration}
+		\index{switches!-m demonstration}
+		\begin{commandshell}
+latexindent.pl -m env-mlb.tex -l env-mlb7.yaml
+latexindent.pl -m env-mlb.tex -l env-mlb8.yaml
+\end{commandshell}
+		the output is as in \cref{lst:env-mlb-mod7,lst:env-mlb-mod8}.
+
+		\begin{widepage}
+			\begin{minipage}{.42\linewidth}
+				\cmhlistingsfromfile{demonstrations/env-mlb-mod7.tex}{\texttt{env-mlb.tex} using \cref{lst:env-mlb7}}{lst:env-mlb-mod7}
+			\end{minipage}
+			\hfill
+			\begin{minipage}{.57\linewidth}
+				\cmhlistingsfromfile{demonstrations/env-mlb-mod8.tex}{\texttt{env-mlb.tex} using \cref{lst:env-mlb8}}{lst:env-mlb-mod8}
+			\end{minipage}
+		\end{widepage}
+
+		There are a couple of points to note:
+		\begin{itemize}
+			\item in \cref{lst:env-mlb-mod7} a line break has been added at the point denoted by
+			      $\EndStartsOnOwnLine$ in \vref{lst:env-mlb1-tex}; no other line breaks have been changed
+			      and the \lstinline!\end{myenv}! statement has \emph{not} received indentation (as
+			      intended);
+			\item in \cref{lst:env-mlb-mod8} a line break has been added at the point denoted by
+			      $\EndFinishesWithLineBreak$ in \vref{lst:env-mlb1-tex}.
+		\end{itemize}
+
+		Let's now change each of the \texttt{1} values in \cref{lst:env-mlb7,lst:env-mlb8} so
+		that they are $2$ and save them into \texttt{env-mlb9.yaml} and \texttt{env-mlb10.yaml}
+		respectively (see \cref{lst:env-mlb9,lst:env-mlb10}).
+		\index{poly-switches!adding comments and then line breaks: set to 2}
+
+		\begin{minipage}{.49\textwidth}
+			\cmhlistingsfromfile[style=yaml-LST]*{demonstrations/env-mlb9.yaml}[MLB-TCB]{\texttt{env-mlb9.yaml}}{lst:env-mlb9}
+		\end{minipage}
+		\hfill
+		\begin{minipage}{.49\textwidth}
+			\cmhlistingsfromfile[style=yaml-LST]*{demonstrations/env-mlb10.yaml}[MLB-TCB]{\texttt{env-mlb10.yaml}}{lst:env-mlb10}
+		\end{minipage}
+
+		Upon running commands analogous to the above, we obtain
+		\cref{lst:env-mlb-mod9,lst:env-mlb-mod10}.
+
+		\begin{widepage}
+			\begin{minipage}{.43\linewidth}
+				\cmhlistingsfromfile{demonstrations/env-mlb-mod9.tex}{\texttt{env-mlb.tex} using \cref{lst:env-mlb9}}{lst:env-mlb-mod9}
+			\end{minipage}
+			\hfill
+			\begin{minipage}{.56\linewidth}
+				\cmhlistingsfromfile{demonstrations/env-mlb-mod10.tex}{\texttt{env-mlb.tex} using \cref{lst:env-mlb10}}{lst:env-mlb-mod10}
+			\end{minipage}
+		\end{widepage}
+
+		Note that line breaks have been added as in \cref{lst:env-mlb-mod7,lst:env-mlb-mod8}, but
+		this time a comment symbol has been added before adding the line break; in both cases,
+		trailing horizontal space has been stripped before doing so.
+
+		Let's%
+		\announce{2017-08-21}{demonstration of blank line poly-switch (3)} now change each of the \texttt{1} values in
+		\cref{lst:env-mlb7,lst:env-mlb8} so that they are $3$ and save them into
+		\texttt{env-mlb11.yaml} and \texttt{env-mlb12.yaml} respectively (see
+		\cref{lst:env-mlb11,lst:env-mlb12}).
+		\index{poly-switches!adding blank lines: set to 3}
+
+		\begin{minipage}{.49\textwidth}
+			\cmhlistingsfromfile[style=yaml-LST]*{demonstrations/env-mlb11.yaml}[MLB-TCB]{\texttt{env-mlb11.yaml}}{lst:env-mlb11}
+		\end{minipage}
+		\hfill
+		\begin{minipage}{.49\textwidth}
+			\cmhlistingsfromfile[style=yaml-LST]*{demonstrations/env-mlb12.yaml}[MLB-TCB]{\texttt{env-mlb12.yaml}}{lst:env-mlb12}
+		\end{minipage}
+
+		Upon running commands analogous to the above, we obtain
+		\cref{lst:env-mlb-mod11,lst:env-mlb-mod12}.
+
+		\begin{widepage}
+			\begin{minipage}{.42\linewidth}
+				\cmhlistingsfromfile{demonstrations/env-mlb-mod11.tex}{\texttt{env-mlb.tex} using \cref{lst:env-mlb11}}{lst:env-mlb-mod11}
+			\end{minipage}
+			\hfill
+			\begin{minipage}{.57\linewidth}
+				\cmhlistingsfromfile{demonstrations/env-mlb-mod12.tex}{\texttt{env-mlb.tex} using \cref{lst:env-mlb12}}{lst:env-mlb-mod12}
+			\end{minipage}
+		\end{widepage}
+
+		Note that line breaks have been added as in \cref{lst:env-mlb-mod7,lst:env-mlb-mod8}, and
+		that a \emph{blank line} has been added after the line break.
+
+		Let's now change%
+		\announce{2019-07-13}{demonstration of new blank line poly-switch} each of the \texttt{1} values in
+		\cref{lst:env-mlb11,lst:env-mlb12} so that they are $4$ and save them into
+		\texttt{env-end4.yaml} and \texttt{env-end-f4.yaml} respectively (see
+		\cref{lst:env-end4,lst:env-end-f4}).
+		\index{poly-switches!adding blank lines (again"!): set to 4}
+
+		\begin{minipage}{.45\textwidth}
+			\cmhlistingsfromfile[style=yaml-LST]*{demonstrations/env-end4.yaml}[MLB-TCB]{\texttt{env-end4.yaml}}{lst:env-end4}
+		\end{minipage}
+		\hfill
+		\begin{minipage}{.5\textwidth}
+			\cmhlistingsfromfile[style=yaml-LST]*{demonstrations/env-end-f4.yaml}[MLB-TCB]{\texttt{env-end-f4.yaml}}{lst:env-end-f4}
+		\end{minipage}
+
+		We will demonstrate this poly-switch value using the code from \vref{lst:env-mlb1-text}.
+
+		Upon running the commands
+		\index{switches!-l demonstration}
+		\index{switches!-m demonstration}
+		\begin{commandshell}
+latexindent.pl -m env-mlb1.tex -l env-end4.yaml
+latexindent.pl -m env-mlb.1tex -l env-end-f4.yaml
+\end{commandshell}
+
+		then we receive the respective outputs in \cref{lst:env-mlb1-end4,lst:env-mlb1-end-f4}.
+
+		\begin{cmhtcbraster}[raster column skip=.1\linewidth]
+			\cmhlistingsfromfile{demonstrations/env-mlb1-end4.tex}{\texttt{env-mlb1.tex} using \cref{lst:env-end4}}{lst:env-mlb1-end4}
+			\cmhlistingsfromfile{demonstrations/env-mlb1-end-f4.tex}{\texttt{env-mlb1.tex} using \cref{lst:env-end-f4}}{lst:env-mlb1-end-f4}
+		\end{cmhtcbraster}
+
+		We note in particular that, by design, for this value of the poly-switches:
+		\begin{enumerate}
+			\item in \cref{lst:env-mlb1-end4} a blank line has been inserted before the
+			      \lstinline!\end! statement, even though the \lstinline!\end!
+			      statement was already on its own line;
+			\item in \cref{lst:env-mlb1-end-f4} a blank line has been inserted after the
+			      \lstinline!\end! statement, even though it already began on its own line.
+		\end{enumerate}
+
+	\paragraph{poly-switches 1, 2, and 3 only add line breaks when necessary}
+		If you ask \texttt{latexindent.pl} to add a line break (possibly with a comment) using a
+		poly-switch value of $1$ (or $2$ or $3$), it will only do so if necessary. For example,
+		if you process the file in \vref{lst:mlb2} using poly-switch values of 1, 2, or 3, it
+		will be left unchanged.
+
+		\begin{minipage}{.45\linewidth}
+			\cmhlistingsfromfile{demonstrations/env-mlb2.tex}{\texttt{env-mlb2.tex}}{lst:mlb2}
+		\end{minipage}
+		\hfill
+		\begin{minipage}{.45\linewidth}
+			\cmhlistingsfromfile{demonstrations/env-mlb3.tex}{\texttt{env-mlb3.tex}}{lst:mlb3}
+		\end{minipage}
+
+		Setting the poly-switches to a value of $4$ instructs \texttt{latexindent.pl} to add a
+		line break even if the \emph{<part of thing>} is already on its own line; see
+		\cref{lst:env-mlb1-beg4,lst:env-mlb1-body4} and
+		\cref{lst:env-mlb1-end4,lst:env-mlb1-end-f4}.
+
+		In contrast, the output from processing the file in \cref{lst:mlb3} will vary depending
+		on the poly-switches used; in \cref{lst:env-mlb3-mod2} you'll see that the comment symbol
+		after the \lstinline!\begin{myenv}! has been moved to the next line, as
+		\texttt{BodyStartsOnOwnLine} is set to \texttt{1}. In \cref{lst:env-mlb3-mod4} you'll see
+		that the comment has been accounted for correctly because \texttt{BodyStartsOnOwnLine}
+		has been set to \texttt{2}, and the comment symbol has \emph{not} been moved to its own
+		line. You're encouraged to experiment with \cref{lst:mlb3} and by setting the other
+		poly-switches considered so far to \texttt{2} in turn.
+
+		\begin{cmhtcbraster}[raster column skip=.1\linewidth]
+			\cmhlistingsfromfile{demonstrations/env-mlb3-mod2.tex}{\texttt{env-mlb3.tex} using \vref{lst:env-mlb2}}{lst:env-mlb3-mod2}
+			\cmhlistingsfromfile{demonstrations/env-mlb3-mod4.tex}{\texttt{env-mlb3.tex} using \vref{lst:env-mlb4}}{lst:env-mlb3-mod4}
+		\end{cmhtcbraster}
+
+		The details of the discussion in this section have concerned \emph{global} poly-switches
+		in the \texttt{environments} field; each switch can also be specified on a
+		\emph{per-name} basis, which would take priority over the global values; with reference
+		to \vref{lst:environments-mlb}, an example is shown for the \texttt{equation*}
+		environment.
+
+	\paragraph{Removing line breaks (poly-switches set to $-1$)}
+		Setting poly-switches to $-1$ tells \texttt{latexindent.pl} to remove line breaks of the
+		\emph{<part of the thing>}, if necessary. We will consider the example code given in
+		\cref{lst:mlb4}, noting in particular the positions of the line break highlighters,
+		$\BeginStartsOnOwnLine$, $\BodyStartsOnOwnLine$, $\EndStartsOnOwnLine$ and
+		$\EndFinishesWithLineBreak$, together with the associated YAML files in
+		\crefrange{lst:env-mlb13}{lst:env-mlb16}.
+		\index{poly-switches!removing line breaks: set to -1}
+
+		\begin{minipage}{.45\linewidth}
+			\begin{cmhlistings}[style=tcblatex,escapeinside={(*@}{@*)}]{\texttt{env-mlb4.tex}}{lst:mlb4}
+before words(*@$\BeginStartsOnOwnLine$@*)
+\begin{myenv}(*@$\BodyStartsOnOwnLine$@*)
+body of myenv(*@$\EndStartsOnOwnLine$@*)
+\end{myenv}(*@$\EndFinishesWithLineBreak$@*)
+after words
+\end{cmhlistings}
+		\end{minipage}%
+		\hfill
+		\begin{minipage}{.51\textwidth}
+			\cmhlistingsfromfile[style=yaml-LST]*{demonstrations/env-mlb13.yaml}[MLB-TCB]{\texttt{env-mlb13.yaml}}{lst:env-mlb13}
+
+			\cmhlistingsfromfile[style=yaml-LST]*{demonstrations/env-mlb14.yaml}[MLB-TCB]{\texttt{env-mlb14.yaml}}{lst:env-mlb14}
+
+			\cmhlistingsfromfile[style=yaml-LST]*{demonstrations/env-mlb15.yaml}[MLB-TCB]{\texttt{env-mlb15.yaml}}{lst:env-mlb15}
+
+			\cmhlistingsfromfile[style=yaml-LST]*{demonstrations/env-mlb16.yaml}[MLB-TCB]{\texttt{env-mlb16.yaml}}{lst:env-mlb16}
+		\end{minipage}
+
+		After running the commands
+		\index{switches!-l demonstration}
+		\index{switches!-m demonstration}
+		\begin{commandshell}
+latexindent.pl -m env-mlb4.tex -l env-mlb13.yaml
+latexindent.pl -m env-mlb4.tex -l env-mlb14.yaml
+latexindent.pl -m env-mlb4.tex -l env-mlb15.yaml
+latexindent.pl -m env-mlb4.tex -l env-mlb16.yaml
+\end{commandshell}
+
+		we obtain the respective output in \crefrange{lst:env-mlb4-mod13}{lst:env-mlb4-mod16}.
+
+		\begin{minipage}{.45\linewidth}
+			\cmhlistingsfromfile{demonstrations/env-mlb4-mod13.tex}{\texttt{env-mlb4.tex} using \cref{lst:env-mlb13}}{lst:env-mlb4-mod13}
+		\end{minipage}
+		\hfill
+		\begin{minipage}{.45\linewidth}
+			\cmhlistingsfromfile{demonstrations/env-mlb4-mod14.tex}{\texttt{env-mlb4.tex} using \cref{lst:env-mlb14}}{lst:env-mlb4-mod14}
+		\end{minipage}
+
+		\begin{minipage}{.45\linewidth}
+			\cmhlistingsfromfile{demonstrations/env-mlb4-mod15.tex}{\texttt{env-mlb4.tex} using \cref{lst:env-mlb15}}{lst:env-mlb4-mod15}
+		\end{minipage}
+		\hfill
+		\begin{minipage}{.45\linewidth}
+			\cmhlistingsfromfile{demonstrations/env-mlb4-mod16.tex}{\texttt{env-mlb4.tex} using \cref{lst:env-mlb16}}{lst:env-mlb4-mod16}
+		\end{minipage}
+
+		Notice that in:
+		\begin{itemize}
+			\item \cref{lst:env-mlb4-mod13} the line break denoted by $\BeginStartsOnOwnLine$ in
+			      \cref{lst:mlb4} has been removed;
+			\item \cref{lst:env-mlb4-mod14} the line break denoted by $\BodyStartsOnOwnLine$ in
+			      \cref{lst:mlb4} has been removed;
+			\item \cref{lst:env-mlb4-mod15} the line break denoted by $\EndStartsOnOwnLine$ in
+			      \cref{lst:mlb4} has been removed;
+			\item \cref{lst:env-mlb4-mod16} the line break denoted by $\EndFinishesWithLineBreak$ in
+			      \cref{lst:mlb4} has been removed.
+		\end{itemize}
+		We examined each of these cases separately for clarity of explanation, but you can
+		combine all of the YAML settings in \crefrange{lst:env-mlb13}{lst:env-mlb16} into one
+		file; alternatively, you could tell \texttt{latexindent.pl} to load them all by using the
+		following command, for example
+		\index{switches!-l demonstration}
+		\index{switches!-m demonstration}
+		\begin{widepage}
+			\begin{commandshell}
+latexindent.pl -m env-mlb4.tex -l env-mlb13.yaml,env-mlb14.yaml,env-mlb15.yaml,env-mlb16.yaml
+\end{commandshell}
+		\end{widepage}
+		which gives the output in \vref{lst:env-mlb1-tex}.
+
+	\paragraph{About trailing horizontal space}
+		Recall that on \cpageref{yaml:removeTrailingWhitespace} we discussed the YAML field
+		\texttt{removeTrailingWhitespace}, and that it has two (binary) switches to determine if
+		horizontal space should be removed \texttt{beforeProcessing} and
+		\texttt{afterProcessing}. The \texttt{beforeProcessing} is particularly relevant when
+		considering the \texttt{-m} switch; let's consider the file shown in \cref{lst:mlb5},
+		which highlights trailing spaces.
+
+		\begin{cmhtcbraster}
+			\begin{cmhlistings}[style=tcblatex,showspaces=true,escapeinside={(*@}{@*)}]{\texttt{env-mlb5.tex}}{lst:mlb5}
+before words   (*@$\BeginStartsOnOwnLine$@*) 
+\begin{myenv}           (*@$\BodyStartsOnOwnLine$@*)
+body of myenv      (*@$\EndStartsOnOwnLine$@*) 
+\end{myenv}     (*@$\EndFinishesWithLineBreak$@*)
+after words
+\end{cmhlistings}
+			\cmhlistingsfromfile[style=yaml-LST]*{demonstrations/removeTWS-before.yaml}[yaml-TCB]{\texttt{removeTWS-before.yaml}}{lst:removeTWS-before}
+		\end{cmhtcbraster}
+
+		The output from the following commands
+		\index{switches!-l demonstration}
+		\index{switches!-m demonstration}
+		\begin{widepage}
+			\begin{commandshell}
+latexindent.pl -m env-mlb5.tex -l env-mlb13.yaml,env-mlb14.yaml,env-mlb15.yaml,env-mlb16.yaml
+latexindent.pl -m env-mlb5.tex -l env-mlb13.yaml,env-mlb14.yaml,env-mlb15.yaml,env-mlb16.yaml,removeTWS-before.yaml
+\end{commandshell}
+		\end{widepage}
+		is shown, respectively, in \cref{lst:env-mlb5-modAll,lst:env-mlb5-modAll-remove-WS}; note
+		that the trailing horizontal white space has been preserved (by default) in
+		\cref{lst:env-mlb5-modAll}, while in \cref{lst:env-mlb5-modAll-remove-WS}, it has been
+		removed using the switch specified in \cref{lst:removeTWS-before}.
+
+		\begin{widepage}
+			\cmhlistingsfromfile[showspaces=true]{demonstrations/env-mlb5-modAll.tex}{\texttt{env-mlb5.tex} using \crefrange{lst:env-mlb4-mod13}{lst:env-mlb4-mod16}}{lst:env-mlb5-modAll}
+
+			\cmhlistingsfromfile[showspaces=true]{demonstrations/env-mlb5-modAll-remove-WS.tex}{\texttt{env-mlb5.tex} using \crefrange{lst:env-mlb4-mod13}{lst:env-mlb4-mod16} \emph{and} \cref{lst:removeTWS-before}}{lst:env-mlb5-modAll-remove-WS}
+		\end{widepage}
+
+	\paragraph{poly-switch line break removal and blank lines}
+		Now let's consider the file in \cref{lst:mlb6}, which contains blank lines.
+		\index{poly-switches!blank lines}
+
+		\begin{cmhtcbraster}
+			\begin{cmhlistings}[style=tcblatex,escapeinside={(*@}{@*)}]{\texttt{env-mlb6.tex}}{lst:mlb6}
+before words(*@$\BeginStartsOnOwnLine$@*)
+
+
+\begin{myenv}(*@$\BodyStartsOnOwnLine$@*)
+
+
+body of myenv(*@$\EndStartsOnOwnLine$@*)
+
+
+\end{myenv}(*@$\EndFinishesWithLineBreak$@*)
+
+after words
+\end{cmhlistings}
+			\cmhlistingsfromfile[style=yaml-LST]*{demonstrations/UnpreserveBlankLines.yaml}[MLB-TCB]{\texttt{UnpreserveBlankLines.yaml}}{lst:UnpreserveBlankLines}
+		\end{cmhtcbraster}
+
+		Upon running the following commands
+		\index{switches!-l demonstration}
+		\index{switches!-m demonstration}
+		\begin{widepage}
+			\begin{commandshell}
+latexindent.pl -m env-mlb6.tex -l env-mlb13.yaml,env-mlb14.yaml,env-mlb15.yaml,env-mlb16.yaml
+latexindent.pl -m env-mlb6.tex -l env-mlb13.yaml,env-mlb14.yaml,env-mlb15.yaml,env-mlb16.yaml,UnpreserveBlankLines.yaml
+\end{commandshell}
+		\end{widepage}
+		we receive the respective outputs in
+		\cref{lst:env-mlb6-modAll,lst:env-mlb6-modAll-un-Preserve-Blank-Lines}. In
+		\cref{lst:env-mlb6-modAll} we see that the multiple blank lines have each been condensed
+		into one blank line, but that blank lines have \emph{not} been removed by the
+		poly-switches -- this is because, by default, \texttt{preserveBlankLines} is set to
+		\texttt{1}. By contrast, in \cref{lst:env-mlb6-modAll-un-Preserve-Blank-Lines}, we have
+		allowed the poly-switches to remove blank lines because, in
+		\cref{lst:UnpreserveBlankLines}, we have set \texttt{preserveBlankLines} to \texttt{0}.
+
+		\begin{cmhtcbraster}[ raster left skip=-3.5cm,
+				raster right skip=-2cm,
+				raster force size=false,
+				raster column 1/.style={add to width=-.2\textwidth},
+				raster column 2/.style={add to width=.2\textwidth},
+				raster column skip=.06\linewidth]
+			\cmhlistingsfromfile{demonstrations/env-mlb6-modAll.tex}{\texttt{env-mlb6.tex} using \crefrange{lst:env-mlb4-mod13}{lst:env-mlb4-mod16}}{lst:env-mlb6-modAll}
+			\cmhlistingsfromfile{demonstrations/env-mlb6-modAll-un-Preserve-Blank-Lines.tex}{\texttt{env-mlb6.tex} using \crefrange{lst:env-mlb4-mod13}{lst:env-mlb4-mod16} \emph{and} \cref{lst:UnpreserveBlankLines}}{lst:env-mlb6-modAll-un-Preserve-Blank-Lines}
+		\end{cmhtcbraster}
+
+		We can explore this further using the blank-line poly-switch value of $3$; let's use the
+		file given in \cref{lst:env-mlb7-tex}.
+
+		\cmhlistingsfromfile{demonstrations/env-mlb7.tex}{\texttt{env-mlb7.tex}}{lst:env-mlb7-tex}
+
+		Upon running the following commands
+		\index{switches!-l demonstration}
+		\index{switches!-m demonstration}
+		\begin{commandshell}
+latexindent.pl -m env-mlb7.tex -l env-mlb12.yaml,env-mlb13.yaml
+latexindent.pl -m env-mlb7.tex -l env-mlb13.yaml,env-mlb14.yaml,UnpreserveBlankLines.yaml
+\end{commandshell}
+		we receive the outputs given in \cref{lst:env-mlb7-preserve,lst:env-mlb7-no-preserve}.
+
+		\cmhlistingsfromfile{demonstrations/env-mlb7-preserve.tex}{\texttt{env-mlb7-preserve.tex}}{lst:env-mlb7-preserve}
+		\cmhlistingsfromfile{demonstrations/env-mlb7-no-preserve.tex}{\texttt{env-mlb7-no-preserve.tex}}{lst:env-mlb7-no-preserve}
+
+		Notice that in:
+		\begin{itemize}
+			\item \cref{lst:env-mlb7-preserve} that \lstinline!\end{one}! has added a blank line,
+			      because of the value of \texttt{EndFinishesWithLineBreak} in \vref{lst:env-mlb12}, and
+			      even though the line break ahead of \lstinline!\begin{two}! should have been removed
+			      (because of \texttt{BeginStartsOnOwnLine} in \vref{lst:env-mlb13}), the blank line has
+			      been preserved by default;
+			\item \cref{lst:env-mlb7-no-preserve}, by contrast, has had the additional line-break removed,
+			      because of the settings in \cref{lst:UnpreserveBlankLines}.
+		\end{itemize}
+
+\subsubsection{Poly-switches for double back slash}\label{subsec:dbs}
+	With reference to \texttt{lookForAlignDelims} (see
+	\vref{lst:aligndelims:basic})%
+	\announce{2019-07-13}{poly-switch for double back slash} you can specify poly-switches to
+	dictate the line-break behaviour of double back slashes in environments
+	(\vref{lst:tabularafter:basic}), commands (\vref{lst:matrixafter}), or special code
+	blocks (\vref{lst:specialafter}). Note that for these poly-switches to take effect, the
+	name of the code block must necessarily be specified within \texttt{lookForAlignDelims}
+	(\vref{lst:aligndelims:basic}); we will demonstrate this in what follows.
+	\index{delimiters!poly-switches for double back slash}
+	\index{modifying linebreaks! surrounding double back slash}
+	\index{poly-switches!for double back slash (delimiters)}
+
+	Consider the code given in \cref{lst:dbs-demo}.
+	\begin{cmhlistings}[style=tcblatex,escapeinside={(*@}{@*)}]{\texttt{tabular3.tex}}{lst:dbs-demo}
+\begin{tabular}{cc}
+ 1 & 2 (*@$\ElseStartsOnOwnLine$@*)\\(*@$\ElseFinishesWithLineBreak$@*) 3 & 4 (*@$\ElseStartsOnOwnLine$@*)\\(*@$\ElseFinishesWithLineBreak$@*)
+\end{tabular}
+\end{cmhlistings}
+	Referencing \cref{lst:dbs-demo}:
+	\begin{itemize}
+		\item \texttt{DBS} stands for \emph{double back slash};
+		\item line breaks ahead of the double back slash are annotated by $\ElseStartsOnOwnLine$, and
+		      are controlled by \texttt{DBSStartsOnOwnLine};
+		\item line breaks after the double back slash are annotated by $\ElseFinishesWithLineBreak$,
+		      and are controlled by \texttt{DBSFinishesWithLineBreak}.
+	\end{itemize}
+
+	Let's explore each of these in turn.
+
+	\paragraph{Double back slash starts on own line}
+		We explore \texttt{DBSStartsOnOwnLine} ($\ElseStartsOnOwnLine$ in \cref{lst:dbs-demo});
+		starting with the code in \cref{lst:dbs-demo}, together with the YAML files given in
+		\cref{lst:DBS1} and \cref{lst:DBS2} and running the following commands
+		\index{switches!-l demonstration}
+		\index{switches!-m demonstration}
+		\begin{commandshell}
+latexindent.pl -m tabular3.tex -l DBS1.yaml
+latexindent.pl -m tabular3.tex -l DBS2.yaml
+\end{commandshell}
+		then we receive the respective output given in \cref{lst:tabular3-DBS1} and
+		\cref{lst:tabular3-DBS2}.
+
+		\begin{cmhtcbraster}[raster column skip=.01\linewidth]
+			\cmhlistingsfromfile{demonstrations/tabular3-mod1.tex}{\texttt{tabular3.tex} using \cref{lst:DBS1}}{lst:tabular3-DBS1}
+			\cmhlistingsfromfile[style=yaml-LST]*{demonstrations/DBS1.yaml}[MLB-TCB]{\texttt{DBS1.yaml}}{lst:DBS1}
+		\end{cmhtcbraster}
+
+		\begin{cmhtcbraster}[raster column skip=.01\linewidth]
+			\cmhlistingsfromfile{demonstrations/tabular3-mod2.tex}{\texttt{tabular3.tex} using \cref{lst:DBS2}}{lst:tabular3-DBS2}
+			\cmhlistingsfromfile[style=yaml-LST]*{demonstrations/DBS2.yaml}[MLB-TCB]{\texttt{DBS2.yaml}}{lst:DBS2}
+		\end{cmhtcbraster}
+
+		We note that
+		\begin{itemize}
+			\item \cref{lst:DBS1} specifies \texttt{DBSStartsOnOwnLine} for
+			      \emph{every} environment (that is within \texttt{lookForAlignDelims},
+			      \vref{lst:aligndelims:advanced});
+			      the double back slashes from \cref{lst:dbs-demo} have been moved to their own line in
+			      \cref{lst:tabular3-DBS1};
+			\item \cref{lst:DBS2} specifies \texttt{DBSStartsOnOwnLine} on a
+			      \emph{per-name} basis for \texttt{tabular} (that is within \texttt{lookForAlignDelims},
+			      \vref{lst:aligndelims:advanced});
+			      the double back slashes from \cref{lst:dbs-demo} have been moved to their own line in
+			      \cref{lst:tabular3-DBS2}, having added comment symbols before moving them.
+		\end{itemize}
+
+	\paragraph{Double back slash finishes with line break}
+		Let's now explore \texttt{DBSFinishesWithLineBreak} ($\ElseFinishesWithLineBreak$ in
+		\cref{lst:dbs-demo}); starting with the code in \cref{lst:dbs-demo}, together with the
+		YAML files given in \cref{lst:DBS3} and \cref{lst:DBS4} and running the following
+		commands
+		\index{poly-switches!for double back slash (delimiters)}
+		\index{switches!-l demonstration}
+		\index{switches!-m demonstration}
+		\begin{commandshell}
+latexindent.pl -m tabular3.tex -l DBS3.yaml
+latexindent.pl -m tabular3.tex -l DBS4.yaml
+\end{commandshell}
+		then we receive the respective output given in \cref{lst:tabular3-DBS3} and
+		\cref{lst:tabular3-DBS4}.
+
+		\begin{cmhtcbraster}[raster column skip=.01\linewidth]
+			\cmhlistingsfromfile{demonstrations/tabular3-mod3.tex}{\texttt{tabular3.tex} using \cref{lst:DBS3}}{lst:tabular3-DBS3}
+			\cmhlistingsfromfile[style=yaml-LST]*{demonstrations/DBS3.yaml}[MLB-TCB]{\texttt{DBS3.yaml}}{lst:DBS3}
+		\end{cmhtcbraster}
+
+		\begin{cmhtcbraster}[raster column skip=.01\linewidth]
+			\cmhlistingsfromfile{demonstrations/tabular3-mod4.tex}{\texttt{tabular3.tex} using \cref{lst:DBS4}}{lst:tabular3-DBS4}
+			\cmhlistingsfromfile[style=yaml-LST]*{demonstrations/DBS4.yaml}[MLB-TCB]{\texttt{DBS4.yaml}}{lst:DBS4}
+		\end{cmhtcbraster}
+
+		We note that
+		\begin{itemize}
+			\item \cref{lst:DBS3} specifies \texttt{DBSFinishesWithLineBreak} for
+			      \emph{every} environment (that is within \texttt{lookForAlignDelims},
+			      \vref{lst:aligndelims:advanced});
+			      the code following the double back slashes from \cref{lst:dbs-demo} has been moved to
+			      their own line in \cref{lst:tabular3-DBS3};
+			\item \cref{lst:DBS4} specifies \texttt{DBSFinishesWithLineBreak} on a
+			      \emph{per-name} basis for \texttt{tabular} (that is within \texttt{lookForAlignDelims},
+			      \vref{lst:aligndelims:advanced});
+			      the first double back slashes from \cref{lst:dbs-demo} have moved code following them to
+			      their own line in \cref{lst:tabular3-DBS4}, having added comment symbols before moving
+			      them; the final double back slashes have \emph{not} added a line break as they are at the
+			      end of the body within the code block.
+		\end{itemize}
+
+	\paragraph{Double back slash poly-switches for specialBeginEnd}
+		Let's explore the double back slash poly-switches for code blocks within
+		\texttt{specialBeginEnd} code blocks (\vref{lst:specialBeginEnd}); we begin with the code
+		within \cref{lst:special4}.
+		\index{specialBeginEnd!double backslash poly-switch demonstration}
+		\index{poly-switches!double backslash}
+		\index{poly-switches!for double back slash (delimiters)}
+		\index{specialBeginEnd!lookForAlignDelims}
+		\index{delimiters}
+		\index{linebreaks!summary of poly-switches}
+
+		\cmhlistingsfromfile{demonstrations/special4.tex}{\texttt{special4.tex}}{lst:special4}
+
+		Upon using the YAML settings in \cref{lst:DBS5}, and running the command
+		\index{switches!-l demonstration}
+		\index{switches!-m demonstration}
+		\begin{commandshell}
+latexindent.pl -m special4.tex -l DBS5.yaml
+\end{commandshell}
+		then we receive the output given in \cref{lst:special4-DBS5}.
+		\index{delimiters!with specialBeginEnd and the -m switch}
+
+		\begin{cmhtcbraster}[
+				raster force size=false,
+				raster column 1/.style={add to width=-.1\textwidth},
+				raster column skip=.06\linewidth]
+			\cmhlistingsfromfile{demonstrations/special4-mod5.tex}{\texttt{special4.tex} using \cref{lst:DBS5}}{lst:special4-DBS5}
+			\cmhlistingsfromfile[style=yaml-LST]*{demonstrations/DBS5.yaml}[MLB-TCB,width=0.6\textwidth]{\texttt{DBS5.yaml}}{lst:DBS5}
+		\end{cmhtcbraster}
+
+		There are a few things to note:
+		\begin{itemize}
+			\item in \cref{lst:DBS5} we have specified \texttt{cmhMath} within \texttt{lookForAlignDelims};
+			      without this, the double back slash poly-switches would be ignored for this code block;
+			\item the \texttt{DBSFinishesWithLineBreak} poly-switch has controlled the line breaks
+			      following the double back slashes;
+			\item the \texttt{SpecialEndStartsOnOwnLine} poly-switch has controlled the addition of a
+			      comment symbol, followed by a line break, as it is set to a value of 2.
+		\end{itemize}
+
+	\paragraph{Double back slash poly-switches for optional and mandatory arguments}
+		For clarity, we provide a demonstration of controlling the double back slash
+		poly-switches for optional and mandatory arguments. We begin with the code in
+		\cref{lst:mycommand2}.
+		\index{poly-switches!for double back slash (delimiters)}
+
+		\cmhlistingsfromfile{demonstrations/mycommand2.tex}{\texttt{mycommand2.tex}}{lst:mycommand2}
+
+		Upon using the YAML settings in \cref{lst:DBS6,lst:DBS7}, and running the command
+		\index{switches!-l demonstration}
+		\index{switches!-m demonstration}
+		\begin{commandshell}
+latexindent.pl -m mycommand2.tex -l DBS6.yaml
+latexindent.pl -m mycommand2.tex -l DBS7.yaml
+\end{commandshell}
+		then we receive the output given in \cref{lst:mycommand2-DBS6,lst:mycommand2-DBS7}.
+
+		\begin{cmhtcbraster}[
+				raster force size=false,
+				raster column 1/.style={add to width=-.1\textwidth},
+				raster column skip=.03\linewidth]
+			\cmhlistingsfromfile{demonstrations/mycommand2-mod6.tex}{\texttt{mycommand2.tex} using \cref{lst:DBS6}}{lst:mycommand2-DBS6}
+			\cmhlistingsfromfile[style=yaml-LST]*{demonstrations/DBS6.yaml}[MLB-TCB,width=0.6\textwidth]{\texttt{DBS6.yaml}}{lst:DBS6}
+		\end{cmhtcbraster}
+
+		\begin{cmhtcbraster}[
+				raster force size=false,
+				raster column 1/.style={add to width=-.1\textwidth},
+				raster column skip=.03\linewidth]
+			\cmhlistingsfromfile{demonstrations/mycommand2-mod7.tex}{\texttt{mycommand2.tex} using \cref{lst:DBS7}}{lst:mycommand2-DBS7}
+			\cmhlistingsfromfile[style=yaml-LST]*{demonstrations/DBS7.yaml}[MLB-TCB,width=0.6\textwidth]{\texttt{DBS7.yaml}}{lst:DBS7}
+		\end{cmhtcbraster}
+
+	\paragraph{Double back slash optional square brackets}
+		The pattern matching for the double back slash will also, optionally, allow trailing
+		square brackets that contain a measurement of vertical spacing, for example
+		\lstinline!\\[3pt]!.
+		\index{poly-switches!for double back slash (delimiters)}
+
+		For example, beginning with the code in \cref{lst:pmatrix3}
+
+		\cmhlistingsfromfile{demonstrations/pmatrix3.tex}{\texttt{pmatrix3.tex}}{lst:pmatrix3}
+
+		and running the following command, using \cref{lst:DBS3},
+		\index{switches!-l demonstration}
+		\index{switches!-m demonstration}
+		\begin{commandshell}
+latexindent.pl -m pmatrix3.tex -l DBS3.yaml
+\end{commandshell}
+		then we receive the output given in \cref{lst:pmatrix3-DBS3}.
+
+		\cmhlistingsfromfile{demonstrations/pmatrix3-mod3.tex}{\texttt{pmatrix3.tex} using \cref{lst:DBS3}}{lst:pmatrix3-DBS3}
+
+		You can customise the pattern for the double back slash by exploring the \emph{fine
+			tuning} field detailed in \vref{lst:fineTuning}.
+
+\subsubsection{Poly-switches for other code blocks}
+	Rather than repeat the examples shown for the environment code blocks (in
+	\vref{sec:modifylinebreaks-environments}), we choose to detail the poly-switches for all
+	other code blocks in \cref{tab:poly-switch-mapping}; note that each and every one of
+	these poly-switches is \emph{off by default}, i.e, set to \texttt{0}.
+
+	Note also that, by design, line breaks involving, \texttt{filecontents} and
+	`comment-marked' code blocks (\vref{lst:alignmentmarkup}) can \emph{not} be modified
+	using \texttt{latexindent.pl}.%
+	\announce{2019-05-05}*{verbatim poly-switch} However, there are two poly-switches
+	available for \texttt{verbatim} code blocks: environments
+	(\vref{lst:verbatimEnvironments}), commands (\vref{lst:verbatimCommands}) and
+	\texttt{specialBeginEnd} (\vref{lst:special-verb1-yaml}).
+	\index{specialBeginEnd!poly-switch summary}
+	\index{verbatim!poly-switch summary}
+	\index{poly-switches!summary of all poly-switches}
+
+	\clearpage
+	\begin{longtable}{llll}
+		\caption{Poly-switch mappings for all code-block types}\label{tab:poly-switch-mapping}                                                                                                                                                   \\
+		\toprule
+		Code block                                             & Sample                                                            & \multicolumn{2}{c}{Poly-switch mapping}                                                                     \\
+		\midrule
+		environment                                            & \verb!before words!$\BeginStartsOnOwnLine$                        & $\BeginStartsOnOwnLine$                 & BeginStartsOnOwnLine                                              \\
+		                                                       & \verb!\begin{myenv}!$\BodyStartsOnOwnLine$                        & $\BodyStartsOnOwnLine$                  & BodyStartsOnOwnLine                                               \\
+		                                                       & \verb!body of myenv!$\EndStartsOnOwnLine$                         & $\EndStartsOnOwnLine$                   & EndStartsOnOwnLine                                                \\
+		                                                       & \verb!\end{myenv}!$\EndFinishesWithLineBreak$                     & $\EndFinishesWithLineBreak$             & EndFinishesWithLineBreak                                          \\
+		                                                       & \verb!after words!                                                &                                         &                                                                   \\
+		\cmidrule{2-4}
+		ifelsefi                                               & \verb!before words!$\BeginStartsOnOwnLine$                        & $\BeginStartsOnOwnLine$                 & IfStartsOnOwnLine                                                 \\
+		                                                       & \verb!\if...!$\BodyStartsOnOwnLine$                               & $\BodyStartsOnOwnLine$                  & BodyStartsOnOwnLine                                               \\
+		                                                       & \verb!body of if/or statement!$\OrStartsOnOwnLine$                & $\OrStartsOnOwnLine$                    & OrStartsOnOwnLine                                                 %
+		\announce{2018-04-27}{new ifElseFi code block poly-switches}                                                                                                                                                                             \\
+		                                                       & \verb!\or!$\OrFinishesWithLineBreak$                              & $\OrFinishesWithLineBreak$              & OrFinishesWithLineBreak                                           \\
+		                                                       & \verb!body of if/or statement!$\ElseStartsOnOwnLine$              & $\ElseStartsOnOwnLine$                  & ElseStartsOnOwnLine                                               \\
+		                                                       & \verb!\else!$\ElseFinishesWithLineBreak$                          & $\ElseFinishesWithLineBreak$            & ElseFinishesWithLineBreak                                         \\
+		                                                       & \verb!body of else statement!$\EndStartsOnOwnLine$                & $\EndStartsOnOwnLine$                   & FiStartsOnOwnLine                                                 \\
+		                                                       & \verb!\fi!$\EndFinishesWithLineBreak$                             & $\EndFinishesWithLineBreak$             & FiFinishesWithLineBreak                                           \\
+		                                                       & \verb!after words!                                                &                                         &                                                                   \\
+		\cmidrule{2-4}
+		optionalArguments                                      & \verb!...!$\BeginStartsOnOwnLine$                                 & $\BeginStartsOnOwnLine$                 & LSqBStartsOnOwnLine\footnote{LSqB stands for Left Square Bracket} \\
+		                                                       & \verb![!$\BodyStartsOnOwnLine$                                    & $\BodyStartsOnOwnLine$                  & OptArgBodyStartsOnOwnLine                                         \\
+		\announce{2019-07-13}{new comma-related poly-switches} & \verb!value before comma!$\ElseStartsOnOwnLine$,                  & $\ElseStartsOnOwnLine$                  & CommaStartsOnOwnLine                                              \\
+		                                                       & $\ElseFinishesWithLineBreak$                                      & $\ElseFinishesWithLineBreak$            & CommaFinishesWithLineBreak                                        \\
+		                                                       & \verb!end of body of opt arg!$\EndStartsOnOwnLine$                & $\EndStartsOnOwnLine$                   & RSqBStartsOnOwnLine                                               \\
+		                                                       & \verb!]!$\EndFinishesWithLineBreak$                               & $\EndFinishesWithLineBreak$             & RSqBFinishesWithLineBreak                                         \\
+		                                                       & \verb!...!                                                        &                                         &                                                                   \\
+		\cmidrule{2-4}
+		mandatoryArguments                                     & \verb!...!$\BeginStartsOnOwnLine$                                 & $\BeginStartsOnOwnLine$                 & LCuBStartsOnOwnLine\footnote{LCuB stands for Left Curly Brace}    \\
+		                                                       & \verb!{!$\BodyStartsOnOwnLine$                                    & $\BodyStartsOnOwnLine$                  & MandArgBodyStartsOnOwnLine                                        \\
+		\announce{2019-07-13}{new comma-related poly-switches} & \verb!value before comma!$\ElseStartsOnOwnLine$,                  & $\ElseStartsOnOwnLine$                  & CommaStartsOnOwnLine                                              \\
+		                                                       & $\ElseFinishesWithLineBreak$                                      & $\ElseFinishesWithLineBreak$            & CommaFinishesWithLineBreak                                        \\
+		                                                       & \verb!end of body of mand arg!$\EndStartsOnOwnLine$               & $\EndStartsOnOwnLine$                   & RCuBStartsOnOwnLine                                               \\
+		                                                       & \verb!}!$\EndFinishesWithLineBreak$                               & $\EndFinishesWithLineBreak$             & RCuBFinishesWithLineBreak                                         \\
+		                                                       & \verb!...!                                                        &                                         &                                                                   \\
+		\cmidrule{2-4}
+		commands                                               & \verb!before words!$\BeginStartsOnOwnLine$                        & $\BeginStartsOnOwnLine$                 & CommandStartsOnOwnLine                                            \\
+		                                                       & \verb!\mycommand!$\BodyStartsOnOwnLine$                           & $\BodyStartsOnOwnLine$                  & CommandNameFinishesWithLineBreak                                  \\
+		                                                       & $\langle$\itshape{arguments}$\rangle$                             &                                         &                                                                   \\
+		\cmidrule{2-4}
+		namedGroupingBraces Brackets                           & before words$\BeginStartsOnOwnLine$                               & $\BeginStartsOnOwnLine$                 & NameStartsOnOwnLine                                               \\
+		                                                       & myname$\BodyStartsOnOwnLine$                                      & $\BodyStartsOnOwnLine$                  & NameFinishesWithLineBreak                                         \\
+		                                                       & $\langle$\itshape{braces/brackets}$\rangle$                       &                                         &                                                                   \\
+		\cmidrule{2-4}
+		keyEqualsValuesBraces\newline Brackets                 & before words$\BeginStartsOnOwnLine$                               & $\BeginStartsOnOwnLine$                 & KeyStartsOnOwnLine                                                \\
+		                                                       & key$\EqualsStartsOnOwnLine$=$\BodyStartsOnOwnLine$                & $\EqualsStartsOnOwnLine$                & EqualsStartsOnOwnLine                                             \\
+		                                                       & $\langle$\itshape{braces/brackets}$\rangle$                       & $\BodyStartsOnOwnLine$                  & EqualsFinishesWithLineBreak                                       \\
+		\cmidrule{2-4}
+		items                                                  & before words$\BeginStartsOnOwnLine$                               & $\BeginStartsOnOwnLine$                 & ItemStartsOnOwnLine                                               \\
+		                                                       & \verb!\item!$\BodyStartsOnOwnLine$                                & $\BodyStartsOnOwnLine$                  & ItemFinishesWithLineBreak                                         \\
+		                                                       & \verb!...!                                                        &                                         &                                                                   \\
+		\cmidrule{2-4}
+		specialBeginEnd                                        & before words$\BeginStartsOnOwnLine$                               & $\BeginStartsOnOwnLine$                 & SpecialBeginStartsOnOwnLine                                       \\
+		                                                       & \verb!\[!$\BodyStartsOnOwnLine$                                   & $\BodyStartsOnOwnLine$                  & SpecialBodyStartsOnOwnLine                                        \\
+		                                                       & \verb!body of special/middle!$\ElseStartsOnOwnLine$               & $\ElseStartsOnOwnLine$                  & SpecialMiddleStartsOnOwnLine                                      %
+		\announce{2018-04-27}{new special code block poly-switches}                                                                                                                                                                              \\
+		                                                       & \verb!\middle!$\ElseFinishesWithLineBreak$                        & $\ElseFinishesWithLineBreak$            & SpecialMiddleFinishesWithLineBreak                                \\
+		                                                       & body of special/middle $\EndStartsOnOwnLine$                      & $\EndStartsOnOwnLine$                   & SpecialEndStartsOnOwnLine                                         \\
+		                                                       & \verb!\]!$\EndFinishesWithLineBreak$                              & $\EndFinishesWithLineBreak$             & SpecialEndFinishesWithLineBreak                                   \\
+		                                                       & after words                                                       &                                         &                                                                   \\
+		\cmidrule{2-4}
+		verbatim                                               & before words$\BeginStartsOnOwnLine$\verb!\begin{verbatim}!        & $\BeginStartsOnOwnLine$                 & VerbatimBeginStartsOnOwnLine                                      \\
+		\announce{2019-05-05}{verbatim poly-switches}          & body of verbatim \verb!\end{verbatim}!$\EndFinishesWithLineBreak$ & $\EndFinishesWithLineBreak$             & VerbatimEndFinishesWithLineBreak                                  \\
+		                                                       & after words                                                       &                                         &                                                                   \\
+		\bottomrule
+	\end{longtable}
+\subsubsection{Partnering BodyStartsOnOwnLine with argument-based poly-switches}
+	Some poly-switches need to be partnered together; in particular, when line breaks
+	involving the \emph{first} argument of a code block need to be accounted for using both
+	\texttt{BodyStartsOnOwnLine} (or its equivalent, see \vref{tab:poly-switch-mapping}) and
+	\texttt{LCuBStartsOnOwnLine} for mandatory arguments, and \texttt{LSqBStartsOnOwnLine}
+	for optional arguments.
+	\index{poly-switches!conflicting partnering}
+
+	Let's begin with the code in \cref{lst:mycommand1} and the YAML settings in
+	\cref{lst:mycom-mlb1}; with reference to \vref{tab:poly-switch-mapping}, the key
+	\texttt{CommandNameFinishesWithLineBreak} is an alias for \texttt{BodyStartsOnOwnLine}.
+
+	\cmhlistingsfromfile{demonstrations/mycommand1.tex}{\texttt{mycommand1.tex}}{lst:mycommand1}
+
+	Upon running the command
+	\index{switches!-l demonstration}
+	\index{switches!-m demonstration}
+	\begin{commandshell}
+latexindent.pl -m -l=mycom-mlb1.yaml mycommand1.tex
+\end{commandshell}
+	we obtain \cref{lst:mycommand1-mlb1}; note that the \emph{second} mandatory argument
+	beginning brace \lstinline!{! has had its leading line break removed, but that the
+	\emph{first} brace has not.
+
+	\begin{cmhtcbraster}[
+			raster force size=false,
+			raster column 1/.style={add to width=-1cm},
+		]
+		\cmhlistingsfromfile{demonstrations/mycommand1-mlb1.tex}{\texttt{mycommand1.tex} using \cref{lst:mycom-mlb1}}{lst:mycommand1-mlb1}
+		\cmhlistingsfromfile[style=yaml-LST]*{demonstrations/mycom-mlb1.yaml}[MLB-TCB,width=.6\textwidth]{\texttt{mycom-mlb1.yaml}}{lst:mycom-mlb1}
+	\end{cmhtcbraster}
+
+	Now let's change the YAML file so that it is as in \cref{lst:mycom-mlb2}; upon running
+	the analogous command to that given above, we obtain \cref{lst:mycommand1-mlb2}; both
+	beginning braces \lstinline!{! have had their leading line breaks removed.
+
+	\begin{cmhtcbraster}[
+			raster force size=false,
+			raster column 1/.style={add to width=-1cm},
+		]
+		\cmhlistingsfromfile{demonstrations/mycommand1-mlb2.tex}{\texttt{mycommand1.tex} using \cref{lst:mycom-mlb2}}{lst:mycommand1-mlb2}
+		\cmhlistingsfromfile[style=yaml-LST]*{demonstrations/mycom-mlb2.yaml}[MLB-TCB,width=.6\textwidth]{\texttt{mycom-mlb2.yaml}}{lst:mycom-mlb2}
+	\end{cmhtcbraster}
+
+	Now let's change the YAML file so that it is as in \cref{lst:mycom-mlb3}; upon running
+	the analogous command to that given above, we obtain \cref{lst:mycommand1-mlb3}.
+
+	\begin{cmhtcbraster}[
+			raster force size=false,
+			raster column 1/.style={add to width=-1cm},
+		]
+		\cmhlistingsfromfile{demonstrations/mycommand1-mlb3.tex}{\texttt{mycommand1.tex} using \cref{lst:mycom-mlb3}}{lst:mycommand1-mlb3}
+		\cmhlistingsfromfile[style=yaml-LST]*{demonstrations/mycom-mlb3.yaml}[MLB-TCB,width=.6\textwidth]{\texttt{mycom-mlb3.yaml}}{lst:mycom-mlb3}
+	\end{cmhtcbraster}
+
+\subsubsection{Conflicting poly-switches: sequential code blocks}
+	It is very easy to have conflicting poly-switches; if we use the example from
+	\vref{lst:mycommand1}, and consider the YAML settings given in \cref{lst:mycom-mlb4}. The
+	output from running
+	\index{poly-switches!conflicting switches}
+	\index{switches!-l demonstration}
+	\index{switches!-m demonstration}
+	\begin{commandshell}
+latexindent.pl -m -l=mycom-mlb4.yaml mycommand1.tex
+\end{commandshell}
+	is given in \cref{lst:mycom-mlb4}.
+
+	\begin{cmhtcbraster}
+		\cmhlistingsfromfile{demonstrations/mycommand1-mlb4.tex}{\texttt{mycommand1.tex} using \cref{lst:mycom-mlb4}}{lst:mycommand1-mlb4}
+		\cmhlistingsfromfile[style=yaml-LST]*{demonstrations/mycom-mlb4.yaml}[MLB-TCB,width=\linewidth]{\texttt{mycom-mlb4.yaml}}{lst:mycom-mlb4}
+	\end{cmhtcbraster}
+
+	Studying \cref{lst:mycom-mlb4}, we see that the two poly-switches are at opposition with
+	one another:
+	\begin{itemize}
+		\item on the one hand, \texttt{LCuBStartsOnOwnLine} should \emph{not} start on its own line (as
+		      poly-switch is set to $-1$);
+		\item on the other hand, \texttt{RCuBFinishesWithLineBreak} \emph{should} finish with a line
+		      break.
+	\end{itemize}
+	So, which should win the conflict? As demonstrated in \cref{lst:mycommand1-mlb4}, it is
+	clear that \texttt{LCuBStartsOnOwnLine} won this conflict, and the reason is that
+	\emph{the second argument was processed after the first} -- in general, the most
+	recently-processed code block and associated poly-switch takes priority.
+
+	We can explore this further by considering the YAML settings in \cref{lst:mycom-mlb5};
+	upon running the command
+	\index{switches!-l demonstration}
+	\index{switches!-m demonstration}
+	\begin{commandshell}
+latexindent.pl -m -l=mycom-mlb5.yaml mycommand1.tex
+\end{commandshell}
+	we obtain the output given in \cref{lst:mycommand1-mlb5}.
+
+	\begin{cmhtcbraster}[raster column skip=.1\linewidth]
+		\cmhlistingsfromfile{demonstrations/mycommand1-mlb5.tex}{\texttt{mycommand1.tex} using \cref{lst:mycom-mlb5}}{lst:mycommand1-mlb5}
+		\cmhlistingsfromfile[style=yaml-LST]*{demonstrations/mycom-mlb5.yaml}[MLB-TCB,width=\linewidth]{\texttt{mycom-mlb5.yaml}}{lst:mycom-mlb5}
+	\end{cmhtcbraster}
+
+	As previously, the most-recently-processed code block takes priority -- as before, the
+	second (i.e, \emph{last}) argument. Exploring this further, we consider the YAML settings
+	in \cref{lst:mycom-mlb6}, which give associated output in \cref{lst:mycommand1-mlb6}.
+
+	\begin{cmhtcbraster}[raster column skip=.1\linewidth]
+		\cmhlistingsfromfile{demonstrations/mycommand1-mlb6.tex}{\texttt{mycommand1.tex} using \cref{lst:mycom-mlb6}}{lst:mycommand1-mlb6}
+		\cmhlistingsfromfile[style=yaml-LST]*{demonstrations/mycom-mlb6.yaml}[MLB-TCB,width=\linewidth]{\texttt{mycom-mlb6.yaml}}{lst:mycom-mlb6}
+	\end{cmhtcbraster}
+
+	Note that a \lstinline!%! \emph{has} been added to the trailing first
+	\lstinline!}!; this is because:
+	\begin{itemize}
+		\item while processing the \emph{first} argument, the trailing line break has been removed
+		      (\texttt{RCuBFinishesWithLineBreak} set to $-1$);
+		\item while processing the \emph{second} argument, \texttt{latexindent.pl} finds that it does
+		      \emph{not} begin on its own line, and so because \texttt{LCuBStartsOnOwnLine} is set to
+		      $2$, it adds a comment, followed by a line break.
+	\end{itemize}
+
+\subsubsection{Conflicting poly-switches: nested code blocks}
+	Now let's consider an example when nested code blocks have conflicting poly-switches;
+	we'll use the code in \cref{lst:nested-env}, noting that it contains nested environments.
+	\index{poly-switches!conflicting switches}
+
+	\cmhlistingsfromfile{demonstrations/nested-env.tex}{\texttt{nested-env.tex}}{lst:nested-env}
+
+	Let's use the YAML settings given in \cref{lst:nested-env-mlb1-yaml}, which upon running
+	the command
+	\index{switches!-l demonstration}
+	\index{switches!-m demonstration}
+	\begin{commandshell}
+latexindent.pl -m -l=nested-env-mlb1.yaml nested-env.tex
+\end{commandshell}
+	gives the output in \cref{lst:nested-env-mlb1}.
+
+	\begin{cmhtcbraster}[raster column skip=.05\linewidth]
+		\cmhlistingsfromfile{demonstrations/nested-env-mlb1.tex}{\texttt{nested-env.tex} using \cref{lst:nested-env-mlb1-yaml}}{lst:nested-env-mlb1}
+		\cmhlistingsfromfile[style=yaml-LST]*{demonstrations/nested-env-mlb1.yaml}[MLB-TCB,width=\linewidth]{\texttt{nested-env-mlb1.yaml}}{lst:nested-env-mlb1-yaml}
+	\end{cmhtcbraster}
+
+	In \cref{lst:nested-env-mlb1}, let's first of all note that both environments have
+	received the appropriate (default) indentation; secondly, note that the poly-switch
+	\texttt{EndStartsOnOwnLine} appears to have won the conflict, as \lstinline!\end{one}!
+	has had its leading line break removed.
+
+	To understand it, let's talk about the three basic phases \label{page:phases}of
+	\texttt{latexindent.pl}:
+	\begin{enumerate}
+		\item Phase 1: packing, in which code blocks are replaced with unique ids, working from
+		      \emph{the inside to the outside}, and then sequentially -- for example, in
+		      \cref{lst:nested-env}, the \texttt{two} environment is found \emph{before} the
+		      \texttt{one} environment; if the -m switch is active, then during this phase:
+		      \begin{itemize}
+			      \item line breaks at the beginning of the \texttt{body} can be added (if
+			            \texttt{BodyStartsOnOwnLine} is $1$ or $2$) or removed (if \texttt{BodyStartsOnOwnLine}
+			            is $-1$);
+			      \item line breaks at the end of the body can be added (if \texttt{EndStartsOnOwnLine} is $1$ or
+			            $2$) or removed (if \texttt{EndStartsOnOwnLine} is $-1$);
+			      \item line breaks after the end statement can be added (if \texttt{EndFinishesWithLineBreak} is
+			            $1$ or $2$).
+		      \end{itemize}
+		\item Phase 2: indentation, in which white space is added to the begin, body, and end
+		      statements;
+		\item Phase 3: unpacking, in which unique ids are replaced by their \emph{indented} code
+		      blocks; if the -m switch is active, then during this phase,
+		      \begin{itemize}
+			      \item line breaks before \texttt{begin} statements can be added or removed (depending upon
+			            \texttt{BeginStartsOnOwnLine});
+			      \item line breaks after \emph{end} statements can be removed but \emph{NOT} added (see
+			            \texttt{EndFinishesWithLineBreak}).
+		      \end{itemize}
+	\end{enumerate}
+
+	With reference to \cref{lst:nested-env-mlb1}, this means that during Phase 1:
+	\begin{itemize}
+		\item the \texttt{two} environment is found first, and the line break ahead of the
+		      \lstinline!\end{two}! statement is removed because \texttt{EndStartsOnOwnLine} is set to
+		      $-1$. Importantly, because, \emph{at this stage},
+		      \lstinline!\end{two}! \emph{does} finish with a line break,
+		      \texttt{EndFinishesWithLineBreak} causes no action.
+		\item next, the \texttt{one} environment is found; the line break ahead of
+		      \lstinline!\end{one}! is removed because \texttt{EndStartsOnOwnLine} is set to
+		      $-1$.
+	\end{itemize}
+	The indentation is done in Phase 2; in Phase 3 \emph{there is no option to add a line
+		break after the \lstinline!end! statements}. We can justify this by remembering that
+	during Phase 3, the \texttt{one} environment will be found and processed first, followed
+	by the \texttt{two} environment. If the \texttt{two} environment were to add a line break
+	after the
+	\lstinline!\end{two}! statement, then \texttt{latexindent.pl} would have no way of
+	knowing how much indentation to add to the subsequent text (in this case,
+	\lstinline!\end{one}!).
+
+	We can explore this further using the poly-switches in \cref{lst:nested-env-mlb2}; upon
+	running the command
+	\index{switches!-l demonstration}
+	\index{switches!-m demonstration}
+	\begin{commandshell}
+latexindent.pl -m -l=nested-env-mlb2.yaml nested-env.tex
+\end{commandshell}
+	we obtain the output given in \cref{lst:nested-env-mlb2-output}.
+
+	\begin{cmhtcbraster}
+		\cmhlistingsfromfile{demonstrations/nested-env-mlb2.tex}{\texttt{nested-env.tex} using \cref{lst:nested-env-mlb2}}{lst:nested-env-mlb2-output}
+		\cmhlistingsfromfile[style=yaml-LST]*{demonstrations/nested-env-mlb2.yaml}[MLB-TCB,width=\linewidth]{\texttt{nested-env-mlb2.yaml}}{lst:nested-env-mlb2}
+	\end{cmhtcbraster}
+
+	During Phase 1:
+	\begin{itemize}
+		\item the \texttt{two} environment is found first, and the line break ahead of the
+		      \lstinline!\end{two}! statement is not changed because \texttt{EndStartsOnOwnLine} is
+		      set to $1$. Importantly, because, \emph{at this stage},
+		      \lstinline!\end{two}! \emph{does} finish with a line break,
+		      \texttt{EndFinishesWithLineBreak} causes no action.
+		\item next, the \texttt{one} environment is found; the line break ahead of
+		      \lstinline!\end{one}! is already present, and no action is needed.
+	\end{itemize}
+	The indentation is done in Phase 2, and then in Phase 3, the \texttt{one} environment is
+	found and processed first, followed by the \texttt{two} environment. \emph{At this
+		stage}, the \texttt{two} environment finds \texttt{EndFinishesWithLineBreak} is $-1$, so
+	it removes the trailing line break; remember, at this point, \texttt{latexindent.pl} has
+	completely finished with the \texttt{one} environment.


Property changes on: trunk/Master/texmf-dist/doc/support/latexindent/subsec-poly-switches.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/support/latexindent/subsec-remove-para-line-breaks.tex
===================================================================
--- trunk/Master/texmf-dist/doc/support/latexindent/subsec-remove-para-line-breaks.tex	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/support/latexindent/subsec-remove-para-line-breaks.tex	2021-08-01 20:35:09 UTC (rev 60132)
@@ -0,0 +1,217 @@
+% arara: pdflatex: {shell: yes, files: [latexindent]}
+\subsection{removeParagraphLineBreaks: modifying line breaks for paragraphs}\label{subsec:removeparagraphlinebreaks} When the \texttt{-m} switch is active
+	\texttt{latexindent.pl} has the ability to remove line
+	breaks%
+	\announce{2017-05-27}{removeParagraphLineBreaks}
+	from within paragraphs; the behaviour is controlled by the
+	\texttt{removeParagraphLineBreaks} field, detailed in
+	\cref{lst:removeParagraphLineBreaks}. Thank you to \cite{jowens} for shaping and
+	assisting with the testing of this feature.
+\yamltitle{removeParagraphLineBreaks}*{fields}
+	This feature is considered complimentary to the \texttt{oneSentencePerLine} feature
+	described in \vref{sec:onesentenceperline}.
+	\index{specialBeginEnd!removeParagraphLineBreaks}
+
+	\cmhlistingsfromfile[style=removeParagraphLineBreaks]*{../defaultSettings.yaml}[MLB-TCB,width=.85\linewidth,before=\centering]{\texttt{removeParagraphLineBreaks}}{lst:removeParagraphLineBreaks}
+
+	This routine can be turned on \emph{globally} for \emph{every} code block type known to
+	\texttt{latexindent.pl} (see \vref{tab:code-blocks}) by using the \texttt{all} switch; by
+	default, this switch is \emph{off}. Assuming that the \texttt{all} switch is off, then
+	the routine can be controlled on a per-code-block-type basis, and within that, on a
+	per-name basis. We will consider examples of each of these in turn, but before we do,
+	let's specify what \texttt{latexindent.pl} considers as a paragraph:
+	\begin{itemize}
+		\item it must begin on its own line with either an alphabetic or numeric character, and not
+		      with any of the code-block types detailed in \vref{tab:code-blocks};
+		\item it can include line breaks, but finishes when it meets either a blank line, a
+		      \lstinline!\par! command, or any of the user-specified settings in the
+		      \texttt{paragraphsStopAt} field, detailed in \vref{lst:paragraphsStopAt}.
+	\end{itemize}
+
+	Let's start with the \texttt{.tex} file in \cref{lst:shortlines}, together with the YAML
+	settings in \cref{lst:remove-para1-yaml}.
+
+	\begin{cmhtcbraster}
+		\cmhlistingsfromfile[showspaces=true]{demonstrations/shortlines.tex}{\texttt{shortlines.tex}}{lst:shortlines}
+		\cmhlistingsfromfile{demonstrations/remove-para1.yaml}[MLB-TCB]{\texttt{remove-para1.yaml}}{lst:remove-para1-yaml}
+	\end{cmhtcbraster}
+
+	Upon running the command
+	\index{switches!-l demonstration}
+	\index{switches!-m demonstration}
+	\index{switches!-o demonstration}
+	\begin{commandshell}
+latexindent.pl -m shortlines.tex -o shortlines1.tex -l remove-para1.yaml
+\end{commandshell}
+	then we obtain the output given in \cref{lst:shortlines1}.
+
+	\cmhlistingsfromfile[showspaces=true]{demonstrations/shortlines1.tex}{\texttt{shortlines1.tex}}{lst:shortlines1}
+
+	Keen readers may notice that some trailing white space must be present in the file in
+	\cref{lst:shortlines} which has crept in to the output in \cref{lst:shortlines1}. This
+	can be fixed using the YAML file in \vref{lst:removeTWS-before} and running, for example,
+	\index{switches!-l demonstration}
+	\index{switches!-m demonstration}
+	\index{switches!-o demonstration}
+	\begin{commandshell}
+latexindent.pl -m shortlines.tex -o shortlines1-tws.tex -l remove-para1.yaml,removeTWS-before.yaml  
+\end{commandshell}
+	in which case the output is as in \cref{lst:shortlines1-tws}; notice that the double
+	spaces present in \cref{lst:shortlines1} have been addressed.
+
+	\cmhlistingsfromfile[showspaces=true]{demonstrations/shortlines1-tws.tex}{\texttt{shortlines1-tws.tex}}{lst:shortlines1-tws}
+
+	Keeping with the settings in \cref{lst:remove-para1-yaml}, we note that the \texttt{all}
+	switch applies to \emph{all} code block types. So, for example, let's consider the files
+	in \cref{lst:shortlines-mand,lst:shortlines-opt}
+
+	\begin{cmhtcbraster}
+		\cmhlistingsfromfile{demonstrations/shortlines-mand.tex}{\texttt{shortlines-mand.tex}}{lst:shortlines-mand}
+		\cmhlistingsfromfile{demonstrations/shortlines-opt.tex}{\texttt{shortlines-opt.tex}}{lst:shortlines-opt}
+	\end{cmhtcbraster}
+
+	Upon running the commands
+	\index{switches!-l demonstration}
+	\index{switches!-m demonstration}
+	\index{switches!-o demonstration}
+	\begin{widepage}
+		\begin{commandshell}
+latexindent.pl -m shortlines-mand.tex -o shortlines-mand1.tex -l remove-para1.yaml
+latexindent.pl -m shortlines-opt.tex -o shortlines-opt1.tex -l remove-para1.yaml
+\end{commandshell}
+	\end{widepage}
+
+	then we obtain the respective output given in
+	\cref{lst:shortlines-mand1,lst:shortlines-opt1}.
+
+	\cmhlistingsfromfile{demonstrations/shortlines-mand1.tex}{\texttt{shortlines-mand1.tex}}{lst:shortlines-mand1}
+	\cmhlistingsfromfile{demonstrations/shortlines-opt1.tex}{\texttt{shortlines-opt1.tex}}{lst:shortlines-opt1}
+
+	Assuming that we turn \emph{off} the \texttt{all} switch (by setting it to \texttt{0}),
+	then we can control the behaviour of \texttt{removeParagraphLineBreaks} either on a
+	per-code-block-type basis, or on a per-name basis.
+
+	For example, let's use the code in \cref{lst:shortlines-envs}, and consider the settings
+	in \cref{lst:remove-para2-yaml,lst:remove-para3-yaml}; note that in
+	\cref{lst:remove-para2-yaml} we specify that \emph{every} environment should receive
+	treatment from the routine, while in \cref{lst:remove-para3-yaml} we specify that
+	\emph{only} the \texttt{one} environment should receive the treatment.
+
+	\begin{minipage}{.45\linewidth}
+		\cmhlistingsfromfile{demonstrations/shortlines-envs.tex}{\texttt{shortlines-envs.tex}}{lst:shortlines-envs}
+	\end{minipage}
+	\hfill
+	\begin{minipage}{.49\linewidth}
+		\cmhlistingsfromfile{demonstrations/remove-para2.yaml}[MLB-TCB]{\texttt{remove-para2.yaml}}{lst:remove-para2-yaml}
+		\cmhlistingsfromfile{demonstrations/remove-para3.yaml}[MLB-TCB]{\texttt{remove-para3.yaml}}{lst:remove-para3-yaml}
+	\end{minipage}
+
+	Upon running the commands
+	\index{switches!-l demonstration}
+	\index{switches!-m demonstration}
+	\index{switches!-o demonstration}
+	\begin{widepage}
+		\begin{commandshell}
+latexindent.pl -m shortlines-envs.tex -o shortlines-envs2.tex -l remove-para2.yaml
+latexindent.pl -m shortlines-envs.tex -o shortlines-envs3.tex -l remove-para3.yaml
+\end{commandshell}
+	\end{widepage}
+	then we obtain the respective output given in
+	\cref{lst:shortlines-envs2,lst:shortlines-envs3}.
+
+	\cmhlistingsfromfile{demonstrations/shortlines-envs2.tex}{\texttt{shortlines-envs2.tex}}{lst:shortlines-envs2}
+	\cmhlistingsfromfile{demonstrations/shortlines-envs3.tex}{\texttt{shortlines-envs3.tex}}{lst:shortlines-envs3}
+
+	The remaining code-block types can be customised in analogous ways, although note that
+	\texttt{commands}, \texttt{keyEqualsValuesBracesBrackets},
+	\texttt{namedGroupingBracesBrackets}, \texttt{UnNamedGroupingBracesBrackets} are
+	controlled by the \texttt{optionalArguments} and the \texttt{mandatoryArguments}.
+
+	The only special case is the \texttt{masterDocument} field; this is designed for
+	`chapter'-type files that may contain paragraphs that are not within any other
+	code-blocks. For example, consider the file in \cref{lst:shortlines-md}, with the YAML
+	settings in \cref{lst:remove-para4-yaml}.
+
+	\begin{cmhtcbraster}
+		\cmhlistingsfromfile{demonstrations/shortlines-md.tex}{\texttt{shortlines-md.tex}}{lst:shortlines-md}
+		\cmhlistingsfromfile{demonstrations/remove-para4.yaml}[MLB-TCB]{\texttt{remove-para4.yaml}}{lst:remove-para4-yaml}
+	\end{cmhtcbraster}
+
+	Upon running the following command
+	\index{switches!-l demonstration}
+	\index{switches!-m demonstration}
+	\index{switches!-o demonstration}
+	\begin{widepage}
+		\begin{commandshell}
+latexindent.pl -m shortlines-md.tex -o shortlines-md4.tex -l remove-para4.yaml
+\end{commandshell}
+	\end{widepage}
+	then we obtain the output in \cref{lst:shortlines-md4}.
+	\cmhlistingsfromfile{demonstrations/shortlines-md4.tex}{\texttt{shortlines-md4.tex}}{lst:shortlines-md4}
+
+	Note%
+	\announce{2018-08-13}*{updates to all in removeParagraphLineBreaks} that the \texttt{all} field can take the same exceptions
+	detailed in \crefrange{lst:textwrap6-yaml}{lst:textwrap8-yaml}.
+
+\yamltitle{paragraphsStopAt}*{fields}
+	The paragraph line break routine considers blank lines and the
+	\lstinline|\par| command to be the end of a paragraph;
+	\announce{2017-05-27}{paragraphsStopAt} you can fine tune the behaviour of the routine
+	further by using the \texttt{paragraphsStopAt} fields, shown in
+	\cref{lst:paragraphsStopAt}.
+	\index{specialBeginEnd!paragraphsStopAt}
+	\index{verbatim!in relation to paragraphsStopAt}
+
+	\cmhlistingsfromfile[style=paragraphsStopAt]*{../defaultSettings.yaml}[MLB-TCB,width=.85\linewidth,before=\centering]{\texttt{paragraphsStopAt}}{lst:paragraphsStopAt}
+
+	The fields specified in \texttt{paragraphsStopAt} tell \texttt{latexindent.pl} to stop
+	the current paragraph when it reaches a line that \emph{begins} with any of the
+	code-block types specified as \texttt{1} in \cref{lst:paragraphsStopAt}. By default,
+	you'll see that the paragraph line break routine will stop when it reaches an environment
+	or verbatim code block at the beginning of a line. It is \emph{not} possible to specify
+	these fields on a per-name basis.
+
+	Let's use the \texttt{.tex} file in \cref{lst:sl-stop}; we will, in turn, consider the
+	settings in \cref{lst:stop-command-yaml,lst:stop-comment-yaml}.
+
+	\begin{minipage}{.45\linewidth}
+		\cmhlistingsfromfile{demonstrations/sl-stop.tex}{\texttt{sl-stop.tex}}{lst:sl-stop}
+	\end{minipage}
+	\hfill
+	\begin{minipage}{.49\linewidth}
+		\cmhlistingsfromfile{demonstrations/stop-command.yaml}[MLB-TCB]{\texttt{stop-command.yaml}}{lst:stop-command-yaml}
+
+		\cmhlistingsfromfile{demonstrations/stop-comment.yaml}[MLB-TCB]{\texttt{stop-comment.yaml}}{lst:stop-comment-yaml}
+	\end{minipage}
+
+	Upon using the settings from \vref{lst:remove-para4-yaml} and running the commands
+	\index{switches!-l demonstration}
+	\index{switches!-m demonstration}
+	\index{switches!-o demonstration}
+	\begin{widepage}
+		\begin{commandshell}
+latexindent.pl -m sl-stop.tex -o sl-stop4.tex -l remove-para4.yaml
+latexindent.pl -m sl-stop.tex -o sl-stop4-command.tex -l=remove-para4.yaml,stop-command.yaml
+latexindent.pl -m sl-stop.tex -o sl-stop4-comment.tex -l=remove-para4.yaml,stop-comment.yaml
+\end{commandshell}
+	\end{widepage}
+	we obtain the respective outputs in \crefrange{lst:sl-stop4}{lst:sl-stop4-comment};
+	notice in particular that:
+	\begin{itemize}
+		\item in \cref{lst:sl-stop4} the paragraph line break routine has included commands and
+		      comments;
+		\item in \cref{lst:sl-stop4-command} the paragraph line break routine has \emph{stopped} at the
+		      \texttt{emph} command, because in \cref{lst:stop-command-yaml} we have specified
+		      \texttt{commands} to be \texttt{1}, and \texttt{emph} is at the beginning of a line;
+		\item in \cref{lst:sl-stop4-comment} the paragraph line break routine has \emph{stopped} at the
+		      comments, because in \cref{lst:stop-comment-yaml} we have specified \texttt{comments} to
+		      be \texttt{1}, and the comment is at the beginning of a line.
+	\end{itemize}
+	In all outputs in \crefrange{lst:sl-stop4}{lst:sl-stop4-comment} we notice that the
+	paragraph line break routine has stopped at \lstinline!\begin{myenv}! because, by
+	default, \texttt{environments} is set to \texttt{1} in \vref{lst:paragraphsStopAt}.
+
+	\cmhlistingsfromfile{demonstrations/sl-stop4.tex}{\texttt{sl-stop4.tex}}{lst:sl-stop4}
+	\cmhlistingsfromfile{demonstrations/sl-stop4-command.tex}{\texttt{sl-stop4-command.tex}}{lst:sl-stop4-command}
+	\cmhlistingsfromfile{demonstrations/sl-stop4-comment.tex}{\texttt{sl-stop4-comment.tex}}{lst:sl-stop4-comment}
+


Property changes on: trunk/Master/texmf-dist/doc/support/latexindent/subsec-remove-para-line-breaks.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/support/latexindent/subsec-text-wrap-summary.tex
===================================================================
--- trunk/Master/texmf-dist/doc/support/latexindent/subsec-text-wrap-summary.tex	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/support/latexindent/subsec-text-wrap-summary.tex	2021-08-01 20:35:09 UTC (rev 60132)
@@ -0,0 +1,26 @@
+% arara: pdflatex: {shell: yes, files: [latexindent]}
+\subsection{Summary of text wrapping}
+	I consider%
+	\announce*{2021-07-31}{text wrap quick start}
+	the most useful starting point for text wrapping to be given in
+	\cref{subsec:textwrapping-quick-start} and \cref{subsubsec:text-wrap-remove-para-bfccb}.
+
+	Starting from \cref{lst:textwrap-qs-yaml}, it is likely that you will have to experiment
+	with making adjustments (such as that given in \cref{lst:textwrap14-yaml}) depending on
+	your preference.
+
+	It is important to note the following:
+	\index{verbatim!within summary of text wrapping}
+	\begin{itemize}
+		\item verbatim code blocks of all types will \emph{not} be affected by the text wrapping
+		      routine. See the demonstration in \vref{lst:textwrap2-mod1}, together with environments:
+		      \vref{lst:verbatimEnvironments}, commands: \vref{lst:verbatimCommands},
+		      \texttt{noIndentBlock}: \cref{lst:noIndentBlock}, \texttt{specialBeginEnd}:
+		      \vref{lst:special3-mod1};
+		\item comments will \emph{not} be affected by the text wrapping routine (see
+		      \vref{lst:textwrap3-mod1});
+		\item it is possible to wrap text on a per-code-block and a per-name basis;
+		      \announce{2018-08-13}*{updates to textWrapOptions}
+		\item indentation is performed \emph{after} the text wrapping routine; as such, indented code
+		      will likely exceed any maximum value set in the \texttt{columns} field.
+	\end{itemize}


Property changes on: trunk/Master/texmf-dist/doc/support/latexindent/subsec-text-wrap-summary.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/support/latexindent/subsec-text-wrap.tex
===================================================================
--- trunk/Master/texmf-dist/doc/support/latexindent/subsec-text-wrap.tex	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/support/latexindent/subsec-text-wrap.tex	2021-08-01 20:35:09 UTC (rev 60132)
@@ -0,0 +1,359 @@
+% arara: pdflatex: {shell: yes, files: [latexindent]}
+\subsection{Text Wrapping}\label{subsec:textwrapping}
+	There are \emph{many} different configuration options for the text wrapping routine of
+	\texttt{latexindent.pl}, perhaps \emph{too} many. The following sections are
+	comprehensive, but quite long; in an attempt to to be brief, you might begin with the
+	settings given in \cref{subsec:textwrapping-quick-start}.
+
+\subsubsection{Text wrap quick start}\label{subsec:textwrapping-quick-start}
+
+	Of all the available text wrapping options, I consider \cref{lst:textwrap-qs-yaml} to be
+	among the most helpful starting points.
+
+	\cmhlistingsfromfile*{demonstrations/textwrap-qs.yaml}[MLB-TCB,width=1\linewidth]{\texttt{textwrap-qs.yaml}}{lst:textwrap-qs-yaml}
+
+	\index{text wrap!quick start}
+
+	You can read about \texttt{perCodeBlockBasis} in \cref{subsec:text-wrap-per-code-block}
+	and \texttt{removeParagraphLineBreaks} in \cref{subsec:removeparagraphlinebreaks}.
+
+	If the settings in \cref{lst:textwrap-qs-yaml} do not give your desired output, take a
+	look at the demonstration in \cref{subsubsec:text-wrap-remove-para-bfccb}, in particular
+	\cref{lst:textwrap-bfccb-mod14}.
+
+\subsubsection{textWrapOptions: modifying line breaks by text wrapping}
+
+	When the \texttt{-m} switch is active \texttt{latexindent.pl} has the ability to wrap
+	text using the options%
+	\announce{2017-05-27}{textWrapOptions} specified in the \texttt{textWrapOptions} field,
+	see \cref{lst:textWrapOptions}.
+
+	\index{modifying linebreaks! by text wrapping, globally}
+
+	\cmhlistingsfromfile[style=textWrapOptions]*{../defaultSettings.yaml}[MLB-TCB,width=.85\linewidth,before=\centering]{\texttt{textWrapOptions}}{lst:textWrapOptions}
+
+	The value of \texttt{columns} specifies the column at which the text should be wrapped.
+
+	By default, the value of \texttt{columns} is \texttt{0}, so \texttt{latexindent.pl} will
+	\emph{not} wrap text; if you change it to a value of \texttt{2} or more, then text will
+	be wrapped after the character in the specified column.
+
+	By default, the text wrapping routine will operate \emph{before} the code blocks have
+	been searched for; text wrapping on a \emph{per-code-block} basis is discussed in
+	\cref{subsec:text-wrap-per-code-block}.
+
+	We consider the file give in \cref{lst:textwrap1} for demonstration.
+
+	\begin{widepage}
+		\cmhlistingsfromfile{demonstrations/textwrap1.tex}{\texttt{textwrap1.tex}}{lst:textwrap1}
+	\end{widepage}
+
+	Using the file \texttt{textwrap1.yaml} in \cref{lst:textwrap1-yaml}, and running the
+	command
+	\index{switches!-l demonstration}
+	\index{switches!-m demonstration}
+	\index{switches!-o demonstration}
+	\begin{commandshell}
+latexindent.pl -m textwrap1.tex -o textwrap1-mod1.tex -l textwrap1.yaml
+\end{commandshell}
+	we obtain the output in \cref{lst:textwrap1-mod1}.
+
+	\begin{cmhtcbraster}[raster column skip=.1\linewidth]
+		\cmhlistingsfromfile{demonstrations/textwrap1-mod1.tex}{\texttt{textwrap1-mod1.tex}}{lst:textwrap1-mod1}
+		\cmhlistingsfromfile{demonstrations/textwrap1.yaml}[MLB-TCB]{\texttt{textwrap1.yaml}}{lst:textwrap1-yaml}
+	\end{cmhtcbraster}
+
+	The text wrapping routine is performed \emph{after} verbatim environments
+	\index{verbatim!in relation to textWrapOptions} have been stored, so verbatim
+	environments and verbatim commands are exempt from the routine. For example, using the
+	file in \cref{lst:textwrap2},
+	\begin{widepage}
+		\cmhlistingsfromfile{demonstrations/textwrap2.tex}{\texttt{textwrap2.tex}}{lst:textwrap2}
+	\end{widepage}
+	and running the following command and continuing to use \texttt{textwrap1.yaml} from
+	\cref{lst:textwrap1-yaml},
+	\index{switches!-l demonstration}
+	\index{switches!-m demonstration}
+	\index{switches!-o demonstration}
+	\begin{commandshell}
+latexindent.pl -m textwrap2.tex -o textwrap2-mod1.tex -l textwrap1.yaml
+\end{commandshell}
+	then the output is as in \cref{lst:textwrap2-mod1}.
+	\begin{widepage}
+		\cmhlistingsfromfile{demonstrations/textwrap2-mod1.tex}{\texttt{textwrap2-mod1.tex}}{lst:textwrap2-mod1}
+	\end{widepage}
+	Furthermore, the text wrapping routine is performed after the trailing comments have been
+	stored, and they are also exempt from text wrapping. For example, using the file in
+	\cref{lst:textwrap3}
+	\begin{widepage}
+		\cmhlistingsfromfile{demonstrations/textwrap3.tex}{\texttt{textwrap3.tex}}{lst:textwrap3}
+	\end{widepage}
+	and running the following command and continuing to use \texttt{textwrap1.yaml} from
+	\cref{lst:textwrap1-yaml},
+	\index{switches!-l demonstration}
+	\index{switches!-m demonstration}
+	\index{switches!-o demonstration}
+	\begin{commandshell}
+latexindent.pl -m textwrap3.tex -o textwrap3-mod1.tex -l textwrap1.yaml
+\end{commandshell}
+	then the output is as in \cref{lst:textwrap3-mod1}.
+
+	\cmhlistingsfromfile{demonstrations/textwrap3-mod1.tex}{\texttt{textwrap3-mod1.tex}}{lst:textwrap3-mod1}
+
+	The%
+	\announce{2021-07-23}*{huge:overflow is now default}
+	default value of \texttt{huge} is \texttt{overflow}, which means that words will
+	\emph{not} be broken by the text wrapping routine, implemented by the \texttt{Text::Wrap}
+	\cite{textwrap}. There are options to change the \texttt{huge} option for the
+	\texttt{Text::Wrap} module to either \texttt{wrap} or \texttt{die}. Before modifying the
+	value of \texttt{huge}, please bear in mind the following warning:
+	\index{warning!changing huge (textwrap)}
+	\begin{warning}
+		\raggedright
+		Changing the value of \texttt{huge} to anything other than \texttt{overflow} will slow down
+		\texttt{latexindent.pl} significantly when the \texttt{-m} switch is active.
+
+		Furthermore, changing \texttt{huge} means that you may have some words \emph{or commands}(!)
+		split across lines in your .tex file, which may affect your output. I do not recommend
+		changing this field.
+	\end{warning}
+
+	For example, using the settings in \cref{lst:textwrap2A-yaml,lst:textwrap2B-yaml} and
+	running the commands
+	\index{switches!-l demonstration}
+	\index{switches!-m demonstration}
+	\index{switches!-o demonstration}
+	\begin{commandshell}
+latexindent.pl -m textwrap4.tex -o=+-mod2A -l textwrap2A.yaml
+latexindent.pl -m textwrap4.tex -o=+-mod2B -l textwrap2B.yaml
+\end{commandshell}
+	gives the respective output in \cref{lst:textwrap4-mod2A,lst:textwrap4-mod2B}.
+
+	\begin{cmhtcbraster}[raster column skip=.1\linewidth]
+		\cmhlistingsfromfile{demonstrations/textwrap4-mod2A.tex}{\texttt{textwrap4-mod2A.tex}}{lst:textwrap4-mod2A}
+		\cmhlistingsfromfile{demonstrations/textwrap2A.yaml}[MLB-TCB]{\texttt{textwrap2A.yaml}}{lst:textwrap2A-yaml}
+
+		\cmhlistingsfromfile{demonstrations/textwrap4-mod2B.tex}{\texttt{textwrap4-mod2B.tex}}{lst:textwrap4-mod2B}
+		\cmhlistingsfromfile{demonstrations/textwrap2B.yaml}[MLB-TCB]{\texttt{textwrap2B.yaml}}{lst:textwrap2B-yaml}
+	\end{cmhtcbraster}
+
+	You can also specify the \texttt{tabstop} field%
+	\announce{2020-11-06}{tabstop option for text wrap module} as an integer value, which is
+	passed to the text wrap module; see \cite{textwrap} for details. Starting with the code
+	in \cref{lst:textwrap-ts} with settings in \cref{lst:tabstop}, and running the command
+	\index{switches!-l demonstration}
+	\index{switches!-m demonstration}
+	\index{switches!-o demonstration}
+	\begin{commandshell}
+latexindent.pl -m textwrap-ts.tex -o=+-mod1 -l tabstop.yaml
+\end{commandshell}
+	gives the code given in \cref{lst:textwrap-ts-mod1}.
+	\begin{cmhtcbraster}[raster columns=3,
+			raster left skip=-3.5cm,
+			raster right skip=-2cm,
+			raster column skip=.03\linewidth]
+		\cmhlistingsfromfile[showtabs=true]*{demonstrations/textwrap-ts.tex}{\texttt{textwrap-ts.tex}}{lst:textwrap-ts}
+		\cmhlistingsfromfile{demonstrations/tabstop.yaml}[MLB-TCB]{\texttt{tabstop.yaml}}{lst:tabstop}
+		\cmhlistingsfromfile[showtabs=true]*{demonstrations/textwrap-ts-mod1.tex}{\texttt{textwrap-ts-mod1.tex}}{lst:textwrap-ts-mod1}
+	\end{cmhtcbraster}
+
+	You can specify \texttt{separator}, \texttt{break} and \texttt{unexpand} options in your
+	settings in analogous ways to those demonstrated in
+	\cref{lst:textwrap2B-yaml,lst:tabstop}, and they will be passed to the
+	\texttt{Text::Wrap} module. I have not found a useful reason to do this; see
+	\cite{textwrap} for more details.
+
+\subsubsection{Text wrapping on a per-code-block basis}\label{subsec:text-wrap-per-code-block} By default, if the value of
+	\texttt{columns} is greater than 0 and the \texttt{-m} switch is active,
+	then%
+	\announce{2018-08-13}*{updates to textWrapOptions}
+	the text wrapping routine will operate before the code blocks have been searched for.
+	This behaviour is customisable; in particular, you can instead instruct
+	\texttt{latexindent.pl} to apply \texttt{textWrap} on a per-code-block basis. Thanks to
+	\cite{zoehneto} for their help in testing and shaping this feature.
+	\index{modifying linebreaks! by text wrapping, per-code-block}
+
+	The full details of \texttt{textWrapOptions} are shown in \cref{lst:textWrapOptionsAll}.
+	In particular, note the field \texttt{perCodeBlockBasis: 0}.
+	\index{specialBeginEnd!textWrapOptions}
+
+	\cmhlistingsfromfile*[style=textWrapOptionsAll]*{../defaultSettings.yaml}[MLB-TCB,width=.95\linewidth,before=\centering]{\texttt{textWrapOptions}}{lst:textWrapOptionsAll}
+
+	The code blocks detailed in \cref{lst:textWrapOptionsAll} are with direct reference to
+	those detailed in \vref{tab:code-blocks}.
+
+	The only special case is the \texttt{masterDocument} field; this is designed for
+	`chapter'-type files that may contain paragraphs that are not within any other
+	code-blocks. The same notation is used between this feature and the
+	\texttt{removeParagraphLineBreaks} described in \vref{lst:removeParagraphLineBreaks}; in
+	fact, the two features can even be combined (this is detailed in
+	\vref{subsec:removeparagraphlinebreaks:and:textwrap}).
+
+	Let's explore these switches with reference to the code given in \cref{lst:textwrap5};
+	the text outside of the environment is considered part of the \texttt{masterDocument}.
+
+	\begin{widepage}
+		\cmhlistingsfromfile{demonstrations/textwrap5.tex}{\texttt{textwrap5.tex}}{lst:textwrap5}
+	\end{widepage}
+
+	With reference to this code block, the settings given in
+	\cref{lst:textwrap3-yaml,lst:textwrap4-yaml,lst:textwrap5-yaml} each give the same
+	output.
+
+	\begin{cmhtcbraster}[raster columns=3,
+			raster left skip=-3.5cm,
+			raster right skip=-2cm,
+			raster column skip=.03\linewidth]
+		\cmhlistingsfromfile{demonstrations/textwrap3.yaml}[MLB-TCB]{\texttt{textwrap3.yaml}}{lst:textwrap3-yaml}
+		\cmhlistingsfromfile{demonstrations/textwrap4.yaml}[MLB-TCB]{\texttt{textwrap4.yaml}}{lst:textwrap4-yaml}
+		\cmhlistingsfromfile{demonstrations/textwrap5.yaml}[MLB-TCB]{\texttt{textwrap5.yaml}}{lst:textwrap5-yaml}
+	\end{cmhtcbraster}
+
+	Let's explore the similarities and differences in the equivalent (with respect to
+	\cref{lst:textwrap5}) syntax specified in
+	\cref{lst:textwrap3-yaml,lst:textwrap4-yaml,lst:textwrap5-yaml}:
+	\begin{itemize}
+		\item in each of \cref{lst:textwrap3-yaml,lst:textwrap4-yaml,lst:textwrap5-yaml} notice that
+		      \texttt{columns: 30};
+		\item in each of \cref{lst:textwrap3-yaml,lst:textwrap4-yaml,lst:textwrap5-yaml} notice that
+		      \texttt{perCodeBlockBasis: 1};
+		\item in \cref{lst:textwrap3-yaml} we have specified \texttt{all: 1} so that the text wrapping
+		      will operate upon \emph{all} code blocks;
+		\item in \cref{lst:textwrap4-yaml} we have \emph{not} specified \texttt{all}, and instead, have
+		      specified that text wrapping should be applied to each of \texttt{environments} and
+		      \texttt{masterDocument};
+		\item in \cref{lst:textwrap5-yaml} we have specified text wrapping for \texttt{masterDocument}
+		      and on a \emph{per-name} basis for \texttt{environments} code blocks.
+	\end{itemize}
+
+	Upon running the following commands
+	\index{switches!-l demonstration}
+	\index{switches!-m demonstration}
+	\begin{commandshell}
+latexindent.pl -s textwrap5.tex -l=textwrap3.yaml -m
+latexindent.pl -s textwrap5.tex -l=textwrap4.yaml -m
+latexindent.pl -s textwrap5.tex -l=textwrap5.yaml -m
+\end{commandshell}
+	we obtain the output shown in \cref{lst:textwrap5-mod3}.
+
+	\cmhlistingsfromfile{demonstrations/textwrap5-mod3.tex}{\texttt{textwrap5-mod3.tex}}{lst:textwrap5-mod3}
+
+	We can explore the idea of per-name text wrapping given in \cref{lst:textwrap5-yaml} by
+	using \cref{lst:textwrap6}.
+
+	\begin{widepage}
+		\cmhlistingsfromfile{demonstrations/textwrap6.tex}{\texttt{textwrap6.tex}}{lst:textwrap6}
+	\end{widepage}
+
+	In particular, upon running
+	\index{switches!-l demonstration}
+	\index{switches!-m demonstration}
+	\begin{commandshell}
+latexindent.pl -s textwrap6.tex -l=textwrap5.yaml -m
+\end{commandshell}
+	we obtain the output given in \cref{lst:textwrap6-mod5}.
+
+	\begin{widepage}
+		\cmhlistingsfromfile{demonstrations/textwrap6-mod5.tex}{\texttt{textwrap6.tex} using \cref{lst:textwrap5-yaml}}{lst:textwrap6-mod5}
+	\end{widepage}
+
+	Notice that, because \texttt{environments} has been specified only for \texttt{myenv} (in
+	\cref{lst:textwrap5-yaml}) that the environment named \texttt{another} has \emph{not} had
+	text wrapping applied to it.
+
+	The {all} field can be specified with exceptions which can either be done on a
+	per-code-block or per-name basis; we explore this in relation to \cref{lst:textwrap6} in
+	the settings given in \crefrange{lst:textwrap6-yaml}{lst:textwrap8-yaml}.
+
+	\begin{adjustwidth}{-3.5cm}{-2.5cm}
+		\begin{minipage}{.33\linewidth}
+			\cmhlistingsfromfile{demonstrations/textwrap6.yaml}[MLB-TCB]{\texttt{textwrap6.yaml}}{lst:textwrap6-yaml}
+		\end{minipage}%
+		\begin{minipage}{.33\linewidth}
+			\cmhlistingsfromfile{demonstrations/textwrap7.yaml}[MLB-TCB]{\texttt{textwrap7.yaml}}{lst:textwrap7-yaml}
+		\end{minipage}%
+		\begin{minipage}{.33\linewidth}
+			\cmhlistingsfromfile{demonstrations/textwrap8.yaml}[MLB-TCB]{\texttt{textwrap8.yaml}}{lst:textwrap8-yaml}
+		\end{minipage}
+	\end{adjustwidth}
+
+	Upon running the commands
+	\index{switches!-l demonstration}
+	\index{switches!-m demonstration}
+	\begin{commandshell}
+latexindent.pl -s textwrap6.tex -l=textwrap6.yaml -m
+latexindent.pl -s textwrap6.tex -l=textwrap7.yaml -m
+latexindent.pl -s textwrap6.tex -l=textwrap8.yaml -m
+\end{commandshell}
+	we receive the respective output given in
+	\crefrange{lst:textwrap6-mod6}{lst:textwrap6-mod8}.
+	\begin{widepage}
+		\cmhlistingsfromfile{demonstrations/textwrap6-mod6.tex}{\texttt{textwrap6.tex} using \cref{lst:textwrap6-yaml}}{lst:textwrap6-mod6}
+
+		\cmhlistingsfromfile{demonstrations/textwrap6-mod7.tex}{\texttt{textwrap6.tex} using \cref{lst:textwrap7-yaml}}{lst:textwrap6-mod7}
+
+		\cmhlistingsfromfile{demonstrations/textwrap6-mod8.tex}{\texttt{textwrap6.tex} using \cref{lst:textwrap8-yaml}}{lst:textwrap6-mod8}
+	\end{widepage}
+
+	Notice that:
+	\begin{itemize}
+		\item in \cref{lst:textwrap6-mod6} the text wrapping routine has not been applied to any
+		      \texttt{environments} because it has been switched off (per-code-block) in
+		      \cref{lst:textwrap6-yaml};
+		\item in \cref{lst:textwrap6-mod7} the text wrapping routine has not been applied to
+		      \texttt{myenv} because it has been switched off (per-name) in \cref{lst:textwrap7-yaml};
+		\item in \cref{lst:textwrap6-mod8} the text wrapping routine has not been applied to
+		      \texttt{masterDocument} because of the settings in \cref{lst:textwrap8-yaml}.
+	\end{itemize}
+
+	The \texttt{columns} field has a variety of different ways that it can be specified;
+	we've seen two basic ways already: the default (set to \texttt{0}) and a positive integer
+	(see \vref{lst:textwrap6}, for example). We explore further options in
+	\crefrange{lst:textwrap9-yaml}{lst:textwrap11-yaml}.
+
+	\begin{cmhtcbraster}[raster columns=3,
+			raster left skip=-3.5cm,
+			raster right skip=-2cm,
+			raster column skip=.03\linewidth]
+		\cmhlistingsfromfile{demonstrations/textwrap9.yaml}[MLB-TCB]{\texttt{textwrap9.yaml}}{lst:textwrap9-yaml}
+		\cmhlistingsfromfile{demonstrations/textwrap10.yaml}[MLB-TCB]{\texttt{textwrap10.yaml}}{lst:textwrap10-yaml}
+		\cmhlistingsfromfile{demonstrations/textwrap11.yaml}[MLB-TCB]{\texttt{textwrap11.yaml}}{lst:textwrap11-yaml}
+	\end{cmhtcbraster}
+
+	\Cref{lst:textwrap9-yaml} and \cref{lst:textwrap10-yaml} are equivalent. Upon running
+	the commands
+	\index{switches!-l demonstration}
+	\index{switches!-m demonstration}
+	\begin{commandshell}
+latexindent.pl -s textwrap6.tex -l=textwrap9.yaml -m
+latexindent.pl -s textwrap6.tex -l=textwrap11.yaml -m
+\end{commandshell}
+	we receive the respective output given in \cref{lst:textwrap6-mod9,lst:textwrap6-mod11}.
+
+	\begin{widepage}
+		\cmhlistingsfromfile{demonstrations/textwrap6-mod9.tex}{\texttt{textwrap6.tex} using \cref{lst:textwrap9-yaml}}{lst:textwrap6-mod9}
+
+		\cmhlistingsfromfile{demonstrations/textwrap6-mod11.tex}{\texttt{textwrap6.tex} using \cref{lst:textwrap11-yaml}}{lst:textwrap6-mod11}
+	\end{widepage}
+
+	Notice that:
+	\begin{itemize}
+		\item in \cref{lst:textwrap6-mod9} the text for the \texttt{masterDocument} has been wrapped
+		      using \texttt{30} columns, while \texttt{environments} has been wrapped using \texttt{50}
+		      columns;
+		\item in \cref{lst:textwrap6-mod11} the text for \texttt{myenv} has been wrapped using
+		      \texttt{50} columns, the text for \texttt{another} has been wrapped using \texttt{15}
+		      columns, and \texttt{masterDocument} has been wrapped using \texttt{30} columns.
+	\end{itemize}
+	If you don't specify a \texttt{default} value on per-code-block basis, then the
+	\texttt{default} value from \texttt{columns} will be inherited; if you don't specify a
+	default value for \texttt{columns} then \texttt{80} will be used.
+
+	\texttt{alignAtAmpersandTakesPriority} is set to \texttt{1} by default; assuming
+	that text wrapping is occurring on a per-code-block basis, and the current
+	environment/code block is specified within \vref{lst:aligndelims:basic} then text
+	wrapping will be disabled for this code block.
+
+	If you wish to specify \texttt{afterHeading} commands (see
+	\vref{lst:indentAfterHeadings}) on a per-name basis, then you need to append the name
+	with \texttt{:heading}, for example, you might use \texttt{section:heading}.


Property changes on: trunk/Master/texmf-dist/doc/support/latexindent/subsec-text-wrap.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Modified: trunk/Master/texmf-dist/doc/support/latexindent/subsubsec-commands-with-arguments.tex
===================================================================
--- trunk/Master/texmf-dist/doc/support/latexindent/subsubsec-commands-with-arguments.tex	2021-08-01 02:06:28 UTC (rev 60131)
+++ trunk/Master/texmf-dist/doc/support/latexindent/subsubsec-commands-with-arguments.tex	2021-08-01 20:35:09 UTC (rev 60132)
@@ -1,9 +1,9 @@
 % arara: pdflatex: {shell: yes, files: [latexindent]}
 \subsubsection{Commands with arguments}\label{subsubsec:commands-arguments}
-	Let's begin with the simple example in \cref{lst:mycommand}; when
-	\texttt{latexindent.pl} operates on this file, the default output is shown in
-	\cref{lst:mycommand-default}. \footnote{The command code blocks
-		have quite a few subtleties, described in \vref{subsec:commands-string-between}.}
+	Let's begin with the simple example in \cref{lst:mycommand}; when \texttt{latexindent.pl}
+	operates on this file, the default output is shown in \cref{lst:mycommand-default}.
+	\footnote{The command code blocks have quite a few subtleties, described in
+		\vref{subsec:commands-string-between}.}
 
 	\begin{cmhtcbraster}[raster column skip=.1\linewidth]
 		\cmhlistingsfromfile{demonstrations/mycommand.tex}{\texttt{mycommand.tex}}{lst:mycommand}
@@ -10,9 +10,9 @@
 		\cmhlistingsfromfile{demonstrations/mycommand-default.tex}{\texttt{mycommand.tex} default output}{lst:mycommand-default}
 	\end{cmhtcbraster}
 
-	As in the environment-based case (see \vref{lst:myenv-noAdd1,lst:myenv-noAdd2}) we may specify
-	\texttt{noAdditionalIndent} either in `scalar' form, or in `field' form, as shown in
-	\cref{lst:mycommand-noAdd1,lst:mycommand-noAdd2}
+	As in the environment-based case (see \vref{lst:myenv-noAdd1,lst:myenv-noAdd2}) we may
+	specify \texttt{noAdditionalIndent} either in `scalar' form, or in `field' form, as shown
+	in \cref{lst:mycommand-noAdd1,lst:mycommand-noAdd2}
 
 	\begin{minipage}{.45\textwidth}
 		\cmhlistingsfromfile[style=yaml-LST]*{demonstrations/mycommand-noAdd1.yaml}[width=.8\linewidth,before=\centering,yaml-TCB]{\texttt{mycommand-noAdd1.yaml}}{lst:mycommand-noAdd1}
@@ -28,7 +28,8 @@
 latexindent.pl mycommand.tex -l mycommand-noAdd1.yaml  
 latexindent.pl mycommand.tex -l mycommand-noAdd2.yaml  
 \end{commandshell}
-	we receive the respective output given in \cref{lst:mycommand-output-noAdd1,lst:mycommand-output-noAdd2}
+	we receive the respective output given in
+	\cref{lst:mycommand-output-noAdd1,lst:mycommand-output-noAdd2}
 
 	\begin{minipage}{.45\textwidth}
 		\cmhlistingsfromfile{demonstrations/mycommand-noAdd1.tex}{\texttt{mycommand.tex} using \cref{lst:mycommand-noAdd1}}{lst:mycommand-output-noAdd1}
@@ -39,13 +40,14 @@
 	\end{minipage}
 
 	Note that in \cref{lst:mycommand-output-noAdd1} that the `body', optional argument
-	\emph{and} mandatory argument have \emph{all} received no
-	additional indentation, while in \cref{lst:mycommand-output-noAdd2}, only the `body' has not received
-	any additional indentation. We define the `body' of a command as any lines following the
-	command name that include its optional or mandatory arguments.
+	\emph{and} mandatory argument have \emph{all} received no additional indentation, while
+	in \cref{lst:mycommand-output-noAdd2}, only the `body' has not received any additional
+	indentation. We define the `body' of a command as any lines following the command name
+	that include its optional or mandatory arguments.
 
 	We may further customise \texttt{noAdditionalIndent} for \texttt{mycommand} as we did in
-	\vref{lst:myenv-noAdd5,lst:myenv-noAdd6}; explicit examples are given in \cref{lst:mycommand-noAdd3,lst:mycommand-noAdd4}.
+	\vref{lst:myenv-noAdd5,lst:myenv-noAdd6}; explicit examples are given in
+	\cref{lst:mycommand-noAdd3,lst:mycommand-noAdd4}.
 
 	\begin{minipage}{.45\textwidth}
 		\cmhlistingsfromfile[style=yaml-LST]*{demonstrations/mycommand-noAdd3.yaml}[width=.9\linewidth,before=\centering,yaml-TCB]{\texttt{mycommand-noAdd3.yaml}}{lst:mycommand-noAdd3}
@@ -61,7 +63,8 @@
 latexindent.pl mycommand.tex -l mycommand-noAdd3.yaml  
 latexindent.pl mycommand.tex -l mycommand-noAdd4.yaml  
 \end{commandshell}
-	we receive the respective output given in \cref{lst:mycommand-output-noAdd3,lst:mycommand-output-noAdd4}.
+	we receive the respective output given in
+	\cref{lst:mycommand-output-noAdd3,lst:mycommand-output-noAdd4}.
 
 	\begin{minipage}{.45\textwidth}
 		\cmhlistingsfromfile{demonstrations/mycommand-noAdd3.tex}{\texttt{mycommand.tex} using \cref{lst:mycommand-noAdd3}}{lst:mycommand-output-noAdd3}
@@ -72,11 +75,12 @@
 	\end{minipage}
 
 	Attentive readers will note that the body of \texttt{mycommand} in both
-	\cref{lst:mycommand-output-noAdd3,lst:mycommand-output-noAdd4} has received no additional indent, even though
-	\texttt{body} is explicitly set to \texttt{0} in both
-	\cref{lst:mycommand-noAdd3,lst:mycommand-noAdd4}. This is because, by default, \texttt{noAdditionalIndentGlobal} for
-	\texttt{commands} is set to \texttt{1} by default; this can be easily
-	fixed as in \cref{lst:mycommand-noAdd5,lst:mycommand-noAdd6}.\label{page:command:noAddGlobal}
+	\cref{lst:mycommand-output-noAdd3,lst:mycommand-output-noAdd4} has received no additional
+	indent, even though \texttt{body} is explicitly set to \texttt{0} in both
+	\cref{lst:mycommand-noAdd3,lst:mycommand-noAdd4}. This is because, by default,
+	\texttt{noAdditionalIndentGlobal} for \texttt{commands} is set to \texttt{1} by default;
+	this can be easily fixed as in
+	\cref{lst:mycommand-noAdd5,lst:mycommand-noAdd6}.\label{page:command:noAddGlobal}
 
 	\begin{minipage}{.45\textwidth}
 		\cmhlistingsfromfile[style=yaml-LST]*{demonstrations/mycommand-noAdd5.yaml}[width=.9\linewidth,before=\centering,yaml-TCB]{\texttt{mycommand-noAdd5.yaml}}{lst:mycommand-noAdd5}
@@ -92,7 +96,8 @@
 latexindent.pl mycommand.tex -l mycommand-noAdd5.yaml  
 latexindent.pl mycommand.tex -l mycommand-noAdd6.yaml  
 \end{commandshell}
-	we receive the respective output given in \cref{lst:mycommand-output-noAdd5,lst:mycommand-output-noAdd6}.
+	we receive the respective output given in
+	\cref{lst:mycommand-output-noAdd5,lst:mycommand-output-noAdd6}.
 
 	\begin{minipage}{.45\textwidth}
 		\cmhlistingsfromfile{demonstrations/mycommand-noAdd5.tex}{\texttt{mycommand.tex} using \cref{lst:mycommand-noAdd5}}{lst:mycommand-output-noAdd5}

Modified: trunk/Master/texmf-dist/doc/support/latexindent/subsubsec-environments-and-their-arguments.tex
===================================================================
--- trunk/Master/texmf-dist/doc/support/latexindent/subsubsec-environments-and-their-arguments.tex	2021-08-01 02:06:28 UTC (rev 60131)
+++ trunk/Master/texmf-dist/doc/support/latexindent/subsubsec-environments-and-their-arguments.tex	2021-08-01 20:35:09 UTC (rev 60132)
@@ -6,8 +6,8 @@
 	\cmhlistingsfromfile{demonstrations/myenvironment-simple.tex}{\texttt{myenv.tex}}{lst:myenvtex}
 
 \yamltitle{noAdditionalIndent}*{fields}
-	If we do not wish \texttt{myenv} to receive any additional indentation, we have a
-	few choices available to us, as demonstrated in \cref{lst:myenv-noAdd1,lst:myenv-noAdd2}.
+	If we do not wish \texttt{myenv} to receive any additional indentation, we have a few
+	choices available to us, as demonstrated in \cref{lst:myenv-noAdd1,lst:myenv-noAdd2}.
 
 	\begin{minipage}{.45\textwidth}
 		\cmhlistingsfromfile[style=yaml-LST]*{demonstrations/myenv-noAdd1.yaml}[width=.8\linewidth,before=\centering,yaml-TCB]{\texttt{myenv-noAdd1.yaml}}{lst:myenv-noAdd1}
@@ -24,13 +24,13 @@
 latexindent.pl myenv.tex -l myenv-noAdd2.yaml  
 \end{commandshell}
 	we obtain the output given in \cref{lst:myenv-output}; note in particular that the
-	environment \texttt{myenv} has not received any \emph{additional}
-	indentation, but that the \texttt{outer} environment \emph{has} still
-	received indentation.
+	environment \texttt{myenv} has not received any \emph{additional} indentation, but that
+	the \texttt{outer} environment \emph{has} still received indentation.
 
 	\cmhlistingsfromfile{demonstrations/myenvironment-simple-noAdd-body1.tex}{\texttt{myenv.tex} output (using either \cref{lst:myenv-noAdd1} or \cref{lst:myenv-noAdd2})}{lst:myenv-output}
 
-	Upon changing the YAML files to those shown in \cref{lst:myenv-noAdd3,lst:myenv-noAdd4}, and running either
+	Upon changing the YAML files to those shown in \cref{lst:myenv-noAdd3,lst:myenv-noAdd4},
+	and running either
 	\index{switches!-l demonstration}
 	\begin{commandshell}
 latexindent.pl myenv.tex -l myenv-noAdd3.yaml  
@@ -48,8 +48,8 @@
 
 	\cmhlistingsfromfile{demonstrations/myenvironment-simple-noAdd-body4.tex}{\texttt{myenv.tex output} (using either \cref{lst:myenv-noAdd3} or \cref{lst:myenv-noAdd4})}{lst:myenv-output-4}
 
-	Let's now allow \texttt{myenv} to have some optional and mandatory arguments, as
-	in \cref{lst:myenv-args}.
+	Let's now allow \texttt{myenv} to have some optional and mandatory arguments, as in
+	\cref{lst:myenv-args}.
 
 	\cmhlistingsfromfile{demonstrations/myenvironment-args.tex}{\texttt{myenv-args.tex}}{lst:myenv-args}
 
@@ -58,15 +58,16 @@
 	\begin{commandshell}
 latexindent.pl -l=myenv-noAdd1.yaml myenv-args.tex  
 \end{commandshell}
-	we obtain the output shown in \cref{lst:myenv-args-noAdd1}; note that the optional argument,
-	mandatory argument and body \emph{all} have received no additional indent.
-	This is because, when \texttt{noAdditionalIndent} is specified in `scalar' form (as in
-	\cref{lst:myenv-noAdd1}), then \emph{all} parts of the environment (body,
-	optional and mandatory arguments) are assumed to want no additional indent.
+	we obtain the output shown in \cref{lst:myenv-args-noAdd1}; note that the optional
+	argument, mandatory argument and body \emph{all} have received no additional indent. This
+	is because, when \texttt{noAdditionalIndent} is specified in `scalar' form (as in
+	\cref{lst:myenv-noAdd1}), then \emph{all} parts of the environment (body, optional and
+	mandatory arguments) are assumed to want no additional indent.
 	\cmhlistingsfromfile{demonstrations/myenvironment-args-noAdd-body1.tex}{\texttt{myenv-args.tex} using \cref{lst:myenv-noAdd1}}{lst:myenv-args-noAdd1}
 
 	We may customise \texttt{noAdditionalIndent} for optional and mandatory arguments of the
-	\texttt{myenv} environment, as shown in, for example, \cref{lst:myenv-noAdd5,lst:myenv-noAdd6}.
+	\texttt{myenv} environment, as shown in, for example,
+	\cref{lst:myenv-noAdd5,lst:myenv-noAdd6}.
 
 	\begin{minipage}{.49\textwidth}
 		\cmhlistingsfromfile[style=yaml-LST]*{demonstrations/myenv-noAdd5.yaml}[width=.8\linewidth,before=\centering,yaml-TCB]{\texttt{myenv-noAdd5.yaml}}{lst:myenv-noAdd5}
@@ -82,11 +83,12 @@
 latexindent.pl myenv.tex -l myenv-noAdd5.yaml  
 latexindent.pl myenv.tex -l myenv-noAdd6.yaml  
 \end{commandshell}
-	we obtain the respective outputs given in \cref{lst:myenv-args-noAdd5,lst:myenv-args-noAdd6}. Note that in
-	\cref{lst:myenv-args-noAdd5} the text for the \emph{optional} argument has not
-	received any additional indentation, and that in \cref{lst:myenv-args-noAdd6} the
-	\emph{mandatory} argument has not received any additional indentation; in both
-	cases, the \emph{body} has not received any additional indentation.
+	we obtain the respective outputs given in
+	\cref{lst:myenv-args-noAdd5,lst:myenv-args-noAdd6}. Note that in
+	\cref{lst:myenv-args-noAdd5} the text for the \emph{optional} argument has not received
+	any additional indentation, and that in \cref{lst:myenv-args-noAdd6} the \emph{mandatory}
+	argument has not received any additional indentation; in both cases, the \emph{body} has
+	not received any additional indentation.
 
 	\begin{minipage}{.45\textwidth}
 		\cmhlistingsfromfile{demonstrations/myenvironment-args-noAdd5.tex}{\texttt{myenv-args.tex} using \cref{lst:myenv-noAdd5}}{lst:myenv-args-noAdd5}
@@ -112,9 +114,8 @@
 latexindent.pl myenv.tex -l myenv-rules2.yaml  
 \end{commandshell}
 	we obtain the output given in \cref{lst:myenv-rules-output}; note in particular that the
-	environment \texttt{myenv} has received one tab (from the
-	\texttt{outer} environment) plus three spaces from \cref{lst:myenv-rules1} or
-	\ref{lst:myenv-rules2}.
+	environment \texttt{myenv} has received one tab (from the \texttt{outer} environment)
+	plus three spaces from \cref{lst:myenv-rules1} or \ref{lst:myenv-rules2}.
 
 	\cmhlistingsfromfile[showtabs=true,showspaces=true]{demonstrations/myenv-rules1.tex}{\texttt{myenv.tex} output (using either \cref{lst:myenv-rules1} or \cref{lst:myenv-rules2})}{lst:myenv-rules-output}
 
@@ -127,9 +128,10 @@
 	\begin{commandshell}
 latexindent.pl myenv-args.tex -l=myenv-rules1.yaml  
 \end{commandshell}
-	we obtain the output in \cref{lst:myenv-args-rules1}; note that the body, optional argument
-	and mandatory argument of \texttt{myenv} have \emph{all} received
-	the same customised indentation. \cmhlistingsfromfile[showtabs=true,showspaces=true]{demonstrations/myenvironment-args-rules1.tex}{\texttt{myenv-args.tex} using \cref{lst:myenv-rules1}}{lst:myenv-args-rules1}
+	we obtain the output in \cref{lst:myenv-args-rules1}; note that the body, optional
+	argument and mandatory argument of \texttt{myenv} have \emph{all} received the same
+	customised indentation.
+	\cmhlistingsfromfile[showtabs=true,showspaces=true]{demonstrations/myenvironment-args-rules1.tex}{\texttt{myenv-args.tex} using \cref{lst:myenv-rules1}}{lst:myenv-args-rules1}
 
 	You can specify different indentation rules for the different features using, for
 	example, \cref{lst:myenv-rules3,lst:myenv-rules4}
@@ -148,7 +150,8 @@
 latexindent.pl myenv-args.tex -l myenv-rules3.yaml  
 latexindent.pl myenv-args.tex -l myenv-rules4.yaml  
 \end{commandshell}
-	then we obtain the respective outputs given in \cref{lst:myenv-args-rules3,lst:myenv-args-rules4}.
+	then we obtain the respective outputs given in
+	\cref{lst:myenv-args-rules3,lst:myenv-args-rules4}.
 
 	\begin{widepage}
 		\begin{minipage}{.5\textwidth}
@@ -160,8 +163,8 @@
 		\end{minipage}
 	\end{widepage}
 
-	Note that in \cref{lst:myenv-args-rules3}, the optional argument has only received a single
-	space of indentation, while the mandatory argument has received the default (tab)
+	Note that in \cref{lst:myenv-args-rules3}, the optional argument has only received a
+	single space of indentation, while the mandatory argument has received the default (tab)
 	indentation; the environment body has received three spaces of indentation.
 
 	In \cref{lst:myenv-args-rules4}, the optional argument has received the default (tab)
@@ -172,11 +175,12 @@
 	\begin{wrapfigure}[6]{r}[0pt]{7cm}
 		\cmhlistingsfromfile[style=noAdditionalIndentGlobalEnv]*{../defaultSettings.yaml}[width=.8\linewidth,before=\centering,yaml-TCB]{\texttt{noAdditionalIndentGlobal}}{lst:noAdditionalIndentGlobal:environments}
 	\end{wrapfigure}
-	Assuming that your environment name is not found within neither \texttt{noAdditionalIndent}
-	nor \texttt{indentRules}, the next place that \texttt{latexindent.pl} will look is
-	\texttt{noAdditionalIndentGlobal}, and in particular \emph{for the environments} key (see
-	\cref{lst:noAdditionalIndentGlobal:environments}). Let's say that you change the value of \texttt{environments}
-	to \texttt{1} in \cref{lst:noAdditionalIndentGlobal:environments}, and that you run
+	Assuming that your environment name is not found within neither
+	\texttt{noAdditionalIndent} nor \texttt{indentRules}, the next place that
+	\texttt{latexindent.pl} will look is \texttt{noAdditionalIndentGlobal}, and in particular
+	\emph{for the environments} key (see \cref{lst:noAdditionalIndentGlobal:environments}).
+	Let's say that you change the value of \texttt{environments} to \texttt{1} in
+	\cref{lst:noAdditionalIndentGlobal:environments}, and that you run
 	\index{switches!-l demonstration}
 
 	\begin{widepage}
@@ -186,12 +190,13 @@
 \end{commandshell}
 	\end{widepage}
 
-	The respective output from these two commands are in \cref{lst:myenv-args-no-add-global1,lst:myenv-args-no-add-global2}; in
+	The respective output from these two commands are in
+	\cref{lst:myenv-args-no-add-global1,lst:myenv-args-no-add-global2}; in
 	\cref{lst:myenv-args-no-add-global1} notice that \emph{both} environments receive no
-	additional indentation but that the arguments of \texttt{myenv} still
-	\emph{do} receive indentation. In \cref{lst:myenv-args-no-add-global2} notice that the
-	\emph{outer} environment does not receive additional indentation, but because
-	of the settings from \texttt{myenv-rules1.yaml} (in \vref{lst:myenv-rules1}), the \texttt{myenv} environment
+	additional indentation but that the arguments of \texttt{myenv} still \emph{do} receive
+	indentation. In \cref{lst:myenv-args-no-add-global2} notice that the \emph{outer}
+	environment does not receive additional indentation, but because of the settings from
+	\texttt{myenv-rules1.yaml} (in \vref{lst:myenv-rules1}), the \texttt{myenv} environment
 	still \emph{does} receive indentation.
 
 	\begin{minipage}{.45\textwidth}
@@ -202,8 +207,9 @@
 		\cmhlistingsfromfile{demonstrations/myenvironment-args-rules1-noAddGlobal2.tex}{\texttt{myenv-args.tex} using \cref{lst:noAdditionalIndentGlobal:environments,lst:myenv-rules1}}{lst:myenv-args-no-add-global2}
 	\end{minipage}
 
-	In fact, \texttt{noAdditionalIndentGlobal} also contains keys that control the indentation of
-	optional and mandatory arguments; on referencing \cref{lst:opt-args-no-add-glob,lst:mand-args-no-add-glob}
+	In fact, \texttt{noAdditionalIndentGlobal} also contains keys that control the
+	indentation of optional and mandatory arguments; on referencing
+	\cref{lst:opt-args-no-add-glob,lst:mand-args-no-add-glob}
 
 	\begin{minipage}{.49\textwidth}
 		\cmhlistingsfromfile[style=yaml-LST]*{demonstrations/opt-args-no-add-glob.yaml}[width=.8\linewidth,before=\centering,yaml-TCB]{\texttt{opt-args-no-add-glob.yaml}}{lst:opt-args-no-add-glob}
@@ -219,7 +225,8 @@
 latexindent.pl myenv-args.tex -local opt-args-no-add-glob.yaml
 latexindent.pl myenv-args.tex -local mand-args-no-add-glob.yaml
 \end{commandshell}
-	which produces the respective outputs given in \cref{lst:myenv-args-no-add-opt,lst:myenv-args-no-add-mand}. Notice that in
+	which produces the respective outputs given in
+	\cref{lst:myenv-args-no-add-opt,lst:myenv-args-no-add-mand}. Notice that in
 	\cref{lst:myenv-args-no-add-opt} the \emph{optional} argument has not received any
 	additional indentation, and in \cref{lst:myenv-args-no-add-mand} the \emph{mandatory}
 	argument has not received any additional indentation.
@@ -237,8 +244,8 @@
 		\cmhlistingsfromfile[style=indentRulesGlobalEnv]*{../defaultSettings.yaml}[width=.8\linewidth,before=\centering,yaml-TCB]{\texttt{indentRulesGlobal}}{lst:indentRulesGlobal:environments}
 	\end{wrapfigure}
 	The final check that \texttt{latexindent.pl} will make is to look for
-	\texttt{indentRulesGlobal} as detailed in \cref{lst:indentRulesGlobal:environments}; if you change the
-	\texttt{environments} field to anything involving horizontal space, say
+	\texttt{indentRulesGlobal} as detailed in \cref{lst:indentRulesGlobal:environments}; if
+	you change the \texttt{environments} field to anything involving horizontal space, say
 	\lstinline!" "!, and then run the following commands
 	\index{switches!-l demonstration}
 
@@ -246,12 +253,14 @@
 latexindent.pl myenv-args.tex -l env-indentRules.yaml
 latexindent.pl myenv-args.tex -l myenv-rules1.yaml,env-indentRules.yaml
 \end{commandshell}
-	then the respective output is shown in \cref{lst:myenv-args-indent-rules-global1,lst:myenv-args-indent-rules-global2}. Note that in
-	\cref{lst:myenv-args-indent-rules-global1}, both the environment blocks have received a single-space
-	indentation, whereas in \cref{lst:myenv-args-indent-rules-global2} the \texttt{outer} environment
-	has received single-space indentation (specified by \texttt{indentRulesGlobal}), but
-	\texttt{myenv} has received \lstinline!"   "!, as specified by the
-	particular \texttt{indentRules} for \texttt{myenv} \vref{lst:myenv-rules1}.
+	then the respective output is shown in
+	\cref{lst:myenv-args-indent-rules-global1,lst:myenv-args-indent-rules-global2}. Note that
+	in \cref{lst:myenv-args-indent-rules-global1}, both the environment blocks have received
+	a single-space indentation, whereas in \cref{lst:myenv-args-indent-rules-global2} the
+	\texttt{outer} environment has received single-space indentation (specified by
+	\texttt{indentRulesGlobal}), but \texttt{myenv} has received \lstinline!"   "!, as
+	specified by the particular \texttt{indentRules} for \texttt{myenv}
+	\vref{lst:myenv-rules1}.
 
 	\begin{minipage}{.45\textwidth}
 		\cmhlistingsfromfile[showspaces=true]{demonstrations/myenvironment-args-global-rules1.tex}{\texttt{myenv-args.tex} using \cref{lst:indentRulesGlobal:environments}}{lst:myenv-args-indent-rules-global1}
@@ -278,9 +287,10 @@
 latexindent.pl myenv-args.tex -local opt-args-indent-rules-glob.yaml
 latexindent.pl myenv-args.tex -local mand-args-indent-rules-glob.yaml
 \end{commandshell}
-	we obtain the respective outputs in \cref{lst:myenv-args-indent-rules-global3,lst:myenv-args-indent-rules-global4}. Note that the
-	\emph{optional} argument in \cref{lst:myenv-args-indent-rules-global3} has received two tabs worth
-	of indentation, while the \emph{mandatory} argument has done so in
+	we obtain the respective outputs in
+	\cref{lst:myenv-args-indent-rules-global3,lst:myenv-args-indent-rules-global4}. Note that
+	the \emph{optional} argument in \cref{lst:myenv-args-indent-rules-global3} has received
+	two tabs worth of indentation, while the \emph{mandatory} argument has done so in
 	\cref{lst:myenv-args-indent-rules-global4}.
 
 	\begin{widepage}

Modified: trunk/Master/texmf-dist/doc/support/latexindent/subsubsec-environments-with-items.tex
===================================================================
--- trunk/Master/texmf-dist/doc/support/latexindent/subsubsec-environments-with-items.tex	2021-08-01 02:06:28 UTC (rev 60131)
+++ trunk/Master/texmf-dist/doc/support/latexindent/subsubsec-environments-with-items.tex	2021-08-01 20:35:09 UTC (rev 60132)
@@ -1,15 +1,14 @@
 % arara: pdflatex: {shell: yes, files: [latexindent]}
 \subsubsection{Environments with items}
 	With reference to \vref{lst:indentafteritems,lst:itemNames}, some commands may contain
-	\texttt{item} commands; for the purposes of this discussion, we will use the
-	code from \vref{lst:itemsbefore}.
+	\texttt{item} commands; for the purposes of this discussion, we will use the code from
+	\vref{lst:itemsbefore}.
 
-	Assuming that you've populated \texttt{itemNames} with the name of your
-	\texttt{item}, you can put the item name into \texttt{noAdditionalIndent} as in
-	\cref{lst:item-noAdd1}, although a more efficient approach may be to change the relevant
-	field in \texttt{itemNames} to \texttt{0}. Similarly, you can customise
-	the indentation that your \texttt{item} receives using \texttt{indentRules},
-	as in \cref{lst:item-rules1}
+	Assuming that you've populated \texttt{itemNames} with the name of your \texttt{item},
+	you can put the item name into \texttt{noAdditionalIndent} as in \cref{lst:item-noAdd1},
+	although a more efficient approach may be to change the relevant field in
+	\texttt{itemNames} to \texttt{0}. Similarly, you can customise the indentation that your
+	\texttt{item} receives using \texttt{indentRules}, as in \cref{lst:item-rules1}
 
 	\begin{cmhtcbraster}[raster column skip=.1\linewidth]
 		\cmhlistingsfromfile[style=yaml-LST]*{demonstrations/item-noAdd1.yaml}[yaml-TCB]{\texttt{item-noAdd1.yaml}}{lst:item-noAdd1}
@@ -22,9 +21,9 @@
 latexindent.pl items1.tex -local item-noAdd1.yaml  
 latexindent.pl items1.tex -local item-rules1.yaml  
 \end{commandshell}
-	the respective outputs are given in \cref{lst:items1-noAdd1,lst:items1-rules1}; note that in
-	\cref{lst:items1-noAdd1} that the text after each \texttt{item} has not received
-	any additional indentation, and in \cref{lst:items1-rules1}, the text after each
+	the respective outputs are given in \cref{lst:items1-noAdd1,lst:items1-rules1}; note that
+	in \cref{lst:items1-noAdd1} that the text after each \texttt{item} has not received any
+	additional indentation, and in \cref{lst:items1-rules1}, the text after each
 	\texttt{item} has received a single space of indentation, specified by
 	\cref{lst:item-rules1}.
 
@@ -38,10 +37,10 @@
 
 	Alternatively, you might like to populate \texttt{noAdditionalIndentGlobal} or
 	\texttt{indentRulesGlobal} using the \texttt{items} key, as demonstrated in
-	\cref{lst:items-noAdditionalGlobal,lst:items-indentRulesGlobal}. Note that there is a need to `reset/remove' the
-	\texttt{item} field from \texttt{indentRules} in both cases (see the hierarchy
-	description given on \cpageref{sec:noadd-indent-rules}) as the \texttt{item} command is a
-	member of \texttt{indentRules} by default.
+	\cref{lst:items-noAdditionalGlobal,lst:items-indentRulesGlobal}. Note that there is a
+	need to `reset/remove' the \texttt{item} field from \texttt{indentRules} in both cases
+	(see the hierarchy description given on \cpageref{sec:noadd-indent-rules}) as the
+	\texttt{item} command is a member of \texttt{indentRules} by default.
 
 	\begin{minipage}{.45\textwidth}
 		\cmhlistingsfromfile[style=yaml-LST]*{demonstrations/items-noAdditionalGlobal.yaml}[yaml-TCB]{\texttt{items-noAdditionalGlobal.yaml}}{lst:items-noAdditionalGlobal}
@@ -57,7 +56,7 @@
 latexindent.pl items1.tex -local items-noAdditionalGlobal.yaml
 latexindent.pl items1.tex -local items-indentRulesGlobal.yaml
 \end{commandshell}
-	the respective outputs from \cref{lst:items1-noAdd1,lst:items1-rules1} are obtained; note, however, that
-	\emph{all} such \texttt{item} commands without their own individual
+	the respective outputs from \cref{lst:items1-noAdd1,lst:items1-rules1} are obtained;
+	note, however, that \emph{all} such \texttt{item} commands without their own individual
 	\texttt{noAdditionalIndent} or \texttt{indentRules} settings would behave as in these
 	listings.

Modified: trunk/Master/texmf-dist/doc/support/latexindent/subsubsec-headings.tex
===================================================================
--- trunk/Master/texmf-dist/doc/support/latexindent/subsubsec-headings.tex	2021-08-01 02:06:28 UTC (rev 60131)
+++ trunk/Master/texmf-dist/doc/support/latexindent/subsubsec-headings.tex	2021-08-01 20:35:09 UTC (rev 60132)
@@ -1,8 +1,9 @@
 % arara: pdflatex: {shell: yes, files: [latexindent]}
 \subsubsection{afterHeading code blocks}\label{subsubsec-headings-no-add-indent-rules}
 	Let's use the example \cref{lst:headings2} for demonstration throughout this
-	\namecref{subsubsec-headings-no-add-indent-rules}. As discussed on \cpageref{lst:headings1}, by default
-	\texttt{latexindent.pl} will not add indentation after headings.
+	\namecref{subsubsec-headings-no-add-indent-rules}. As discussed on
+	\cpageref{lst:headings1}, by default \texttt{latexindent.pl} will not add indentation
+	after headings.
 
 	\cmhlistingsfromfile{demonstrations/headings2.tex}{\texttt{headings2.tex}}{lst:headings2}
 
@@ -20,15 +21,15 @@
 		\cmhlistingsfromfile[style=yaml-LST]*{demonstrations/headings3.yaml}[yaml-TCB]{\texttt{headings3.yaml}}{lst:headings3yaml}
 	\end{cmhtcbraster}
 
-	If we specify \texttt{noAdditionalIndent} as in \cref{lst:headings4yaml} and run the command
+	If we specify \texttt{noAdditionalIndent} as in \cref{lst:headings4yaml} and run the
+	command
 	\index{switches!-l demonstration}
 	\begin{commandshell}
 latexindent.pl headings2.tex -l headings4.yaml      
 \end{commandshell}
 	then we receive the output in \cref{lst:headings2-mod4}. Note that the arguments
-	\emph{and} the body after the heading of \texttt{paragraph} has received
-	no additional indentation, because we have specified \texttt{noAdditionalIndent} in scalar
-	form.
+	\emph{and} the body after the heading of \texttt{paragraph} has received no additional
+	indentation, because we have specified \texttt{noAdditionalIndent} in scalar form.
 
 	\begin{cmhtcbraster}[raster column skip=.1\linewidth]
 		\cmhlistingsfromfile{demonstrations/headings2-mod4.tex}{\texttt{headings2.tex} using \cref{lst:headings4yaml}}{lst:headings2-mod4}
@@ -36,10 +37,9 @@
 	\end{cmhtcbraster}
 
 	Similarly, if we specify \texttt{indentRules} as in \cref{lst:headings5yaml} and run
-	analogous commands to those above, we receive the output in \cref{lst:headings2-mod5}; note
-	that the \emph{body}, \emph{mandatory argument} and content
-	\emph{after the heading} of \texttt{paragraph} have \emph{all} received
-	three tabs worth of indentation.
+	analogous commands to those above, we receive the output in \cref{lst:headings2-mod5};
+	note that the \emph{body}, \emph{mandatory argument} and content \emph{after the heading}
+	of \texttt{paragraph} have \emph{all} received three tabs worth of indentation.
 
 	\begin{cmhtcbraster}[raster force size=false,
 			raster column 1/.style={add to width=1cm},
@@ -67,14 +67,15 @@
 		\cmhlistingsfromfile[style=yaml-LST]*{demonstrations/headings7.yaml}[yaml-TCB]{\texttt{headings7.yaml}}{lst:headings7yaml}
 	\end{cmhtcbraster}
 
-	Finally, let's consider \texttt{noAdditionalIndentGlobal} and \texttt{indentRulesGlobal} shown in
-	\cref{lst:headings8yaml,lst:headings9yaml} respectively, with respective output in \cref{lst:headings2-mod8,lst:headings2-mod9}.
-	Note that in \cref{lst:headings8yaml} the \emph{mandatory argument} of \texttt{paragraph}
-	has received a (default) tab's worth of indentation, while the body after the heading has
-	received \emph{no additional indentation}. Similarly, in \cref{lst:headings2-mod9}, the
-	\emph{argument} has received both a (default) tab plus two spaces of indentation
-	(from the global rule specified in \cref{lst:headings9yaml}), and the remaining body after
-	\texttt{paragraph} has received just two spaces of indentation.
+	Finally, let's consider \texttt{noAdditionalIndentGlobal} and \texttt{indentRulesGlobal}
+	shown in \cref{lst:headings8yaml,lst:headings9yaml} respectively, with respective output
+	in \cref{lst:headings2-mod8,lst:headings2-mod9}. Note that in \cref{lst:headings8yaml}
+	the \emph{mandatory argument} of \texttt{paragraph} has received a (default) tab's worth
+	of indentation, while the body after the heading has received \emph{no additional
+		indentation}. Similarly, in \cref{lst:headings2-mod9}, the \emph{argument} has received
+	both a (default) tab plus two spaces of indentation (from the global rule specified in
+	\cref{lst:headings9yaml}), and the remaining body after \texttt{paragraph} has received
+	just two spaces of indentation.
 
 	\begin{cmhtcbraster}
 		\cmhlistingsfromfile{demonstrations/headings2-mod8.tex}{\texttt{headings2.tex} using \cref{lst:headings8yaml}}{lst:headings2-mod8}

Modified: trunk/Master/texmf-dist/doc/support/latexindent/subsubsec-ifelsefi.tex
===================================================================
--- trunk/Master/texmf-dist/doc/support/latexindent/subsubsec-ifelsefi.tex	2021-08-01 02:06:28 UTC (rev 60131)
+++ trunk/Master/texmf-dist/doc/support/latexindent/subsubsec-ifelsefi.tex	2021-08-01 20:35:09 UTC (rev 60132)
@@ -1,8 +1,8 @@
 % arara: pdflatex: {shell: yes, files: [latexindent]}
 \subsubsection{ifelsefi code blocks}
 	Let's use the simple example shown in \cref{lst:ifelsefi1}; when \texttt{latexindent.pl}
-	operates on this file, the output as in \cref{lst:ifelsefi1-default}; note that the body of
-	each of the \lstinline!\if! statements have been indented, and that the
+	operates on this file, the output as in \cref{lst:ifelsefi1-default}; note that the body
+	of each of the \lstinline!\if! statements have been indented, and that the
 	\lstinline!\else! statement has been accounted for correctly.
 
 	\begin{minipage}{.45\textwidth}
@@ -32,9 +32,10 @@
 latexindent.pl ifelsefi1.tex -local ifnum-noAdd.yaml  
 latexindent.pl ifelsefi1.tex -l ifnum-indent-rules.yaml  
 \end{commandshell}
-	we receive the respective output given in \cref{lst:ifelsefi1-output-noAdd,lst:ifelsefi1-output-indent-rules}; note that in
-	\cref{lst:ifelsefi1-output-noAdd}, the \texttt{ifnum} code block has \emph{not}
-	received any additional indentation, while in \cref{lst:ifelsefi1-output-indent-rules}, the
+	we receive the respective output given in
+	\cref{lst:ifelsefi1-output-noAdd,lst:ifelsefi1-output-indent-rules}; note that in
+	\cref{lst:ifelsefi1-output-noAdd}, the \texttt{ifnum} code block has \emph{not} received
+	any additional indentation, while in \cref{lst:ifelsefi1-output-indent-rules}, the
 	\texttt{ifnum} code block has received one tab and two spaces of indentation.
 
 	\begin{minipage}{.45\textwidth}
@@ -62,9 +63,12 @@
 latexindent.pl ifelsefi1.tex -local ifelsefi-noAdd-glob.yaml  
 latexindent.pl ifelsefi1.tex -l ifelsefi-indent-rules-global.yaml  
 \end{commandshell}
-	we receive the outputs in \cref{lst:ifelsefi1-output-noAdd-glob,lst:ifelsefi1-output-indent-rules-global}; notice that in \cref{lst:ifelsefi1-output-noAdd-glob}
-	neither of the \texttt{ifelsefi} code blocks have received indentation, while in
-	\cref{lst:ifelsefi1-output-indent-rules-global} both code blocks have received a single space of indentation.
+	we receive the outputs in
+	\cref{lst:ifelsefi1-output-noAdd-glob,lst:ifelsefi1-output-indent-rules-global}; notice
+	that in \cref{lst:ifelsefi1-output-noAdd-glob} neither of the \texttt{ifelsefi} code
+	blocks have received indentation, while in
+	\cref{lst:ifelsefi1-output-indent-rules-global} both code blocks have received a single
+	space of indentation.
 
 	\begin{minipage}{.45\textwidth}
 		\cmhlistingsfromfile{demonstrations/ifelsefi1-noAdd-glob.tex}{\texttt{ifelsefi1.tex} using \cref{lst:ifelsefi-noAdd-glob}}{lst:ifelsefi1-output-noAdd-glob}
@@ -76,9 +80,9 @@
 
 	We can further explore the treatment of \texttt{ifElseFi} code
 	blocks%
-	\announce{2018-04-27}*{updates to ifElseFi code blocks} in \cref{lst:ifelsefi2},
-	and the associated default output given in \cref{lst:ifelsefi2-default}; note, in particular,
-	that the bodies of each of the `or statements' have been indented.
+	\announce{2018-04-27}*{updates to ifElseFi code blocks} in \cref{lst:ifelsefi2}, and the associated default output given in
+	\cref{lst:ifelsefi2-default}; note, in particular, that the bodies of each of the `or
+	statements' have been indented.
 
 	\begin{cmhtcbraster}[raster column skip=.1\linewidth]
 		\cmhlistingsfromfile{demonstrations/ifelsefi2.tex}{\texttt{ifelsefi2.tex}}{lst:ifelsefi2}

Modified: trunk/Master/texmf-dist/doc/support/latexindent/subsubsec-no-add-remaining-code-blocks.tex
===================================================================
--- trunk/Master/texmf-dist/doc/support/latexindent/subsubsec-no-add-remaining-code-blocks.tex	2021-08-01 02:06:28 UTC (rev 60131)
+++ trunk/Master/texmf-dist/doc/support/latexindent/subsubsec-no-add-remaining-code-blocks.tex	2021-08-01 20:35:09 UTC (rev 60132)
@@ -1,9 +1,9 @@
 % arara: pdflatex: {shell: yes, files: [latexindent]}
 \subsubsection{The remaining code blocks}
 	Referencing the different types of code blocks in \vref{tab:code-blocks}, we have a few
-	code blocks yet to cover; these are very similar to the \texttt{commands} code block
-	type covered comprehensively in \vref{subsubsec:commands-arguments}, but a small discussion defining
-	these remaining code blocks is necessary.
+	code blocks yet to cover; these are very similar to the \texttt{commands} code block type
+	covered comprehensively in \vref{subsubsec:commands-arguments}, but a small discussion
+	defining these remaining code blocks is necessary.
 
 	\paragraph{keyEqualsValuesBracesBrackets}
 		\texttt{latexindent.pl} defines this type of code block by the following criteria:
@@ -15,8 +15,9 @@
 			\item then at least one set of curly braces or square brackets (comments and line breaks
 			      allowed throughout).
 		\end{itemize}
-		See the \texttt{keyEqualsValuesBracesBrackets: follow} and \texttt{keyEqualsValuesBracesBrackets: name} fields of the fine tuning
-		section in \vref{lst:fineTuning}%
+		See the \texttt{keyEqualsValuesBracesBrackets: follow} and
+		\texttt{keyEqualsValuesBracesBrackets: name} fields of the fine tuning section in
+		\vref{lst:fineTuning}%
 		\announce{2019-07-13}{fine tuning: keyEqualsValuesBracesBrackets}
 
 		An example is shown in \cref{lst:pgfkeysbefore}, with the default output given in
@@ -30,14 +31,14 @@
 			\cmhlistingsfromfile[showtabs=true]{demonstrations/pgfkeys1-default.tex}{\texttt{pgfkeys1.tex} default output}{lst:pgfkeys1:default}
 		\end{minipage}%
 
-		In \cref{lst:pgfkeys1:default}, note that the maximum indentation is three tabs, and these
-		come from:
+		In \cref{lst:pgfkeys1:default}, note that the maximum indentation is three tabs, and
+		these come from:
 		\begin{itemize}
 			\item the \lstinline!\pgfkeys! command's mandatory argument;
 			\item the \lstinline!start coordinate/.initial! key's mandatory argument;
-			\item the \lstinline!start coordinate/.initial! key's body, which is defined as any lines following the name
-			      of the key that include its arguments.	This is the part controlled by the
-			      \emph{body} field for \texttt{noAdditionalIndent} and friends from
+			\item the \lstinline!start coordinate/.initial! key's body, which is defined as any lines
+			      following the name of the key that include its arguments. This is the part controlled by
+			      the \emph{body} field for \texttt{noAdditionalIndent} and friends from
 			      \cpageref{sec:noadd-indent-rules}.
 		\end{itemize}
 	\paragraph{namedGroupingBracesBrackets}
@@ -44,7 +45,8 @@
 		This type of code block is mostly motivated by tikz-based code; we define this code block
 		as follows:
 		\begin{itemize}
-			\item it must immediately follow either \emph{horizontal space} OR \emph{one or more line breaks} OR
+			\item it must immediately follow either \emph{horizontal space} OR \emph{one or more line
+				      breaks} OR
 			      \lstinline!{! OR \lstinline![! OR \lstinline!$! OR
 			      \lstinline!)! OR \lstinline!(!
 			\item the name may contain the characters detailed in \vref{tab:code-blocks};
@@ -51,8 +53,9 @@
 			\item then at least one set of curly braces or square brackets (comments and line breaks
 			      allowed throughout).
 		\end{itemize}
-		See the \texttt{NamedGroupingBracesBrackets: follow} and \texttt{NamedGroupingBracesBrackets: name} fields of the fine tuning
-		section in \vref{lst:fineTuning}%
+		See the \texttt{NamedGroupingBracesBrackets: follow} and
+		\texttt{NamedGroupingBracesBrackets: name} fields of the fine tuning section in
+		\vref{lst:fineTuning}%
 		\announce{2019-07-13}{fine tuning: namedGroupingBracesBrackets}
 
 		A simple example is given in \cref{lst:child1}, with default output in
@@ -66,21 +69,21 @@
 			\cmhlistingsfromfile[showtabs=true]{demonstrations/child1-default.tex}{\texttt{child1.tex} default output}{lst:child1:default}
 		\end{minipage}%
 
-		In particular, \texttt{latexindent.pl} considers \texttt{child},
-		\texttt{parent} and \texttt{node} all to be
-		\texttt{namedGroupingBracesBrackets}\footnote{
-			You may like to verify this by using the \texttt{-tt} option and checking \texttt{indent.log}! }. Referencing \cref{lst:child1:default}, note
-		that the maximum indentation is two tabs, and these come from:
+		In particular, \texttt{latexindent.pl} considers \texttt{child}, \texttt{parent} and
+		\texttt{node} all to be \texttt{namedGroupingBracesBrackets}\footnote{ You may like to
+			verify this by using the \texttt{-tt} option and checking \texttt{indent.log}! }.
+		Referencing \cref{lst:child1:default}, note that the maximum indentation is two tabs, and
+		these come from:
 		\begin{itemize}
 			\item the \lstinline!child!'s mandatory argument;
-			\item the \lstinline!child!'s body, which is defined as any lines following the name of
-			      the \texttt{namedGroupingBracesBrackets} that include its arguments. This is the part controlled by the
-			      \emph{body} field for \texttt{noAdditionalIndent} and friends from
+			\item the \lstinline!child!'s body, which is defined as any lines following the name of the
+			      \texttt{namedGroupingBracesBrackets} that include its arguments. This is the part
+			      controlled by the \emph{body} field for \texttt{noAdditionalIndent} and friends from
 			      \cpageref{sec:noadd-indent-rules}.
 		\end{itemize}
 
-	\paragraph{UnNamedGroupingBracesBrackets} occur in a variety of situations; specifically, we define
-		this type of code block as satisfying the following criteria:
+	\paragraph{UnNamedGroupingBracesBrackets} occur in a variety of situations; specifically,
+		we define this type of code block as satisfying the following criteria:
 		\begin{itemize}
 			\item it must immediately follow either \lstinline!{! OR \lstinline![! OR
 			      \lstinline!,! OR \lstinline!&! OR \lstinline!)! OR
@@ -88,7 +91,8 @@
 			\item then at least one set of curly braces or square brackets (comments and line breaks
 			      allowed throughout).
 		\end{itemize}
-		See the \texttt{UnNamedGroupingBracesBrackets: follow} field of the fine tuning section in \vref{lst:fineTuning}%
+		See the \texttt{UnNamedGroupingBracesBrackets: follow} field of the fine tuning section
+		in \vref{lst:fineTuning}%
 		\announce{2019-07-13}{fine tuning: namedGroupingBracesBrackets}
 
 		An example is shown in \cref{lst:psforeach1} with default output give in
@@ -102,20 +106,18 @@
 			\cmhlistingsfromfile[showtabs=true]{demonstrations/psforeach1-default.tex}{\texttt{psforeach1.tex} default output}{lst:psforeach:default}
 		\end{minipage}%
 
-		Referencing \cref{lst:psforeach:default}, there are \emph{three} sets of unnamed
-		braces. Note also that the maximum value of indentation is three tabs, and these come
-		from:
+		Referencing \cref{lst:psforeach:default}, there are \emph{three} sets of unnamed braces.
+		Note also that the maximum value of indentation is three tabs, and these come from:
 		\begin{itemize}
 			\item the \lstinline!\psforeach! command's mandatory argument;
 			\item the \emph{first} un-named braces mandatory argument;
-			\item the \emph{first} un-named braces \emph{body}, which we define as any
-			      lines following the first opening \lstinline!{! or \lstinline![! that
-			      defined the code block.  This is the part controlled by the \emph{body} field
-			      for \texttt{noAdditionalIndent} and friends from \cpageref{sec:noadd-indent-rules}.
+			\item the \emph{first} un-named braces \emph{body}, which we define as any lines following the
+			      first opening \lstinline!{! or \lstinline![! that defined the code block. This is the
+			      part controlled by the \emph{body} field for \texttt{noAdditionalIndent} and friends from
+			      \cpageref{sec:noadd-indent-rules}.
 		\end{itemize}
-		Users wishing to customise the mandatory and/or optional arguments on a
-		\emph{per-name} basis for the \texttt{UnNamedGroupingBracesBrackets} should use
-		\texttt{always-un-named}.
+		Users wishing to customise the mandatory and/or optional arguments on a \emph{per-name}
+		basis for the \texttt{UnNamedGroupingBracesBrackets} should use \texttt{always-un-named}.
 
 	\paragraph{filecontents} code blocks behave just as \texttt{environments}, except that
 		neither arguments nor items are sought.

Modified: trunk/Master/texmf-dist/doc/support/latexindent/subsubsec-special.tex
===================================================================
--- trunk/Master/texmf-dist/doc/support/latexindent/subsubsec-special.tex	2021-08-01 02:06:28 UTC (rev 60131)
+++ trunk/Master/texmf-dist/doc/support/latexindent/subsubsec-special.tex	2021-08-01 20:35:09 UTC (rev 60132)
@@ -24,10 +24,11 @@
 latexindent.pl special1.tex -local displayMath-noAdd.yaml  
 latexindent.pl special1.tex -l displayMath-indent-rules.yaml  
 \end{commandshell}
-	we receive the respective output given in \cref{lst:special1-output-noAdd,lst:special1-output-indent-rules}; note that in
+	we receive the respective output given in
+	\cref{lst:special1-output-noAdd,lst:special1-output-indent-rules}; note that in
 	\cref{lst:special1-output-noAdd}, the \texttt{displayMath} code block has \emph{not}
-	received any additional indentation, while in \cref{lst:special1-output-indent-rules}, the
-	\texttt{displayMath} code block has received three tabs worth of indentation.
+	received any additional indentation, while in \cref{lst:special1-output-indent-rules},
+	the \texttt{displayMath} code block has received three tabs worth of indentation.
 
 	\begin{minipage}{.45\textwidth}
 		\cmhlistingsfromfile{demonstrations/special1-noAdd.tex}{\texttt{special1.tex} using \cref{lst:displayMath-noAdd}}{lst:special1-output-noAdd}
@@ -54,9 +55,11 @@
 latexindent.pl special1.tex -local special-noAdd-glob.yaml  
 latexindent.pl special1.tex -l special-indent-rules-global.yaml  
 \end{commandshell}
-	we receive the outputs in \cref{lst:special1-output-noAdd-glob,lst:special1-output-indent-rules-global}; notice that in \cref{lst:special1-output-noAdd-glob}
-	neither of the \texttt{special} code blocks have received indentation, while in
-	\cref{lst:special1-output-indent-rules-global} both code blocks have received a single space of indentation.
+	we receive the outputs in
+	\cref{lst:special1-output-noAdd-glob,lst:special1-output-indent-rules-global}; notice
+	that in \cref{lst:special1-output-noAdd-glob} neither of the \texttt{special} code blocks
+	have received indentation, while in \cref{lst:special1-output-indent-rules-global} both
+	code blocks have received a single space of indentation.
 
 	\begin{minipage}{.45\textwidth}
 		\cmhlistingsfromfile{demonstrations/special1-noAdd-glob.tex}{\texttt{special1.tex} using \cref{lst:special-noAdd-glob}}{lst:special1-output-noAdd-glob}

Modified: trunk/Master/texmf-dist/doc/support/latexindent/title.tex
===================================================================
--- trunk/Master/texmf-dist/doc/support/latexindent/title.tex	2021-08-01 02:06:28 UTC (rev 60131)
+++ trunk/Master/texmf-dist/doc/support/latexindent/title.tex	2021-08-01 20:35:09 UTC (rev 60132)
@@ -8,7 +8,7 @@
 			sharp corners,
 			enhanced,
 			overlay={\node[anchor=north east,outer sep=2pt] at ([xshift=3cm,yshift=4mm]frame.north east) {\includegraphics[width=3cm]{logo}}; }]
-		\centering\ttfamily\bfseries latexindent.pl\\[1cm] Version 3.10.1
+		\centering\ttfamily\bfseries latexindent.pl\\[1cm] Version 3.11
 	\end{tcolorbox}
 }
 \author{Chris Hughes \thanks{and contributors!
@@ -15,7 +15,7 @@
 		See \vref{sec:contributors}.
 		For
 		all communication, please visit \cite{latexindent-home}.}}
-\date{2021-07-23}
+\date{2021-07-31}
 \maketitle
 \begin{adjustwidth}{1cm}{1cm}
 	\small

Modified: trunk/Master/texmf-dist/scripts/latexindent/LatexIndent/Document.pm
===================================================================
--- trunk/Master/texmf-dist/scripts/latexindent/LatexIndent/Document.pm	2021-08-01 02:06:28 UTC (rev 60131)
+++ trunk/Master/texmf-dist/scripts/latexindent/LatexIndent/Document.pm	2021-08-01 20:35:09 UTC (rev 60132)
@@ -222,6 +222,21 @@
     # one sentence per line: sentences are objects, as of V3.5.1
     $self->one_sentence_per_line if ($is_m_switch_active and ${$masterSettings{modifyLineBreaks}{oneSentencePerLine}}{manipulateSentences});
 
+    if ($is_m_switch_active and !${$self}{preamblePresent}){
+        $self->yaml_get_textwrap_removeparagraphline_breaks;
+    }
+
+    if( $is_m_switch_active and ${$masterSettings{modifyLineBreaks}{textWrapOptions}}{beforeFindingChildCodeBlocks} == 1){ 
+        # call the remove_paragraph_line_breaks and text_wrap routines
+        if(${$masterSettings{modifyLineBreaks}{removeParagraphLineBreaks}}{beforeTextWrap}){
+            $self->remove_paragraph_line_breaks if ${$self}{removeParagraphLineBreaks};
+            $self->text_wrap if (${$self}{textWrapOptions} and ${$masterSettings{modifyLineBreaks}{textWrapOptions}}{perCodeBlockBasis});
+        } else {
+            $self->text_wrap if (${$self}{textWrapOptions} and ${$masterSettings{modifyLineBreaks}{textWrapOptions}}{perCodeBlockBasis});
+            $self->remove_paragraph_line_breaks if ${$self}{removeParagraphLineBreaks};
+        }
+    }
+
     # search for environments
     $logger->trace('looking for ENVIRONMENTS') if $is_t_switch_active;
     $self->find_environments if ${$self}{body} =~ m/$environmentBasicRegExp/s;
@@ -238,17 +253,15 @@
     $self->find_commands_or_key_equals_values_braces_and_special if ${$self}{body} =~ m/$specialBeginAndBracesBracketsBasicRegExp/s;
     
     # documents without preamble need a manual call to the paragraph_one_line routine
-    if ($is_m_switch_active and !${$self}{preamblePresent}){
-        $self->yaml_get_textwrap_removeparagraphline_breaks;
-
-        # call the remove_paragraph_line_breaks and text_wrap routines
-        if(${$masterSettings{modifyLineBreaks}{removeParagraphLineBreaks}}{beforeTextWrap}){
-            $self->remove_paragraph_line_breaks if ${$self}{removeParagraphLineBreaks};
-            $self->text_wrap if (${$self}{textWrapOptions} and ${$masterSettings{modifyLineBreaks}{textWrapOptions}}{perCodeBlockBasis});
-        } else {
-            $self->text_wrap if (${$self}{textWrapOptions} and ${$masterSettings{modifyLineBreaks}{textWrapOptions}}{perCodeBlockBasis});
-            $self->remove_paragraph_line_breaks if ${$self}{removeParagraphLineBreaks};
-        }
+    if ($is_m_switch_active and ${$masterSettings{modifyLineBreaks}{textWrapOptions}}{beforeFindingChildCodeBlocks} == 0 ){ 
+       # call the remove_paragraph_line_breaks and text_wrap routines
+       if(${$masterSettings{modifyLineBreaks}{removeParagraphLineBreaks}}{beforeTextWrap}){
+           $self->remove_paragraph_line_breaks if ${$self}{removeParagraphLineBreaks};
+           $self->text_wrap if (${$self}{textWrapOptions} and ${$masterSettings{modifyLineBreaks}{textWrapOptions}}{perCodeBlockBasis});
+       } else {
+           $self->text_wrap if (${$self}{textWrapOptions} and ${$masterSettings{modifyLineBreaks}{textWrapOptions}}{perCodeBlockBasis});
+           $self->remove_paragraph_line_breaks if ${$self}{removeParagraphLineBreaks};
+       }
     }
 
     # if there are no children, return
@@ -303,12 +316,15 @@
 
     # there are a number of tasks common to each object
     $latexIndentObject->tasks_common_to_each_object(%{$self});
+    
+    # removeParagraphLineBreaks and textWrapping fun!
+    $latexIndentObject->text_wrap_remove_paragraph_line_breaks if( $is_m_switch_active and ${$masterSettings{modifyLineBreaks}{textWrapOptions}}{beforeFindingChildCodeBlocks} );
       
     # tasks particular to each object
     $latexIndentObject->tasks_particular_to_each_object;
     
     # removeParagraphLineBreaks and textWrapping fun!
-    $latexIndentObject->text_wrap_remove_paragraph_line_breaks if($is_m_switch_active);
+    $latexIndentObject->text_wrap_remove_paragraph_line_breaks if($is_m_switch_active and !${$masterSettings{modifyLineBreaks}{textWrapOptions}}{beforeFindingChildCodeBlocks} );
 
     # store children in special hash
     push(@{${$self}{children}},$latexIndentObject);

Modified: trunk/Master/texmf-dist/scripts/latexindent/LatexIndent/GetYamlSettings.pm
===================================================================
--- trunk/Master/texmf-dist/scripts/latexindent/LatexIndent/GetYamlSettings.pm	2021-08-01 02:06:28 UTC (rev 60131)
+++ trunk/Master/texmf-dist/scripts/latexindent/LatexIndent/GetYamlSettings.pm	2021-08-01 20:35:09 UTC (rev 60132)
@@ -570,6 +570,27 @@
       $logger->info(Dumper(\%masterSettings));
   }
 
+  if( $is_m_switch_active 
+      and ${$masterSettings{modifyLineBreaks}{textWrapOptions}}{beforeFindingChildCodeBlocks}
+      and !${$masterSettings{modifyLineBreaks}{textWrapOptions}}{perCodeBlockBasis} ){
+
+      # the following settings don't make sense, so we change
+      #
+      # modifyLineBreaks:
+      #     textWrapOptions:
+      #         perCodeBlockBasis: 0
+      #         beforeFindingChildCodeBlocks: 1
+      # into
+      #
+      # modifyLineBreaks:
+      #     textWrapOptions:
+      #         perCodeBlockBasis: 0
+      #         beforeFindingChildCodeBlocks: 0
+      $logger->warn("*textWrapOptions:beforeFindingChildCodeBlocks:1 with textWrapOptions:perCodeBlockBasis:0");
+      $logger->warn("turning off beforeFindingChildCodeBlocks by changing textWrapOptions:beforeFindingOtherCodeBlocks to be 0");
+      $logger->warn("you need to set *both* values to be 1 to use the beforeFindingChildCodeBlocks feature");
+      ${$masterSettings{modifyLineBreaks}{textWrapOptions}}{beforeFindingChildCodeBlocks} = 0;
+  }
   return;
 }
 

Modified: trunk/Master/texmf-dist/scripts/latexindent/LatexIndent/ModifyLineBreaks.pm
===================================================================
--- trunk/Master/texmf-dist/scripts/latexindent/LatexIndent/ModifyLineBreaks.pm	2021-08-01 02:06:28 UTC (rev 60131)
+++ trunk/Master/texmf-dist/scripts/latexindent/LatexIndent/ModifyLineBreaks.pm	2021-08-01 20:35:09 UTC (rev 60132)
@@ -274,6 +274,7 @@
       }
     }
 }
+
 sub text_wrap_remove_paragraph_line_breaks{
     my $self = shift;
 
@@ -293,6 +294,60 @@
     # alignment at ampersand can take priority
     return if(${$self}{lookForAlignDelims} and ${$masterSettings{modifyLineBreaks}{textWrapOptions}}{alignAtAmpersandTakesPriority});
 
+    # goal: get an accurate measurement of verbatim objects;
+    # 
+    # example: 
+    #       Lorem \verb!x+y! ipsum dolor sit amet
+    # 
+    # is represented as 
+    #
+    #       Lorem LTXIN-TK-VERBATIM1-END ipsum dolor sit amet
+    #
+    # so we *measure* the verbatim token and replace it with 
+    # an appropriate-length string
+    #
+    #       Lorem a2A41233rt ipsum dolor sit amet
+    #
+    # and then put the body back to 
+    #
+    #       Lorem LTXIN-TK-VERBATIM1-END ipsum dolor sit amet
+    # 
+    # following the text wrapping
+    my @putVerbatimBackIn;
+
+    # check body for verbatim and get measurements
+    if (${$self}{body} =~ m/$tokens{verbatim}/s and ${$masterSettings{modifyLineBreaks}{textWrapOptions}}{huge} eq "overflow"){
+
+      # reference: https://stackoverflow.com/questions/10336660/in-perl-how-can-i-generate-random-strings-consisting-of-eight-hex-digits
+      my @set = ('0' ..'9', 'A' .. 'Z', 'a' .. 'z');
+
+      # loop through verbatim objects
+      while( my ($verbatimID,$child)= each %verbatimStorage){
+        my $verbatimThing = ${$child}{begin}.${$child}{body}.${$child}{end};
+
+        # if the object has line breaks, don't measure it
+        next if $verbatimThing =~ m/\R/s;
+
+        if(${$self}{body} =~m/$verbatimID/s){
+
+          # measure length
+          my $verbatimLength = Unicode::GCString->new($verbatimThing)->columns();
+
+          # create temporary ID, and check that it is not contained in the body
+          my $verbatimTmpID = join '' => map $set[rand @set], 1 .. $verbatimLength;
+          while(${$self}{body} =~m/$verbatimTmpID/s){
+             $verbatimTmpID = join '' => map $set[rand @set], 1 .. $verbatimLength;
+          }
+
+          # store for use after the text wrapping
+          push(@putVerbatimBackIn,{origVerbatimID=>$verbatimID,tmpVerbatimID=>$verbatimTmpID});
+
+          # make the substitution
+          ${$self}{body} =~ s/$verbatimID/$verbatimTmpID/s;
+        }
+      }
+    }
+
     # call the text wrapping routine
     my $columns;
 
@@ -311,15 +366,20 @@
         $columns = 80;
     }
 
+    # vital Text::Wrap options
     $Text::Wrap::columns=$columns;
-    if(${$masterSettings{modifyLineBreaks}{textWrapOptions}}{separator} ne ''){
-        $Text::Wrap::separator=${$masterSettings{modifyLineBreaks}{textWrapOptions}}{separator};
-    }
-    $Text::Wrap::huge = ${$masterSettings{modifyLineBreaks}{textWrapOptions}}{huge} if ${$masterSettings{modifyLineBreaks}{textWrapOptions}}{huge};
+    $Text::Wrap::huge = ${$masterSettings{modifyLineBreaks}{textWrapOptions}}{huge};
+
+    # all other Text::Wrap options not usually needed/helpful, but available
+    $Text::Wrap::separator=${$masterSettings{modifyLineBreaks}{textWrapOptions}}{separator} if(${$masterSettings{modifyLineBreaks}{textWrapOptions}}{separator} ne '');
     $Text::Wrap::break = ${$masterSettings{modifyLineBreaks}{textWrapOptions}}{break} if ${$masterSettings{modifyLineBreaks}{textWrapOptions}}{break};
     $Text::Wrap::unexpand = ${$masterSettings{modifyLineBreaks}{textWrapOptions}}{unexpand} if ${$masterSettings{modifyLineBreaks}{textWrapOptions}}{unexpand};
     $Text::Wrap::tabstop = ${$masterSettings{modifyLineBreaks}{textWrapOptions}}{tabstop} if ${$masterSettings{modifyLineBreaks}{textWrapOptions}}{tabstop};
+
+    # perform the text wrapping
     ${$self}{body} = wrap('','',${$self}{body});
+
+    ${$self}{body} =~ s/${$_}{tmpVerbatimID}/${$_}{origVerbatimID}/s foreach (@putVerbatimBackIn);
 }
 
 sub construct_paragraph_reg_exp{

Modified: trunk/Master/texmf-dist/scripts/latexindent/LatexIndent/Version.pm
===================================================================
--- trunk/Master/texmf-dist/scripts/latexindent/LatexIndent/Version.pm	2021-08-01 02:06:28 UTC (rev 60131)
+++ trunk/Master/texmf-dist/scripts/latexindent/LatexIndent/Version.pm	2021-08-01 20:35:09 UTC (rev 60132)
@@ -19,6 +19,6 @@
 use Exporter qw/import/;
 our @EXPORT_OK = qw/$versionNumber $versionDate/;
 
-our $versionNumber = '3.10.1';
-our $versionDate = '2021-07-23';
+our $versionNumber = '3.11';
+our $versionDate = '2021-07-31';
 1

Modified: trunk/Master/texmf-dist/scripts/latexindent/defaultSettings.yaml
===================================================================
--- trunk/Master/texmf-dist/scripts/latexindent/defaultSettings.yaml	2021-08-01 02:06:28 UTC (rev 60131)
+++ trunk/Master/texmf-dist/scripts/latexindent/defaultSettings.yaml	2021-08-01 20:35:09 UTC (rev 60132)
@@ -1,9 +1,10 @@
-# defaultSettings.yaml for latexindent.pl, version 3.10.1, 2021-07-23
+# defaultSettings.yaml for latexindent.pl, version 3.11, 2021-07-31
 #                      a script that aims to
 #                      beautify .tex, .sty, .cls files
 #
 # (or latexindent.exe if you're on Windows)
 #
+#---------------------------------------------------------------------------------------
 # This program is free software: you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
 # the Free Software Foundation, either version 3 of the License, or
@@ -19,8 +20,8 @@
 # Chris Hughes, 2017
 # 
 # For all communication, please visit: https://github.com/cmhughes/latexindent.pl
-
-
+#
+#---------------------------------------------------------------------------------------
 # You should feel encouraged to change anything you like in these settings, but 
 # it would probably be better to have your own user settings 
 # files somewhere else - remember that this file may be overwritten
@@ -31,6 +32,8 @@
 # for details of how to create and configure your own settings files.
 #
 # Please read the manual (linked from above) first to understand what each switch does.
+#
+#---------------------------------------------------------------------------------------
 
 # latexindent can be called to act on a file without using the file's extension, 
 # e.g, simply
@@ -512,6 +515,7 @@
         huge: overflow    # forbid mid-word line breaks
         separator: ""
         perCodeBlockBasis: 0
+        beforeFindingChildCodeBlocks: 0
         all: 0
         alignAtAmpersandTakesPriority: 1
         environments: 

Modified: trunk/Master/texmf-dist/scripts/latexindent/latexindent.pl
===================================================================
(Binary files differ)



More information about the tex-live-commits mailing list.