texlive[61686] trunk: latexindent (21jan22)
commits+karl at tug.org
commits+karl at tug.org
Fri Jan 21 23:50:30 CET 2022
Revision: 61686
http://tug.org/svn/texlive?view=revision&revision=61686
Author: karl
Date: 2022-01-21 23:50:29 +0100 (Fri, 21 Jan 2022)
Log Message:
-----------
latexindent (21jan22)
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/latexindent-yaml-schema.json
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-fine-tuning.tex
trunk/Master/texmf-dist/doc/support/latexindent/title.tex
trunk/Master/texmf-dist/scripts/latexindent/LatexIndent/GetYamlSettings.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/sec-appendices.tex
trunk/Master/texmf-dist/doc/support/latexindent/sec-references.tex
Removed Paths:
-------------
trunk/Master/texmf-dist/doc/support/latexindent/appendices.tex
trunk/Master/texmf-dist/doc/support/latexindent/references.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 2022-01-21 22:49:34 UTC (rev 61685)
+++ trunk/Master/texmf-dist/doc/support/latexindent/README 2022-01-21 22:50:29 UTC (rev 61686)
@@ -1,5 +1,5 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- latexindent.pl, version 3.14, 2022-01-08
+ latexindent.pl, version 3.15, 2022-01-21
PERL script to indent code within environments, and align delimited
environments in .tex files.
Deleted: trunk/Master/texmf-dist/doc/support/latexindent/appendices.tex
===================================================================
--- trunk/Master/texmf-dist/doc/support/latexindent/appendices.tex 2022-01-21 22:49:34 UTC (rev 61685)
+++ trunk/Master/texmf-dist/doc/support/latexindent/appendices.tex 2022-01-21 22:50:29 UTC (rev 61686)
@@ -1,395 +0,0 @@
-% arara: pdflatex: { 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}.
-
- \begin{cmhlistings}[style=tcblatex,language=Perl]{\texttt{helloworld.pl}}{lst:helloworld}
-#!/usr/bin/perl
-
-use strict;
-use warnings;
-use utf8;
-use PerlIO::encoding;
-use Unicode::GCString;
-use open ':std', ':encoding(UTF-8)';
-use Text::Wrap;
-use Text::Tabs;
-use FindBin;
-use YAML::Tiny;
-use File::Copy;
-use File::Basename;
-use File::HomeDir;
-use Encode;
-use Getopt::Long;
-use Data::Dumper;
-use List::Util qw(max);
-
-print "hello world";
-exit;
-\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
- \begin{commandshell}
-perl latexindent-module-installer.pl
-\end{commandshell}
- or
- \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.
-
- \subsection{Manually installing modules}\label{sec:manual-module-instal}
- Manually installing the modules given in \cref{lst:helloworld} will vary depending on
- your operating system and \texttt{Perl} distribution.
-
- \subsubsection{Linux}
- \paragraph{perlbrew}
- Linux users may be interested in exploring Perlbrew \cite{perlbrew}; an example
- installation would be:
- \begin{commandshell}
-sudo apt-get install perlbrew
-perlbrew init
-perlbrew install perl-5.28.1
-perlbrew switch perl-5.28.1
-sudo apt-get install curl
-curl -L http://cpanmin.us | perl - App::cpanminus
-cpanm YAML::Tiny
-cpanm File::HomeDir
-cpanm Unicode::GCString
-\end{commandshell}
-
- \paragraph{Ubuntu/Debian}
- For other distributions, the Ubuntu/Debian approach may work as follows
- \begin{commandshell}
-sudo apt install perl
-sudo cpan -i App::cpanminus
-sudo cpanm YAML::Tiny
-sudo cpanm File::HomeDir
-sudo cpanm Unicode::GCString
-\end{commandshell}
- or else by running, for example,
- \begin{commandshell}
-sudo perl -MCPAN -e'install "File::HomeDir"'
-\end{commandshell}
-
- \paragraph{Ubuntu: using the texlive from apt-get}
- Ubuntu users that install texlive using \texttt{apt-get} as in the following
- \begin{commandshell}
-sudo apt install texlive
-sudo apt install texlive-latex-recommended
-\end{commandshell}
- may need the following additional command to work with \texttt{latexindent.pl}
- \begin{commandshell}
-sudo apt install texlive-extra-utils
-\end{commandshell}
-
- \paragraph{Alpine}
- 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
-apk --no-cache add miniperl perl-utils
-
-# Installing incompatible latexindent perl dependencies via apk
-apk --no-cache add \
- perl-log-dispatch \
- perl-namespace-autoclean \
- perl-specio \
- perl-unicode-linebreak
-
-# Installing remaining latexindent perl dependencies via cpan
-apk --no-cache add curl wget make
-ls /usr/share/texmf-dist/scripts/latexindent
-cd /usr/local/bin && \
- curl -L https://cpanmin.us/ -o cpanm && \
- chmod +x cpanm
-cpanm -n App::cpanminus
-cpanm -n File::HomeDir
-cpanm -n Params::ValidationCompiler
-cpanm -n YAML::Tiny
-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.
- \subsubsection{Mac}
- Users of the Macintosh operating system might like to explore the following commands, for
- example:
- \begin{commandshell}
-brew install perl
-brew install cpanm
-
-cpanm YAML::Tiny
-cpanm File::HomeDir
-cpanm Unicode::GCString
-\end{commandshell}
-
- \subsubsection{Windows}
- Strawberry Perl users on Windows might use \texttt{CPAN client}. All of the modules are
- 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
- 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
- \begin{dosprompt}
-latexindent.exe -t myfile.tex
- \end{dosprompt}
-
- \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}.
- \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 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;
- \item run
- \begin{commandshell}
-ls /usr/local/bin
-\end{commandshell}
- to see what is \emph{currently} in there;
- \item run the following commands
- \begin{commandshell}
-sudo apt-get install cmake
-sudo apt-get update && sudo apt-get install build-essential
-mkdir build && cd build
-cmake ../path-helper-files
-sudo make install
-\end{commandshell}
- \item run
- \begin{commandshell}
-ls /usr/local/bin
-\end{commandshell}
- 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}
-sudo make uninstall
-\end{commandshell}
- \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;
- \begin{dosprompt}
-echo %path%
- \end{dosprompt}
- \item right click on \texttt{add-to-path.bat} and \emph{Run as administrator};
- \item log out, and log back in;
- \item open a command prompt and run
- \begin{dosprompt}
-echo %path%
- \end{dosprompt}
- to check that the appropriate directory has been added to your \lstinline!%path%!.
- \end{enumerate}
- To \emph{remove} the directory from your \lstinline!%path%!, run
- \texttt{remove-from-path.bat} as administrator.
-
- \section{latexindent-yaml-schema.json}
-
- \texttt{latexindent.pl}
- \announce{2022-01-02}{latexindent-yaml-schema.json} ships with
- \texttt{latexindent-yaml-schema.json}
- which might help you when constructing your YAML files.
- \index{json!schema for YAML files}
-
- \subsection{VSCode demonstration}
- To use \texttt{latexindent-yaml-schema.json} with \texttt{VSCode}, you can use the
- following steps:
- \index{VSCode}
- \index{json!VSCode}
- \begin{enumerate}
- \item download \texttt{latexindent-yaml-schema.json} from the \texttt{documentation} folder of
- \cite{latexindent-home}, save it in whichever directory you would like, noting it for
- reference;
- \item following the instructions from \cite{vscode-yaml-demo}, for example, you should install
- the VSCode YAML extension \cite{vscode-yaml-extentions};
- \item set up your \texttt{settings.json} file using the directory you saved the file by
- adapting \cref{lst:settings.json}; on my Ubuntu laptop this file lives at
- \texttt{/home/cmhughes/.config/Code/User/settings.json}.
- \end{enumerate}
-
- \begin{widepage}
- \cmhlistingsfromfile*{demonstrations/settings.json}[yaml-TCB]{\texttt{settings.json}}{lst:settings.json}
- \end{widepage}
-
- Alternatively, if you would prefer not to download the json file, you might be able to
- use an adapted version of \cref{lst:settings-alt.json}.
-
- \begin{widepage}
- \cmhlistingsfromfile*{demonstrations/settings-alt.json}[yaml-TCB]{\texttt{settings-alt.json}}{lst:settings-alt.json}
- \end{widepage}
-
- Finally, if your TeX distribution is up to date, then
- \texttt{latexindent-yaml-schema.json} \emph{should} be in the documentation folder of
- your installation, so an adapted version of \cref{lst:settings-alt1.json} may work.
-
- \begin{widepage}
- \cmhlistingsfromfile*{demonstrations/settings-alt1.json}[yaml-TCB]{\texttt{settings-alt1.json}}{lst:settings-alt1.json}
- \end{widepage}
-
- If you have details of how to implement this schema in other editors, please feel
- encouraged to contribute to this documentation.
-
- \section{Using conda}
- If you use conda you'll only need
- \begin{commandshell}
-conda install latexindent.pl -c conda-forge
-\end{commandshell}
- this will install the executable and all its dependencies (including perl) in the
- activate environment. You don't even have to worry about \texttt{defaultSettings.yaml} as
- it included too, you can thus skip \cref{sec:requiredmodules,sec:updating-path}.
- \index{conda}
-
- You can get a conda installation for example from \cite{conda} or from \cite{anacoda}.
-
- \section{logFilePreferences}\label{app:logfile-demo}
- \Vref{lst:logFilePreferences} describes the options for customising the information given
- to the log file, and we provide a few demonstrations here. Let's say that we start with
- the code given in \cref{lst:simple}, and the settings specified in
- \cref{lst:logfile-prefs1-yaml}.
-
- \begin{minipage}{.35\linewidth}
- \cmhlistingsfromfile{demonstrations/simple.tex}{\texttt{simple.tex}}{lst:simple}
- \end{minipage}
- \hfill
- \begin{minipage}{.6\linewidth}
- \cmhlistingsfromfile{demonstrations/logfile-prefs1.yaml}[yaml-TCB]{\texttt{logfile-prefs1.yaml}}{lst:logfile-prefs1-yaml}
- \end{minipage}
-
- If we run the following command (noting that \texttt{-t} is active)
- \begin{commandshell}
-latexindent.pl -t -l=logfile-prefs1.yaml simple.tex
-\end{commandshell}
- then on inspection of \texttt{indent.log} we will find the snippet given in
- \cref{lst:indentlog}.
- \begin{cmhlistings}[style=tcblatex,morekeywords={TRACE}]{\texttt{indent.log}}{lst:indentlog}
- +++++
-TRACE: environment found: myenv
- No ancestors found for myenv
- Storing settings for myenvenvironments
- indentRulesGlobal specified (0) for environments, ...
- Using defaultIndent for myenv
- Putting linebreak after replacementText for myenv
- looking for COMMANDS and key = {value}
-TRACE: Searching for commands with optional and/or mandatory arguments AND key = {value}
- looking for SPECIAL begin/end
-TRACE: Searching myenv for special begin/end (see specialBeginEnd)
-TRACE: Searching myenv for optional and mandatory arguments
- ... no arguments found
- -----
- \end{cmhlistings}
- 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
- \texttt{indentconfig.yaml}, may wish to run the following command in either
- \texttt{cmd.exe} or \texttt{powershell.exe}:
- \begin{dosprompt}
-chcp
- \end{dosprompt}
- They may receive the following result
- \begin{dosprompt}
-Active code page: 936
- \end{dosprompt}
- 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}
-
- \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.
-
- 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
-\end{commandshell}
-
- See \cite{bersbersbers} for further dertails.
-
- \section{Differences from Version 2.2 to 3.0}\label{app:differences}
- There are a few (small) changes to the interface when comparing Version 2.2 to Version
- 3.0. Explicitly, in previous versions you might have run, for example,
- \index{switches!-o demonstration}
- \begin{commandshell}
-latexindent.pl -o myfile.tex outputfile.tex
-\end{commandshell}
- whereas in Version 3.0 you would run any of the following, for example,
- \index{switches!-o demonstration}
- \begin{commandshell}
-latexindent.pl -o=outputfile.tex myfile.tex
-latexindent.pl -o outputfile.tex myfile.tex
-latexindent.pl myfile.tex -o outputfile.tex
-latexindent.pl myfile.tex -o=outputfile.tex
-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.
-
- 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
- \cref{lst:indentAfterThisHeadingOld,lst:indentAfterThisHeadingNew}
-
- \begin{minipage}{.45\textwidth}
- \cmhlistingsfromfile{demonstrations/indentAfterThisHeadingOld.yaml}[yaml-TCB]{\texttt{indentAfterThisHeading} in Version 2.2}{lst:indentAfterThisHeadingOld}
- \end{minipage}%
- \hfill
- \begin{minipage}{.45\textwidth}
- \cmhlistingsfromfile{demonstrations/indentAfterThisHeadingNew.yaml}[yaml-TCB]{\texttt{indentAfterThisHeading} in Version 3.0}{lst:indentAfterThisHeadingNew}
- \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}.
- \index{specialBeginEnd!update to displaymath V3.0}
-
- \begin{minipage}{.45\textwidth}
- \cmhlistingsfromfile{demonstrations/noAddtionalIndentOld.yaml}[yaml-TCB]{\texttt{noAdditionalIndent} in Version 2.2}{lst:noAdditionalIndentOld}
- \end{minipage}%
- \hfill
- \begin{minipage}{.45\textwidth}
- \cmhlistingsfromfile{demonstrations/noAddtionalIndentNew.yaml}[yaml-TCB]{\texttt{noAdditionalIndent} for \texttt{displayMath} in Version 3.0}{lst:indentAfterThisHeadingNew1}
-
- \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}
- \hrule
-
- \hfill\itshape End\\\mbox{}\hfill\mbox{}\rlap{\hfill\includegraphics{logo}}
-
- \end{minipage}
Modified: trunk/Master/texmf-dist/doc/support/latexindent/latexindent-yaml-schema.json
===================================================================
--- trunk/Master/texmf-dist/doc/support/latexindent/latexindent-yaml-schema.json 2022-01-21 22:49:34 UTC (rev 61685)
+++ trunk/Master/texmf-dist/doc/support/latexindent/latexindent-yaml-schema.json 2022-01-21 22:50:29 UTC (rev 61686)
@@ -2,7 +2,7 @@
"$schema": "http://json-schema.org/schema",
"$id": "latexindent-yaml-schema.json",
"title": "latexindent.pl YAML schema",
- "description": "latexindent.pl YAML schema helper, V3.14 2022-01-08",
+ "description": "latexindent.pl YAML schema helper, V3.15 2022-01-21",
"type": "object",
"properties": {
"fileExtensionPreference": {
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 2022-01-21 22:49:34 UTC (rev 61685)
+++ trunk/Master/texmf-dist/doc/support/latexindent/latexindent.tex 2022-01-21 22:50:29 UTC (rev 61686)
@@ -835,8 +835,8 @@
\input{sec-the-line-switch}
\input{sec-fine-tuning}
\input{sec-conclusions-know-limitations}
- \input{references}
- \input{appendices}
+ \input{sec-references}
+ \input{sec-appendices}
{\clearpage\addcontentsline{toc}{section}{List of listings}\small\lstlistoflistings}
\printindex
\fi
Deleted: trunk/Master/texmf-dist/doc/support/latexindent/references.tex
===================================================================
--- trunk/Master/texmf-dist/doc/support/latexindent/references.tex 2022-01-21 22:49:34 UTC (rev 61685)
+++ trunk/Master/texmf-dist/doc/support/latexindent/references.tex 2022-01-21 22:50:29 UTC (rev 61686)
@@ -1,4 +0,0 @@
-\nocite{*}
-\section{References}
- \printbibliography[heading=subbibnumbered,title={External links},notkeyword=contributor]
- \printbibliography[env=specialbib,heading=subbibnumbered,title={Contributors\label{sec:contributors}},keyword=contributor]
Added: trunk/Master/texmf-dist/doc/support/latexindent/sec-appendices.tex
===================================================================
--- trunk/Master/texmf-dist/doc/support/latexindent/sec-appendices.tex (rev 0)
+++ trunk/Master/texmf-dist/doc/support/latexindent/sec-appendices.tex 2022-01-21 22:50:29 UTC (rev 61686)
@@ -0,0 +1,549 @@
+% arara: pdflatex: { 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}.
+
+ \begin{cmhlistings}[style=tcblatex,language=Perl]{\texttt{helloworld.pl}}{lst:helloworld}
+#!/usr/bin/perl
+
+use strict;
+use warnings;
+use utf8;
+use PerlIO::encoding;
+use Unicode::GCString;
+use open ':std', ':encoding(UTF-8)';
+use Text::Wrap;
+use Text::Tabs;
+use FindBin;
+use YAML::Tiny;
+use File::Copy;
+use File::Basename;
+use File::HomeDir;
+use Encode;
+use Getopt::Long;
+use Data::Dumper;
+use List::Util qw(max);
+
+print "hello world";
+exit;
+\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
+ \begin{commandshell}
+perl latexindent-module-installer.pl
+\end{commandshell}
+ or
+ \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.
+
+ \subsection{Manually installing modules}\label{sec:manual-module-instal}
+ Manually installing the modules given in \cref{lst:helloworld} will vary depending on
+ your operating system and \texttt{Perl} distribution.
+
+ \subsubsection{Linux}
+ \paragraph{perlbrew}
+ Linux users may be interested in exploring Perlbrew \cite{perlbrew}; an example
+ installation would be:
+ \begin{commandshell}
+sudo apt-get install perlbrew
+perlbrew init
+perlbrew install perl-5.28.1
+perlbrew switch perl-5.28.1
+sudo apt-get install curl
+curl -L http://cpanmin.us | perl - App::cpanminus
+cpanm YAML::Tiny
+cpanm File::HomeDir
+cpanm Unicode::GCString
+\end{commandshell}
+ \index{cpan}
+
+ \paragraph{Ubuntu/Debian}
+ For other distributions, the Ubuntu/Debian approach may work as follows
+ \begin{commandshell}
+sudo apt install perl
+sudo cpan -i App::cpanminus
+sudo cpanm YAML::Tiny
+sudo cpanm File::HomeDir
+sudo cpanm Unicode::GCString
+\end{commandshell}
+ or else by running, for example,
+ \begin{commandshell}
+sudo perl -MCPAN -e'install "File::HomeDir"'
+\end{commandshell}
+
+ \paragraph{Ubuntu: using the texlive from apt-get}
+ Ubuntu users that install texlive using \texttt{apt-get} as in the following
+ \begin{commandshell}
+sudo apt install texlive
+sudo apt install texlive-latex-recommended
+\end{commandshell}
+ may need the following additional command to work with \texttt{latexindent.pl}
+ \begin{commandshell}
+sudo apt install texlive-extra-utils
+\end{commandshell}
+
+ \paragraph{Alpine}
+ 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
+apk --no-cache add miniperl perl-utils
+
+# Installing incompatible latexindent perl dependencies via apk
+apk --no-cache add \
+ perl-log-dispatch \
+ perl-namespace-autoclean \
+ perl-specio \
+ perl-unicode-linebreak
+
+# Installing remaining latexindent perl dependencies via cpan
+apk --no-cache add curl wget make
+ls /usr/share/texmf-dist/scripts/latexindent
+cd /usr/local/bin && \
+ curl -L https://cpanmin.us/ -o cpanm && \
+ chmod +x cpanm
+cpanm -n App::cpanminus
+cpanm -n File::HomeDir
+cpanm -n Params::ValidationCompiler
+cpanm -n YAML::Tiny
+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.
+ \subsubsection{Mac}
+ Users of the Macintosh operating system might like to explore the following commands, for
+ example:
+ \begin{commandshell}
+brew install perl
+brew install cpanm
+
+cpanm YAML::Tiny
+cpanm File::HomeDir
+cpanm Unicode::GCString
+\end{commandshell}
+
+ \subsubsection{Windows}
+ Strawberry Perl users on Windows might use \texttt{CPAN client}. All of the modules are
+ 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
+ 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
+ \begin{dosprompt}
+latexindent.exe -t myfile.tex
+ \end{dosprompt}
+
+ \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}.
+ \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 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;
+ \item run
+ \begin{commandshell}
+ls /usr/local/bin
+\end{commandshell}
+ to see what is \emph{currently} in there;
+ \item run the following commands
+ \begin{commandshell}
+sudo apt-get install cmake
+sudo apt-get update && sudo apt-get install build-essential
+mkdir build && cd build
+cmake ../path-helper-files
+sudo make install
+\end{commandshell}
+ \item run
+ \begin{commandshell}
+ls /usr/local/bin
+\end{commandshell}
+ 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}
+sudo make uninstall
+\end{commandshell}
+ \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;
+ \begin{dosprompt}
+echo %path%
+ \end{dosprompt}
+ \item right click on \texttt{add-to-path.bat} and \emph{Run as administrator};
+ \item log out, and log back in;
+ \item open a command prompt and run
+ \begin{dosprompt}
+echo %path%
+ \end{dosprompt}
+ to check that the appropriate directory has been added to your \lstinline!%path%!.
+ \end{enumerate}
+ To \emph{remove} the directory from your \lstinline!%path%!, run
+ \texttt{remove-from-path.bat} as administrator.
+
+ \section{latexindent-yaml-schema.json}
+
+ \texttt{latexindent.pl}
+ \announce{2022-01-02}{latexindent-yaml-schema.json} ships with
+ \texttt{latexindent-yaml-schema.json}
+ which might help you when constructing your YAML files.
+ \index{json!schema for YAML files}
+
+ \subsection{VSCode demonstration}
+ To use \texttt{latexindent-yaml-schema.json} with \texttt{VSCode}, you can use the
+ following steps:
+ \index{VSCode}
+ \index{json!VSCode}
+ \begin{enumerate}
+ \item download \texttt{latexindent-yaml-schema.json} from the \texttt{documentation} folder of
+ \cite{latexindent-home}, save it in whichever directory you would like, noting it for
+ reference;
+ \item following the instructions from \cite{vscode-yaml-demo}, for example, you should install
+ the VSCode YAML extension \cite{vscode-yaml-extentions};
+ \item set up your \texttt{settings.json} file using the directory you saved the file by
+ adapting \cref{lst:settings.json}; on my Ubuntu laptop this file lives at
+ \texttt{/home/cmhughes/.config/Code/User/settings.json}.
+ \end{enumerate}
+
+ \begin{widepage}
+ \cmhlistingsfromfile{demonstrations/settings.json}[yaml-TCB]{\texttt{settings.json}}{lst:settings.json}
+ \end{widepage}
+
+ Alternatively, if you would prefer not to download the json file, you might be able to
+ use an adapted version of \cref{lst:settings-alt.json}.
+
+ \begin{widepage}
+ \cmhlistingsfromfile{demonstrations/settings-alt.json}[yaml-TCB]{\texttt{settings-alt.json}}{lst:settings-alt.json}
+ \end{widepage}
+
+ Finally, if your TeX distribution is up to date, then
+ \texttt{latexindent-yaml-schema.json} \emph{should} be in the documentation folder of
+ your installation, so an adapted version of \cref{lst:settings-alt1.json} may work.
+
+ \begin{widepage}
+ \cmhlistingsfromfile{demonstrations/settings-alt1.json}[yaml-TCB]{\texttt{settings-alt1.json}}{lst:settings-alt1.json}
+ \end{widepage}
+
+ If you have details of how to implement this schema in other editors, please feel
+ encouraged to contribute to this documentation.
+
+ \section{Using conda}\label{sec:app:conda}
+ If you use conda you'll only need
+ \begin{commandshell}
+conda install latexindent.pl -c conda-forge
+\end{commandshell}
+ this will install the executable and all its dependencies (including perl) in the
+ activate environment. You don't even have to worry about \texttt{defaultSettings.yaml} as
+ it included too, you can thus skip \cref{sec:requiredmodules,sec:updating-path}.
+ \index{conda}
+
+ You can get a conda installation for example from \cite{conda} or from \cite{anacoda}.
+
+ \subsection{Sample conda installation on Ubuntu}
+ On Ubuntu I followed the 64-bit installation instructions at \cite{condainstallubuntu}
+ and then I ran the following commands:
+ \begin{commandshell}
+conda create -n latexindent.pl
+conda activate latexindent.pl
+conda install latexindent.pl -c conda-forge
+conda info --envs
+conda list
+conda run latexindent.pl -vv
+\end{commandshell}
+ I found the details given at \cite{condainstallhelp} to be helpful.
+
+ \section{pre-commit}
+
+ Users of \texttt{.git} may be interested
+ \announce*{2022-01-21}{pre-commit for latexindent.pl} in
+ exploring the \texttt{pre-commit} tool \cite{pre-commithome}, which is supported by
+ \texttt{latexindent.pl}. Thank you to \cite{tdegeusprecommit} for contributing this
+ feature.
+
+ To use the \texttt{pre-commit} tool, you will need to install \texttt{pre-commit}; sample
+ instructions for Ubuntu are given in \cref{sec:pre-commit-ubuntu}. Once installed, there
+ are two ways to use \texttt{pre-commit}: using \texttt{CPAN} or using \texttt{conda},
+ detailed in \cref{sec:pre-commit-cpan} and \cref{sec:pre-commit-conda} respectively.
+
+ \subsection{Sample pre-commit installation on Ubuntu}\label{sec:pre-commit-ubuntu}
+ On Ubuntu I ran the following command:
+ \begin{commandshell}
+python3 -m pip install pre-commit
+\end{commandshell}
+ I then updated my path via .bashrc so that it includes the line in
+ \cref{lst:bashrc-update}.
+ \begin{cmhlistings}*[style=tcblatex,language=Bash]{\texttt{.bashrc} update}{lst:bashrc-update}
+...
+export PATH=$PATH:/home/cmhughes/.local/bin
+\end{cmhlistings}
+
+ \subsection{pre-commit using CPAN}\label{sec:pre-commit-cpan}
+
+ To use \texttt{latexindent.pl} with \texttt{pre-commit}, create the file
+ \texttt{.pre-commit-config.yaml} given in \cref{lst:.pre-commit-config.yaml-cpan} in your
+ git-repository.
+ \index{cpan}
+ \index{git}
+ \index{pre-commit!cpan}
+ \begin{cmhlistings}*[style=tcblatex]{\texttt{.pre-commit-config.yaml} (cpan)}{lst:.pre-commit-config.yaml-cpan}
+- repo: https://github.com/cmhughes/latexindent.pl
+ rev: V3.15
+ hooks:
+ - id: latexindent
+ args: [-s]
+\end{cmhlistings}
+ Once created, you should then be able to run the following command:
+ \begin{commandshell}
+pre-commit run --all-files
+\end{commandshell}
+ A few notes about \cref{lst:.pre-commit-config.yaml-cpan}:
+ \begin{itemize}
+ \item the settings given in \cref{lst:.pre-commit-config.yaml-cpan} instruct
+ \texttt{pre-commit} to use \texttt{CPAN} to get dependencies;
+ \item this requires \texttt{pre-commit} and \texttt{perl} to be installed on your system;
+ \item the \texttt{args} lists selected command-line options; the settings in
+ \cref{lst:.pre-commit-config.yaml-cpan} are equivalent to calling
+ \begin{commandshell}
+latexindent.pl -s myfile.tex
+\end{commandshell}
+ for each \texttt{.tex} file in your repository;
+ \item to instruct \texttt{latexindent.pl} to overwrite the files in your repository, then you
+ can update \cref{lst:.pre-commit-config.yaml-cpan} so that \texttt{args: [-s, -w]}.
+ \end{itemize}
+
+ Naturally you can add options, or omit \texttt{-s} and \texttt{-w}, according to your
+ preference.
+
+ \subsection{pre-commit using conda}\label{sec:pre-commit-conda}
+
+ You can also rely on \texttt{conda} (detailed in \cref{sec:app:conda}) instead of
+ \texttt{CPAN} for all dependencies, including \texttt{latexindent.pl} itself.
+ \index{conda}
+ \index{git}
+ \index{pre-commit!conda}
+
+ \begin{cmhlistings}*[style=tcblatex]{\texttt{.pre-commit-config.yaml} (conda)}{lst:.pre-commit-config.yaml-conda}
+- repo: https://github.com/cmhughes/latexindent.pl
+ rev: V3.15
+ hooks:
+ - id: latexindent-conda
+ args: [-s]
+\end{cmhlistings}
+ Once created, you should then be able to run the following command:
+ \begin{commandshell}
+pre-commit run --all-files
+\end{commandshell}
+ A few notes about \cref{lst:.pre-commit-config.yaml-cpan}:
+ \begin{itemize}
+ \item the settings given in \cref{lst:.pre-commit-config.yaml-conda} instruct
+ \texttt{pre-commit} to use \texttt{conda} to get dependencies;
+ \item this requires \texttt{pre-commit} and \texttt{conda} to be installed on your system;
+ \item the \texttt{args} lists selected command-line options; the settings in
+ \cref{lst:.pre-commit-config.yaml-cpan} are equivalent to calling
+ \begin{commandshell}
+conda run latexindent.pl -s myfile.tex
+\end{commandshell}
+ for each \texttt{.tex} file in your repository;
+ \item to instruct \texttt{latexindent.pl} to overwrite the files in your repository, then you
+ can update \cref{lst:.pre-commit-config.yaml-cpan} so that \texttt{args: [-s, -w]}.
+ \end{itemize}
+
+ \subsection{pre-commit example using -l, -m switches}
+ Let's consider a small example, with local \texttt{latexindent.pl} settings in
+ \texttt{.latexindent.yaml}.
+
+ \begin{example}
+ We use the local settings given in \cref{lst:.latexindent.yaml}.
+ \begin{cmhlistings}*[style=tcblatex]{\texttt{.latexindent.yaml}}{lst:.latexindent.yaml}
+onlyOneBackUp: 1
+
+modifyLineBreaks:
+ oneSentencePerLine:
+ manipulateSentences: 1
+\end{cmhlistings}
+
+ and \texttt{.pre-commit-config.yaml} as in \cref{lst:.latexindent.yaml-switches}:
+ \begin{cmhlistings}*[style=tcblatex]{\texttt{.pre-commit-config.yaml}}{lst:.latexindent.yaml-switches}
+repos:
+- repo: https://github.com/cmhughes/latexindent.pl
+ rev: V3.15
+ hooks:
+ - id: latexindent
+ args: [-l, -m, -s, -w]
+\end{cmhlistings}
+ Now running
+ \begin{commandshell}
+pre-commit run --all-files
+\end{commandshell}
+ is equivalent to running
+ \begin{commandshell}
+latexindent.pl -l -m -s -w myfile.tex
+\end{commandshell}
+ for each \texttt{.tex} file in your repository.
+
+ A few notes about \cref{lst:.latexindent.yaml-switches}:
+ \begin{itemize}
+ \item the \texttt{-l} option was added to use the local \texttt{.latexindent.yaml} (where it
+ was specified to only create one back-up file, as \texttt{git} typically takes care of
+ this when you use \texttt{pre-commit});
+ \item \texttt{-m} to modify line breaks; in addition to \texttt{-s} to suppress command-line
+ output,
+ and \texttt{-w} to format files in place.
+ \end{itemize}
+ \end{example}
+
+ \section{logFilePreferences}\label{app:logfile-demo}
+ \Vref{lst:logFilePreferences} describes the options for customising the information given
+ to the log file, and we provide a few demonstrations here. Let's say that we start with
+ the code given in \cref{lst:simple}, and the settings specified in
+ \cref{lst:logfile-prefs1-yaml}.
+
+ \begin{minipage}{.35\linewidth}
+ \cmhlistingsfromfile{demonstrations/simple.tex}{\texttt{simple.tex}}{lst:simple}
+ \end{minipage}
+ \hfill
+ \begin{minipage}{.6\linewidth}
+ \cmhlistingsfromfile{demonstrations/logfile-prefs1.yaml}[yaml-TCB]{\texttt{logfile-prefs1.yaml}}{lst:logfile-prefs1-yaml}
+ \end{minipage}
+
+ If we run the following command (noting that \texttt{-t} is active)
+ \begin{commandshell}
+latexindent.pl -t -l=logfile-prefs1.yaml simple.tex
+\end{commandshell}
+ then on inspection of \texttt{indent.log} we will find the snippet given in
+ \cref{lst:indentlog}.
+ \begin{cmhlistings}[style=tcblatex,morekeywords={TRACE}]{\texttt{indent.log}}{lst:indentlog}
+ +++++
+TRACE: environment found: myenv
+ No ancestors found for myenv
+ Storing settings for myenvenvironments
+ indentRulesGlobal specified (0) for environments, ...
+ Using defaultIndent for myenv
+ Putting linebreak after replacementText for myenv
+ looking for COMMANDS and key = {value}
+TRACE: Searching for commands with optional and/or mandatory arguments AND key = {value}
+ looking for SPECIAL begin/end
+TRACE: Searching myenv for special begin/end (see specialBeginEnd)
+TRACE: Searching myenv for optional and mandatory arguments
+ ... no arguments found
+ -----
+ \end{cmhlistings}
+ 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
+ \texttt{indentconfig.yaml}, may wish to run the following command in either
+ \texttt{cmd.exe} or \texttt{powershell.exe}:
+ \begin{dosprompt}
+chcp
+ \end{dosprompt}
+ They may receive the following result
+ \begin{dosprompt}
+Active code page: 936
+ \end{dosprompt}
+ 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}
+
+ \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.
+
+ 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
+\end{commandshell}
+
+ See \cite{bersbersbers} for further dertails.
+
+ \section{Differences from Version 2.2 to 3.0}\label{app:differences}
+ There are a few (small) changes to the interface when comparing Version 2.2 to Version
+ 3.0. Explicitly, in previous versions you might have run, for example,
+ \index{switches!-o demonstration}
+ \begin{commandshell}
+latexindent.pl -o myfile.tex outputfile.tex
+\end{commandshell}
+ whereas in Version 3.0 you would run any of the following, for example,
+ \index{switches!-o demonstration}
+ \begin{commandshell}
+latexindent.pl -o=outputfile.tex myfile.tex
+latexindent.pl -o outputfile.tex myfile.tex
+latexindent.pl myfile.tex -o outputfile.tex
+latexindent.pl myfile.tex -o=outputfile.tex
+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.
+
+ 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
+ \cref{lst:indentAfterThisHeadingOld,lst:indentAfterThisHeadingNew}
+
+ \begin{minipage}{.45\textwidth}
+ \cmhlistingsfromfile{demonstrations/indentAfterThisHeadingOld.yaml}[yaml-TCB]{\texttt{indentAfterThisHeading} in Version 2.2}{lst:indentAfterThisHeadingOld}
+ \end{minipage}%
+ \hfill
+ \begin{minipage}{.45\textwidth}
+ \cmhlistingsfromfile{demonstrations/indentAfterThisHeadingNew.yaml}[yaml-TCB]{\texttt{indentAfterThisHeading} in Version 3.0}{lst:indentAfterThisHeadingNew}
+ \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}.
+ \index{specialBeginEnd!update to displaymath V3.0}
+
+ \begin{minipage}{.45\textwidth}
+ \cmhlistingsfromfile{demonstrations/noAddtionalIndentOld.yaml}[yaml-TCB]{\texttt{noAdditionalIndent} in Version 2.2}{lst:noAdditionalIndentOld}
+ \end{minipage}%
+ \hfill
+ \begin{minipage}{.45\textwidth}
+ \cmhlistingsfromfile{demonstrations/noAddtionalIndentNew.yaml}[yaml-TCB]{\texttt{noAdditionalIndent} for \texttt{displayMath} in Version 3.0}{lst:indentAfterThisHeadingNew1}
+
+ \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}
+ \hrule
+
+ \hfill\itshape End\\\mbox{}\hfill\mbox{}\rlap{\hfill\includegraphics{logo}}
+
+ \end{minipage}
Property changes on: trunk/Master/texmf-dist/doc/support/latexindent/sec-appendices.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Modified: trunk/Master/texmf-dist/doc/support/latexindent/sec-fine-tuning.tex
===================================================================
--- trunk/Master/texmf-dist/doc/support/latexindent/sec-fine-tuning.tex 2022-01-21 22:49:34 UTC (rev 61685)
+++ trunk/Master/texmf-dist/doc/support/latexindent/sec-fine-tuning.tex 2022-01-21 22:50:29 UTC (rev 61686)
@@ -30,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
Added: trunk/Master/texmf-dist/doc/support/latexindent/sec-references.tex
===================================================================
--- trunk/Master/texmf-dist/doc/support/latexindent/sec-references.tex (rev 0)
+++ trunk/Master/texmf-dist/doc/support/latexindent/sec-references.tex 2022-01-21 22:50:29 UTC (rev 61686)
@@ -0,0 +1,16 @@
+\nocite{*}
+\section{References}
+ \printbibliography[heading=subbibnumbered,title={perl-related links},keyword=perl]
+
+ \printbibliography[heading=subbibnumbered,title={conda-related links},keyword=conda]
+ \index{conda}
+
+ \printbibliography[heading=subbibnumbered,title={VScode-related links},keyword=vscode]
+ \index{VSCode}
+
+ \printbibliography[heading=subbibnumbered,title={Other links},keyword=other]
+ \index{pre-commit}
+ \index{MiKTeX}
+
+ \index{contributors}
+ \printbibliography[env=specialbib,heading=subbibnumbered,title={Contributors\label{sec:contributors}},keyword=contributor]
Property changes on: trunk/Master/texmf-dist/doc/support/latexindent/sec-references.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Modified: trunk/Master/texmf-dist/doc/support/latexindent/title.tex
===================================================================
--- trunk/Master/texmf-dist/doc/support/latexindent/title.tex 2022-01-21 22:49:34 UTC (rev 61685)
+++ trunk/Master/texmf-dist/doc/support/latexindent/title.tex 2022-01-21 22:50:29 UTC (rev 61686)
@@ -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.14
+ \centering\ttfamily\bfseries latexindent.pl\\[1cm] Version 3.15
\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{2022-01-08}
+\date{2022-01-21}
\maketitle
\begin{adjustwidth}{1cm}{1cm}
\small
Modified: trunk/Master/texmf-dist/scripts/latexindent/LatexIndent/GetYamlSettings.pm
===================================================================
--- trunk/Master/texmf-dist/scripts/latexindent/LatexIndent/GetYamlSettings.pm 2022-01-21 22:49:34 UTC (rev 61685)
+++ trunk/Master/texmf-dist/scripts/latexindent/LatexIndent/GetYamlSettings.pm 2022-01-21 22:50:29 UTC (rev 61686)
@@ -61,8 +61,9 @@
# grab the logger object
$logger->info("*YAML settings read: defaultSettings.yaml");
$logger->info("Reading defaultSettings.yaml from $FindBin::RealBin/defaultSettings.yaml");
-
- # if latexindent.exe is invoked from TeXLive, then defaultSettings.yaml won't be in
+ my $myLibDir = dirname(__FILE__);
+
+ # if latexindent.exe is invoked from TeXLive, then defaultSettings.yaml won't be in
# the same directory as it; we need to navigate to it
if(!$defaultSettings) {
$logger->info("Reading defaultSettings.yaml (2nd attempt) from $FindBin::RealBin/../../texmf-dist/scripts/latexindent/defaultSettings.yaml");
@@ -71,6 +72,8 @@
$defaultSettings = YAML::Tiny->read( "$FindBin::RealBin/../../texmf-dist/scripts/latexindent/defaultSettings.yaml");
} elsif ( -e "$FindBin::RealBin/LatexIndent/defaultSettings.yaml" ) {
$defaultSettings = YAML::Tiny->read( "$FindBin::RealBin/LatexIndent/defaultSettings.yaml");
+ } elsif ( -e "$myLibDir/defaultSettings.yaml" ) {
++ $defaultSettings = YAML::Tiny->read( "$myLibDir/defaultSettings.yaml");
} else {
$logger->fatal("*Could not open defaultSettings.yaml");
$self->output_logfile();
Modified: trunk/Master/texmf-dist/scripts/latexindent/LatexIndent/Version.pm
===================================================================
--- trunk/Master/texmf-dist/scripts/latexindent/LatexIndent/Version.pm 2022-01-21 22:49:34 UTC (rev 61685)
+++ trunk/Master/texmf-dist/scripts/latexindent/LatexIndent/Version.pm 2022-01-21 22:50:29 UTC (rev 61686)
@@ -19,6 +19,6 @@
use Exporter qw/import/;
our @EXPORT_OK = qw/$versionNumber $versionDate/;
-our $versionNumber = '3.14';
-our $versionDate = '2022-01-08';
+our $versionNumber = '3.15';
+our $versionDate = '2022-01-21';
1
Modified: trunk/Master/texmf-dist/scripts/latexindent/defaultSettings.yaml
===================================================================
--- trunk/Master/texmf-dist/scripts/latexindent/defaultSettings.yaml 2022-01-21 22:49:34 UTC (rev 61685)
+++ trunk/Master/texmf-dist/scripts/latexindent/defaultSettings.yaml 2022-01-21 22:50:29 UTC (rev 61686)
@@ -1,4 +1,4 @@
-# defaultSettings.yaml for latexindent.pl, version 3.14, 2022-01-08
+# defaultSettings.yaml for latexindent.pl, version 3.15, 2022-01-21
# a script that aims to
# beautify .tex, .sty, .cls files
#
@@ -9,21 +9,21 @@
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
-#
+#
# 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
# GNU General Public License for more details.
-#
+#
# See http://www.gnu.org/licenses/.
-#
+#
# 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
+# 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
# when you update your tex distribution. Please see the manual linked from:
#
@@ -35,7 +35,7 @@
#
#---------------------------------------------------------------------------------------
-# latexindent can be called to act on a file without using the file's extension,
+# latexindent can be called to act on a file without using the file's extension,
# e.g, simply
# latexindent myfile
# in which case the choice of file extension is chosen
@@ -50,13 +50,13 @@
# default file extension of backup file (if -w switch is active)
# for example, if your .tex file is called
# myfile.tex
-# and you specify the backupExtension as BACKUP.bak then your
+# and you specify the backupExtension as BACKUP.bak then your
# backup file will be
# myfileBACKUP.bak
backupExtension: .bak
-# only one backup per file:
-# - if onlyOneBackUp is 0 then, as a safety measure,
+# only one backup per file:
+# - if onlyOneBackUp is 0 then, as a safety measure,
# the number on the extension increments by 1 each time:
#
# myfile.bak0, myfile.bak1, myfile.bak2
@@ -64,16 +64,16 @@
# be overwritten each time (not recommended until you trust the script)
onlyOneBackUp: 0
-# some users may want a finite number of backup files,
+# some users may want a finite number of backup files,
# say at most 3; in which case, they can change this maxNumberOfBackUps.
#
-# If maxNumberOfBackUps is set to 0 (or less) then infinitely
+# If maxNumberOfBackUps is set to 0 (or less) then infinitely
# many backups are possible, unless onlyOneBackUp is switched on
maxNumberOfBackUps: 0
-# some users may wish to cycle through back up files.
+# some users may wish to cycle through back up files.
#
-# for example, with maxNumberOfBackUps: 4, they may
+# for example, with maxNumberOfBackUps: 4, they may
# wish to delete the oldest back up file, and keep only the most recent.
#
# copy myfile.bak1 to myfile.bak0
@@ -90,7 +90,7 @@
showAmalgamatedSettings: 0
showDecorationStartCodeBlockTrace: 0
showDecorationFinishCodeBlockTrace: 0
- endLogFileWith: '--------------'
+ endLogFileWith: '--------------'
showGitHubInfoFooter: 1
Dumper:
Terse: 1
@@ -101,7 +101,7 @@
Sortkeys: 1
Pair: " => "
-# verbatim environments specified
+# verbatim environments specified
# in this field will not be changed at all!
verbatimEnvironments:
verbatim: 1
@@ -113,7 +113,7 @@
verb: 1
lstinline: 1
-# no indent blocks (not necessarily verbatim
+# no indent blocks (not necessarily verbatim
# environments) which are marked as %\begin{noindent}
# or anything else that you detail in the following
noIndentBlock:
@@ -146,7 +146,7 @@
# default value of indentation
defaultIndent: "\t"
-# remove trailing whitespace from all lines
+# remove trailing whitespace from all lines
removeTrailingWhitespace:
beforeProcessing: 0
afterProcessing: 1
@@ -153,7 +153,7 @@
# name of code blocks that should have their body aligned at ampersand delimiters
lookForAlignDelims:
- tabular:
+ tabular:
delims: 1
alignDoubleBackSlash: 1
spacesBeforeDoubleBackSlash: 1
@@ -217,7 +217,7 @@
VNiceArrayRC: 1
NiceArrayRCwithDelims: 1
-# if you want the script to look for \item commands
+# if you want the script to look for \item commands
# and format it, as follows (for example),
# \begin{itemize}
# \item content here
@@ -234,7 +234,7 @@
# if you want to use other names for your items (for example, \part)
# then populate them here; note that you can trick latexindent.pl
-# into indenting all kinds of commands (within environments specified in
+# into indenting all kinds of commands (within environments specified in
# indentAfterItems) using this technique.
itemNames:
item: 1
@@ -259,17 +259,17 @@
# if you want to add indentation after
# a heading, such as \part, \chapter, etc
-# then populate it in here - you can add
-# an indent rule to indentRules if you would
+# then populate it in here - you can add
+# an indent rule to indentRules if you would
# like something other than defaultIndent
#
-# you can also change the level if you like,
+# you can also change the level if you like,
# or add your own title command
indentAfterHeadings:
part:
indentAfterThisHeading: 0
level: 1
- chapter:
+ chapter:
indentAfterThisHeading: 0
level: 2
section:
@@ -294,9 +294,9 @@
# maximum indentation, off by default
maximumIndentation: -1
-# if you don't want to have additional indentation
+# if you don't want to have additional indentation
# in a code block, then add it to noAdditionalIndent; note that
-# code blocks in this field will inherit
+# code blocks in this field will inherit
# the *current* level of indentation they just won't
# get any *additional* indentation
noAdditionalIndent:
@@ -312,7 +312,7 @@
frame: 0
# if you have indent rules for particular code blocks
-# then you can populate them in indentRules; for example, you might just want
+# then you can populate them in indentRules; for example, you might just want
# to use a space " " or maybe a double tab "\t\t"
indentRules:
myenvironment: "\t\t"
@@ -337,7 +337,7 @@
afterHeading: 0
filecontents: 0
-# set indentRules globally for codeblocks; these need
+# set indentRules globally for codeblocks; these need
# to be horizontal spaces, if they are to be used
indentRulesGlobal:
environments: 0
@@ -357,7 +357,7 @@
commandCodeBlocks:
roundParenthesesAllowed: 1
stringsAllowedBetweenArguments:
- -
+ -
amalgamate: 1
- 'node'
- 'at'
@@ -367,7 +367,7 @@
- '\-\-'
- '\#\#\d'
commandNameSpecial:
- -
+ -
amalgamate: 1
- '@ifnextchar\['
@@ -374,31 +374,31 @@
# change dos line breaks into unix
dos2unixlinebreaks: 0
-# modifyLineBreaks will only be searched if the -m
+# modifyLineBreaks will only be searched if the -m
# switch is active
#
# poly-switch examples:
#
-# BeginStartsOnOwnLine:
+# BeginStartsOnOwnLine:
# modify line breaks before a begin statement
#
-# when set to -1, e.g
-# some text some text
+# when set to -1, e.g
+# some text some text
# \begin{myenvironment}
# will be changed to
# some text some text \begin{myenvironment}
# when set to 0, the switch is ignored
-# when set to 1, e.g
+# when set to 1, e.g
# some text some text \begin{myenvironment}
# will be changed to
-# some text some text
+# some text some text
# \begin{myenvironment}
-# when set to 2, e.g
+# when set to 2, e.g
# some text some text \begin{myenvironment}
# will be changed to
# some text some text%
# \begin{myenvironment}
-# when set to 3, e.g
+# when set to 3, e.g
# some text some text \begin{myenvironment}
# will be changed to
# some text some text
@@ -405,26 +405,26 @@
#
# \begin{myenvironment}
#
-# BodyStartsOnOwnLine:
+# BodyStartsOnOwnLine:
# modify line breaks before the beginning of the body
#
-# when set to -1, e.g
+# when set to -1, e.g
# \begin{myenv}
# body text body text
# will be changed to
# \begin{myenv}body text body text
# when set to 0, the switch is ignored
-# when set to 1, e.g
+# when set to 1, e.g
# \begin{myenv}body text body text
# will be changed to
# \begin{myenv}
# body text body text
-# when set to 2, e.g
+# when set to 2, e.g
# \begin{myenv}body text body text
# will be changed to
# \begin{myenv}%
# body text body text
-# when set to 3, e.g
+# when set to 3, e.g
# \begin{myenv}body text body text
# will be changed to
# \begin{myenv}
@@ -431,26 +431,26 @@
#
# body text body text
#
-# EndStartsOnOwnLine:
+# EndStartsOnOwnLine:
# modify line breaks before the end statement
#
-# when set to -1, e.g
-# some text some text
+# when set to -1, e.g
+# some text some text
# \end{myenvironment}
# will be changed to
# some text some text \end{myenvironment}
# when set to 0, the switch is ignored
-# when set to 1, e.g
+# when set to 1, e.g
# some text some text \end{myenvironment}
# will be changed to
-# some text some text
+# some text some text
# \end{myenvironment}
-# when set to 2, e.g
+# when set to 2, e.g
# some text some text \end{myenvironment}
# will be changed to
# some text some text%
# \end{myenvironment}
-# when set to 3, e.g
+# when set to 3, e.g
# some text some text \end{myenvironment}
# will be changed to
# some text some text
@@ -457,31 +457,31 @@
#
# \end{myenvironment}
#
-# EndFinishesWithLineBreak:
+# EndFinishesWithLineBreak:
# modify line breaks after the end statement
-#
-# when set to -1, e.g
+#
+# when set to -1, e.g
# \end{myenvironment}
-# some text some text
+# some text some text
# will be changed to
-# \end{myenvironment}some text some text
+# \end{myenvironment}some text some text
# when set to 0, the switch is ignored
-# when set to 1, e.g
-# \end{myenvironment}some text some text
+# when set to 1, e.g
+# \end{myenvironment}some text some text
# will be changed to
# \end{myenvironment}
-# some text some text
-# when set to 2, e.g
-# \end{myenvironment}some text some text
+# some text some text
+# when set to 2, e.g
+# \end{myenvironment}some text some text
# will be changed to
# \end{myenvironment}%
-# some text some text
-# when set to 3, e.g
-# \end{myenvironment}some text some text
+# some text some text
+# when set to 3, e.g
+# \end{myenvironment}some text some text
# will be changed to
# \end{myenvironment}
#
-# some text some text
+# some text some text
#
# you can specify settings on a per-name basis
modifyLineBreaks:
@@ -488,7 +488,7 @@
preserveBlankLines: 1
condenseMultipleBlankLinesInto: 1
oneSentencePerLine:
- manipulateSentences: 0
+ manipulateSentences: 0
removeSentenceLineBreaks: 1
textWrapSentences: 0
sentenceIndent: ""
@@ -519,7 +519,7 @@
beforeFindingChildCodeBlocks: 0
all: 0
alignAtAmpersandTakesPriority: 1
- environments:
+ environments:
quotation: 0
ifElseFi: 0
optionalArguments: 0
@@ -534,7 +534,7 @@
all: 0
beforeTextWrap: 0
alignAtAmpersandTakesPriority: 1
- environments:
+ environments:
quotation: 0
ifElseFi: 0
optionalArguments: 0
@@ -617,7 +617,7 @@
# replacements, only active when either -r or -rr switches are active
replacements:
- -
+ -
amalgamate: 1
-
this: 'latexindent.pl'
@@ -625,11 +625,11 @@
lookForThis: 0
when: before
-# fineTuning allows you to tweak the internal pattern matching that
+# fineTuning allows you to tweak the internal pattern matching that
# is central to latexindent.pl
fineTuning:
environments:
- name: '[a-zA-Z@\*0-9_\\]+'
+ name: '[a-zA-Z@\*0-9_\\]+'
ifElseFi:
name: '(?!@?if[a-zA-Z@]*?\{)@?if[a-zA-Z@]*?'
commands:
@@ -642,7 +642,7 @@
namedGroupingBracesBrackets:
name: '[0-9\.a-zA-Z@\*><]+?'
follow: '\h|\R|\{|\[|\$|\)|\('
- UnNamedGroupingBracesBrackets:
+ UnNamedGroupingBracesBrackets:
follow: '\{|\[|,|&|\)|\(|\$'
arguments:
before: '(?:#\d\h*;?,?\/?)+|\<.*?\>'
Modified: trunk/Master/texmf-dist/scripts/latexindent/latexindent.pl
===================================================================
(Binary files differ)
More information about the tex-live-commits
mailing list.