summaryrefslogtreecommitdiff
path: root/macros/latex
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2021-04-05 03:00:44 +0000
committerNorbert Preining <norbert@preining.info>2021-04-05 03:00:44 +0000
commitf0b3901f183621b9000493d3ec263c69ac868156 (patch)
tree307f40bdcc97503979fc6bfa9c14726ffb277abb /macros/latex
parent6c7f24a5336de85c7db50c5037772288964c607b (diff)
CTAN sync 202104050300
Diffstat (limited to 'macros/latex')
-rw-r--r--macros/latex/contrib/abraces/README.md16
-rw-r--r--macros/latex/contrib/abraces/abraces-doc.pdfbin196440 -> 231121 bytes
-rw-r--r--macros/latex/contrib/abraces/abraces-doc.tex311
-rw-r--r--macros/latex/contrib/abraces/abraces.sty460
-rw-r--r--macros/latex/contrib/easybook/doc/easybook-demo.pdfbin262400 -> 262396 bytes
-rw-r--r--macros/latex/contrib/easybook/doc/easybook-demo.tex2
-rw-r--r--macros/latex/contrib/easybook/doc/easybook.pdfbin420345 -> 421232 bytes
-rw-r--r--macros/latex/contrib/easybook/easybook.dtx135
-rw-r--r--macros/latex/contrib/reledmac/doc-more/page-typesetting-columns.pdfbin40840 -> 40812 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/1-criticalendnotes.pdfbin197373 -> 197491 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/1-criticalnotes.pdfbin195586 -> 195653 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/1-sidenotes.pdfbin291128 -> 291188 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/1-tabular.pdfbin280887 -> 281031 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/1-verses-doublenumbering.pdfbin197414 -> 197564 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/1-verses.pdfbin197363 -> 197396 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/2-antilabe.pdfbin205371 -> 205373 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/2-cross_referencing.pdfbin196250 -> 196391 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/2-footnote_spacing.pdfbin199696 -> 199862 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/2-glossaries.pdfbin280642 -> 280691 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/2-indexing.pdfbin279716 -> 279825 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/2-lemma_disambigution.pdfbin273887 -> 273987 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/2-line_numbers_in_header.pdfbin289371 -> 289480 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/2-linespacing.pdfbin284597 -> 284653 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/2-manuscript-apparatus.pdfbin285213 -> 285314 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/2-notes-width.pdfbin202991 -> 203109 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/2-one_series_per_pstart.pdfbin208585 -> 208756 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/2-performances.pdfbin281520 -> 281669 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/2-reledmac-right-to-left.pdfbin31055 -> 31450 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/2-subdivision-number-in-header.pdfbin304585 -> 304788 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/2-titles_in_line_numbering_with_notes.pdfbin283529 -> 283765 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/2-titles_not_in_line_numbering.pdfbin196014 -> 196243 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/3-reledpar_columns_different_languages.pdfbin23268 -> 23427 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/3-reledpar_mwe.pdfbin172561 -> 172606 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/3-reledpar_pages_different_languages_lualatex.pdfbin32053 -> 32047 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/3-reledpar_same_page_number_in_both_side.pdfbin284700 -> 284905 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_advancedshifted-nomax.pdfbin190058 -> 190129 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_advancedshifted.pdfbin189290 -> 189364 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_default.pdfbin168066 -> 168145 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_nomax-shifted.pdfbin189692 -> 189772 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_nomax.pdfbin188622 -> 188698 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_nosync.pdfbin188675 -> 188752 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_shifted.pdfbin188809 -> 188888 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/4-reledpar_column_mix_with_not_column-continuous-numbering.pdfbin209918 -> 210267 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/4-reledpar_column_mix_with_not_column.pdfbin208856 -> 209050 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/4-reledpar_columns_alignment.pdfbin201188 -> 201331 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/4-reledpar_columns_titles_in_line_numbering_with_notes.pdfbin293036 -> 293347 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/4-reledpar_inside-outside-columns.pdfbin200260 -> 200437 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/4-reledpar_one_series_per_pstart.pdfbin221533 -> 221703 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/4-reledpar_pages_long_notes.pdfbin246187 -> 246378 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/4-reledpar_pages_notes_leftpage.pdfbin200801 -> 201164 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/4-reledpar_pages_paragraph_separator_between.pdfbin196882 -> 197012 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/4-reledpar_pages_titles_in_line_numbering_with_notes.pdfbin297430 -> 297750 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/4-reledpar_titles_not_in_line_numbering.pdfbin203241 -> 203497 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/4-reledpar_verse_text_between.pdfbin192355 -> 192572 bytes
-rw-r--r--macros/latex/contrib/reledmac/migration.pdfbin357853 -> 358157 bytes
-rw-r--r--macros/latex/contrib/reledmac/reledmac.dtx16
-rw-r--r--macros/latex/contrib/reledmac/reledmac.pdfbin2032328 -> 2034959 bytes
-rw-r--r--macros/latex/contrib/reledmac/reledpar.pdfbin986633 -> 987750 bytes
58 files changed, 657 insertions, 283 deletions
diff --git a/macros/latex/contrib/abraces/README.md b/macros/latex/contrib/abraces/README.md
new file mode 100644
index 0000000000..e5632dc131
--- /dev/null
+++ b/macros/latex/contrib/abraces/README.md
@@ -0,0 +1,16 @@
+`abraces` 2021/03/31 v2.0
+----------------------------------------
+
+A package that provides a character key-driven interface to
+supplement new constructions of the traditional `\overbrace`
+and `\underbrace` pairs in an asymmetric or arbitrary way.
+
+Copyright (c) 2021 Werner Grundlingh
+
+This work may be distributed and/or modified under the
+conditions of the LaTeX Project Public License, either version 1.3
+of this license or (at your option) any later version.
+The latest version of this license is in
+ http://www.latex-project.org/lppl.txt
+and version 1.3 or later is part of all distributions of LaTeX
+version 2005/12/01 or later. \ No newline at end of file
diff --git a/macros/latex/contrib/abraces/abraces-doc.pdf b/macros/latex/contrib/abraces/abraces-doc.pdf
index 95030130fa..31cd8f8190 100644
--- a/macros/latex/contrib/abraces/abraces-doc.pdf
+++ b/macros/latex/contrib/abraces/abraces-doc.pdf
Binary files differ
diff --git a/macros/latex/contrib/abraces/abraces-doc.tex b/macros/latex/contrib/abraces/abraces-doc.tex
index 6db0fca990..b0326d6ee8 100644
--- a/macros/latex/contrib/abraces/abraces-doc.tex
+++ b/macros/latex/contrib/abraces/abraces-doc.tex
@@ -1,17 +1,23 @@
-% $Id: abraces-doc.tex,v 1.0 2012/08/31 00:00:00 wgrundlingh stable $
+% $Id: abraces-doc.tex,v 2.0 2021/03/31 00:00:00 wgrundlingh stable $
\RequirePackage{xcolor}% http://ctan.org/pkg/xcolor (required to "overload" color package)
-\documentclass{ltxdockit}[2011/03/25]
-%\usepackage{xspace}% http://ctan.org/pkg/xspace (already loaded by ltxdockit)
-\usepackage[overload]{abraces}% http://ctan.org/pkg/abraces
-\usepackage{booktabs}% http://ctan.org/pkg/booktabs
-\usepackage{shortvrb}% http://ctan.org/pkg/shortvrb
-\usepackage{amsmath}% http://ctan.org/pkg/amsmath
+\documentclass[10pt]{ltxdockit}[2011/03/25]
+
+%\usepackage{xspace}% Already loaded by ltxdockit
+\usepackage[overload]{abraces}
+\usepackage{booktabs,shortvrb,amsmath,xfp}
\MakeShortVerb{\|}
-\rcsid{$Id: abraces.tex,v 1.0 2012/08/31 00:00:00 wgrundlingh stable $}
+\rcsid{$Id: abraces.tex,v 2.0 2021/03/31 00:00:00 wgrundlingh stable $}
%\setcounter{secnumdepth}{2}
%\setcounter{tocdepth}{4}
+% https://tex.stackexchange.com/a/472150/5764
+% Use cases for breaking a paragraph that is not visible to the end user, forcing the paragraph to be set with a full-width/-length
+% last line. Then one could insert a \pagebreak if needed, depending on the layout requirements
+\newcommand{\parnopar}[1][]{\parfillskip=0pt\par%
+ #1%
+ \parskip=0pt\noindent\parfillskip=0pt plus1fil}
+
\newsavebox{\codebox}% For storing code segments in footer.
\newcommand*{\abracesctan}{http://ctan.org/pkg/abraces}
@@ -23,9 +29,14 @@
color,
bracetext,
bracescript,
- foxanddog,
+ FnD,
newcolumntype,
- newbracespec}
+ newbracespec,
+ bracecolor,
+ color,
+ textcolor,
+ aftergroup,
+ text}
}
\titlepage{%
@@ -38,177 +49,281 @@
date={\rcstoday}}
\hypersetup{%
- pdftitle={The abraces Package},
+ pdftitle={The abraces package},
pdfsubject={Asymmetric or arbitrary braces},
- pdfauthor={Werner Grundlingh},
+ pdfauthor={Werner Grundlingh (latex.abraces@gmail.com)},
pdfkeywords={tex, latex, braces, overbrace, underbrace, math-mode}}
+\usepackage{parskip}
+
+\newlength{\bracecusplen}
+\settowidth{\bracecusplen}{$\braceru\bracelu$}
+
\begin{document}
\printtitlepage
%\tableofcontents
-\section{Introduction} \label{intro}
+\section{Introduction} \label{sec:introduction}
-The \sty{abraces}\footnote{The \sty{abraces} package: \url{http://ctan.org/pkg/abraces}} package provides a character key-driven interface to supplement new constructions of the traditional \lstinline!\overbrace! and \lstinline!\underbrace! pairs in an asymmetric or arbitrary way.
+The \href{http://ctan.org/pkg/abraces}{\sty{abraces} package} provides a character key-driven interface to supplement new constructions of the traditional \lstinline!\overbrace! and \lstinline!\underbrace! pairs in an asymmetric or arbitrary way.
-\section{User interface} \label{user-interface}
+\section{Basic user interface} \label{sec:user-interface}
-\sty{abraces} defines two counterparts to the existing braces:
+This package defines two counterparts to the existing braces:
\begin{ltxsyntax}
-\cmditem{aoverbrace}[spec]{stuff}
-
-\cmditem{aunderbrace}[spec]{stuff}
+\cmditem{aoverbrace}[brace spec]{stuff}[script spec]\lstinline!^{!\prm{upper script}\lstinline!}_{!\prm{lower script}\lstinline!}!
-These create an overbrace and underbrace where \prm{spec} defines a construction pattern based on the elements in Table~\ref{tab:abrace-spec}.
+\cmditem{aunderbrace}[brace spec]{stuff}[script spec]\lstinline!^{!\prm{upper script}\lstinline!}_{!\prm{lower script}\lstinline!}!
-The provided interface is based on a ratio-principle, allowing one to put a larger share of ``filler'' (the horizontal rule) at any location within the brace construction. The traditional \lstinline!\overbrace! and \lstinline!\underbrace! pairs have a \mbox{1:1} share between the left and right side (either side of the tip/cust of the brace). Using a \mbox{1:2} ratio would place the brace cusp one third (from the left) into the brace. Similary a \mbox{3:2} ratio would place the cusp 40\% (or two fifths) from the right edge of the brace.
+\end{ltxsyntax}
-Other, more complex construction -- by means of the optional \prm{spec} argument -- can also be made by mixing the elements presented in Table~\ref{tab:abrace-spec}.
+Note that both the \prm{brace spec} and \prm{script spec} arguments are optional, as well as the use of an \prm{upper script} and \prm{lower script}. As such, in its most basic form, \lstinline!\aoverbrace{!\prm{stuff}\lstinline!}! (and \lstinline!\aunderbrace{!\prm{stuff}\lstinline!}!) would be similar to the traditional \lstinline!\overbrace{!\prm{stuff}\lstinline!}! (and \lstinline!\underbrace{!\prm{stuff}\lstinline!}!). However, if you specify a \prm{brace spec} -- a construction pattern based on the elements in \hyperref[tab:abrace-spec]{Table~\ref*{tab:abrace-spec}} -- you could adjust the shape of the brace in an arbitrary way. These definitions are robust.
-\cmditem{newbracespec}{char}{spec}
+The \prm{brace spec} interface is based on a ratio-principle, allowing one to put a larger share of ``filler'' (the horizontal rule) at any location within the brace construction. The traditional \lstinline!\overbrace! and \lstinline!\underbrace! pairs have a \mbox{1:1} share between the left and right side (either side of the tip/cusp of the brace), thereby forcing the tip/cust to be placed directly in the center horizontally. With \lstinline!abraces!, using a \mbox{1:2} ratio would place the brace cusp one third (from the left) into the brace. Similary a \mbox{3:2} ratio would place the cusp 40\% (or two fifths) from the right edge of the brace. The same holds for elements specified within \prm{script spec}, except these are used to alter the location of the scrips. For more detail, see section \hyperref[sec:advanced-interface]{\ref*{sec:advanced-interface}~\nameref*{sec:advanced-interface}}.
-This allows the user to define a new brace specification \prm{char} the results in the (possibly complex) construction \prm{spec}. The usage is similar to that of a \lstinline!\newcolumntype! construction provided by the \sty{array}\footnote{The \sty{array} package: \url{http://ctan.org/pkg/array}} package.
+Other, more complex constructions are possible by mixing the elements presented in \hyperref[tab:abrace-spec]{Table~\ref*{tab:abrace-spec}}. See section \hyperref[sec:examples]{\ref*{sec:examples} \nameref*{sec:examples}} for a showcase of uses.
-\cmditem{bracescript}{spec}
+\begin{ltxsyntax}
-Since the brace cusps may not fall directly at the horizontal centre of the construction, \lstinline|\bracescript| is provided that takes a similar construction-style interface to that of \prm{spec} in \lstinline|\aoverbrace| and \lstinline|\aunderbrace|. This allows the user to position the scripted text at the location(s) best-suited for presentation.
+\cmditem{newbracespec}{char}{brace spec}
\end{ltxsyntax}
+This allows the user to define a new brace specification \prm{char} that results in the (possibly complex) construction \prm{brace spec}. Note that \prm{char} should be different from any already used (see \hyperref[tab:abrace-spec]{Table~\ref*{tab:abrace-spec}}). The usage is similar to that of a \lstinline!\newcolumntype! construction provided by the \href{http://ctan.org/pkg/array}{\sty{array} package}.
\begin{table}[t]
\centering
+ \makeatletter
\begin{tabular}{cl}
\toprule
- \prm{spec} character & Output \\
+ \prm{spec} character & Output \\
\midrule
- |l| & $\bracelu$ \\
- |L| & $\braceld$ \\
- |r| & $\braceru$ \\
- |R| & $\bracerd$ \\
- |U| & $\braceru\bracelu$ \\
- |D| & $\bracerd\braceld$ \\
- |0| & (single) Empty fill \\
- |1|, \ldots,\verb|9| & Copies of regular fill \rule[.4ex]{2em}{1.5pt} \\
- |@{|\prm{stuff}|}| & Places \prm{stuff} into brace \\
- |!{|\prm{len}|}| & Regular fill of length \prm{len} \\
+ |l| & $\bracelu$ (left upward brace) \\
+ |L| & $\braceld$ (left downward brace) \\
+ |r| & $\braceru$ (right upward brace) \\
+ |R| & $\bracerd$ (right downward brace)\\
+ |U| & $\braceru\bracelu$ (upward cusp) \\
+ |D| & $\bracerd\braceld$ (downward cusp) \\
+ |,[|\prm{len}|]| & % Similar to \downbracketend in abraces.sty
+ \sbox\z@{$\braceld$}\dimen@\ht\z@ \advance\dimen@.7\fontdimen5\textfont2\relax
+ \vrule \@width\ht\z@ \@height\ht\z@ \@depth\dimexpr\dimen@-\ht\z@\ (downward end with optional \prm{len}gth control) \\
+ |'[|\prm{len}|]| & % Similar to \upbracketend in abraces.sty
+ \sbox\z@{$\bracelu$}\dimen@\ht\z@ \advance\dimen@.7\fontdimen5\textfont2\relax
+ \vrule \@width\ht\z@ \@height\dimen@ \@depth\z@\ (upward end with optional \prm{len}gth control) \\
+ |0| & (single) Empty fill \\
+ |1|, \ldots, |9| & Copies of regular fill \rule[.4ex]{2em}{1.5pt} \\
+ |@{|\prm{stuff}|}| & Places \prm{stuff} into brace \\
+ |!{|\prm{len}|}| & Regular fill of length \prm{len} \\
|*{|\prm{num}|}{|\prm{stuff}|}| & Repeat \prm{stuff} a total of \prm{num} times \\
\bottomrule
\end{tabular}
- \caption{Character specifications \prm{spec} used to construct braces.}
+ \makeatother
+ \caption{Character specifications within \prm{brace spec} used to construct braces.}
\label{tab:abrace-spec}
\end{table}
-If the package is loaded with the \lstinline!overload! option
+By default, any scripts will be placed at the cusp (|D| when providing a \prm{lower script} via \lstinline|_| or |U| when providing an \prm{upper script} via \lstinline|^|) of the brace. If you use more than one cusp within your \prm{brace spec}, you can separate scripts using \lstinline!&! which will place them above/below subsequent brace cusps, similar to separating columns within a \lstinline!tabular!.
+\begin{ltxsyntax}
+
+\cmditem{bracecolor}{spec}
+
+\end{ltxsyntax}
+
+If you're interested in using any form of colour, \lstinline|\bracecolor| will allow you to change the brace colour via an \lstinline!@!-insertion (for example, \lstinline!@{\bracecolor{red}}! would yield a \textcolor{red}{red} brace from that point onward). Regular script colouring can still be achieved using \lstinline!\color! or \lstinline!\textcolor!. The motivation here is that elements within the \lstinline!@!-insertions are grouped; \lstinline!\bracecolor! uses \lstinline!\aftergroup! to re-insert the use of \lstinline!\color!.
+
+If the package is loaded with the \lstinline!overload! option
\begin{lstlisting}
\usepackage[overload]{abraces}
\end{lstlisting}
-
-\noindent the traditional \lstinline!\overbrace! and \lstinline!\underbrace! pairs are redefined to be equivalent to \lstinline!\aoverbrace! and \lstinline!\aunderbrace!, respectively, via a straight-forward \lstinline!\let!:
-
+the traditional \lstinline!\overbrace!/\lstinline!\underbrace! pairs are redefined to be equivalent to \lstinline!\aoverbrace! and \lstinline!\aunderbrace!, respectively, via a straight-forward \lstinline!\let!:
\begin{lstlisting}
\let\overbrace\aoverbrace
\let\underbrace\aunderbrace
\end{lstlisting}
-\section{Examples}
+\section{Advanced uses} \label{sec:advanced-interface}
+
+There are some cases where you don't want to place elements exactly at the tip(s) of the brace(s). Maybe it's because you don't have any tips on your braces, or need to write other information around the tips. To that end, the second optional \prm{script spec} argument is provided where you can specify a new sequence that may differ from the original brace specification. Without any tips, for example, one could write \lstinline!$\aoverbrace[L1R]{a + b + \cdots +!\parnopar\lstinline!z}[U]^{\text{26 terms}}$! to denote a grouping of elements:
+\[
+ \aoverbrace[L1R]{a + b + \cdots + z}[U]^{\text{26 terms}}
+\]
+More detailed examples are covered in section \hyperref[sec:examples]{\ref*{sec:examples}~\nameref*{sec:examples}}.
-Some examples of the types of braces that can be constructed using \sty{abraces}:
+\section{Examples} \label{sec:examples}
+Some basic examples of the types of braces that can be constructed using \sty{abraces}:
\begin{lstlisting}
-\newcommand{\foxanddog}{%
+\newcommand{\FnD}{%
\textrm{The quick brown fox jumped over the lazy dog}}
\end{lstlisting}
-\newcommand{\foxanddog}{%
+\newcommand{\FnD}{%
\textrm{The quick brown fox jumped over the lazy dog}}
\begin{itemize}
- \item \lstinline!\aoverbrace{\foxanddog}! (traditional \lstinline!\overbrace!): \\ $\aoverbrace{\foxanddog}$
- \item \lstinline!\aunderbrace{\foxanddog}! (traditional \lstinline!\underbrace!): \\ $\aunderbrace{\foxanddog}$
- \item \lstinline!\aoverbrace[L3U1R]{\foxanddog}!: \\ $\aoverbrace[L3U1R]{\foxanddog}$
- \item \lstinline!\aoverbrace[l1D1r]{\foxanddog}!: \\ $\aoverbrace[l1D1r]{\foxanddog}$
- \item \lstinline!\aunderbrace[l2D7r]{\foxanddog}!: \\ $\aunderbrace[l2D7r]{\foxanddog}$
- \item \lstinline!\aunderbrace[l1D2U2D1r]{\foxanddog}!: \\ $\aunderbrace[l1D2U2D1r]{\foxanddog}$
- \item \lstinline!\aoverbrace[L1R]{\foxanddog}!: \\ $\aoverbrace[L1R]{\foxanddog}$
- \item \lstinline!\aunderbrace[L1U3R]{\foxanddog}!: \\ $\aunderbrace[L1U3R]{\foxanddog}$
- \item \lstinline!\aunderbrace[l6R0l3D3r0L6r]{\foxanddog}!: \\ $\aunderbrace[l6R0l3D3r0L6r]{\foxanddog}$
- \item \lstinline!\aoverbrace[L5*{3}{01}05U50*{3}{10}5R]{\foxanddog}!: \\ $\aoverbrace[L5*{3}{01}05U50*{3}{10}5R]{\foxanddog}$
- \item \lstinline!\aunderbrace[l1@{\hspace{5em}}2D2@{\hspace{3em}}1r]{\foxanddog}!: \\ $\aunderbrace[l1@{\hspace{5em}}2D2@{\hspace{3em}}1r]{\foxanddog}$
- \item \lstinline~\aunderbrace[l1R@{\color{red!80!white}}L1r]{\foxanddog}~: \\ $\aunderbrace[l1R@{\color{red!80!white}}L1r]{\foxanddog}$
- \item \lstinline~\aoverbrace[L1D!{5em}R]{\foxanddog}~: \\ $\aoverbrace[L1D!{5em}R]{\foxanddog}$
+ \item \lstinline!\aoverbrace{\FnD}! (traditional \lstinline!\overbrace!): \\
+ $\aoverbrace{\FnD}$
+
+ \item \lstinline!\aunderbrace{\FnD}! (traditional \lstinline!\underbrace!): \\
+ $\aunderbrace{\FnD}$
+
+ \item \lstinline!\aoverbrace[L3U1R]{\FnD}!: \\
+ $\aoverbrace[L3U1R]{\FnD}$
+
+ \item \lstinline!\aoverbrace[*{6}{0}l1D1r*{5}{0}]{\FnD}!: \\
+ $\aoverbrace[*{6}{0}l1D1r*{5}{0}]{\FnD}$
+
+ \item \lstinline~\aunderbrace[l2D1r000@{\bracecolor{blue!70!black}}l1D2r]{\FnD}~: \\
+ $\aunderbrace[l2D1r000@{\bracecolor{blue!70!black}}l1D2r]{\FnD}$
+
+ \item \lstinline!\aunderbrace[l1D2U2D1r]{\FnD}!: \\
+ $\aunderbrace[l1D2U2D1r]{\FnD}$
+
+ \item \lstinline!\aoverbrace[L1R]{\FnD}!: \\
+ $\aoverbrace[L1R]{\FnD}$
+
+ \item \lstinline!\aunderbrace[L1U3R]{\FnD}!: \\
+ $\aunderbrace[L1U3R]{\FnD}$
+
+ \item \lstinline!\aunderbrace['6,0l3D3r0,6']{\FnD}!: \\
+ $\aunderbrace['6,0l3D3r0,6']{\FnD}$
+
+ \item \lstinline!\aoverbrace[L5*{3}{01}05U50*{3}{10}5R]{\FnD}!: \\
+ $\aoverbrace[L5*{3}{01}05U50*{3}{10}5R]{\FnD}$
+
+ \item \lstinline!\aunderbrace[l1@{\hspace{5em}}2D2@{~\ldots~}1r]{\FnD}!: \\
+ $\aunderbrace[l1@{\hspace{5em}}2D2@{~\ldots~}1r]{\FnD}$
+
+ \item \lstinline~\aunderbrace[l1R@{\bracecolor{red!80!white}}L1r]{\FnD}~: \\
+ $\aunderbrace[l1R@{\bracecolor{red!80!white}}L1r]{\FnD}$
+
+ \item \lstinline~\aoverbrace[,1D!{5em},]{\FnD}~: \\
+ $\aoverbrace[,1D!{5em},]{\FnD}$
\end{itemize}
-The next question might be how to add content to the brace cusps. Here's a possible way to insert text at the appropriate ratio, using the above construction techniques:
-
-\newcommand{\bracetext}[1]{%
- \makebox[0pt][c]{\scriptsize#1}}%
-\[
- \overbrace[L2U2D1U1R]{\foxanddog}^{%
- \bracescript{L2r@{\bracetext{left}}l2D1r@{\bracetext{right}}l1R}%
- }%
-\]
-
-\begin{lstlisting}
-\newcommand{\bracetext}[1]{%
- \makebox[0pt][c]{\scriptsize#1}}%
-\[
- \overbrace[L2U2D1U1R]{\foxanddog}^{%
- \bracescript{L2r@{\bracetext{left}}l2D1r@{\bracetext{right}}l1R}%
- }%
-\]
-\end{lstlisting}
+Some more advanced techniques of adding content to the brace cusps:
+\begin{itemize}
+ \item \lstinline!\aoverbrace[L1U2R]{\FnD}^{\text{one-third of the way}}!: \\
+ $\aoverbrace[L1U2R]{\FnD}^{\text{one-third of the way}}$
+
+ \item \lstinline!\aoverbrace[L1U1D1U1R]{\FnD}^{\text{left} & \text{right}}!: \\
+ $\aoverbrace[L1U1D1U1R]{\FnD}^{\text{left} & \text{right}}$
+
+ \item \lstinline!\aoverbrace[L1U1D1U1R]{\FnD}! \\
+ \quad\lstinline![L1U1U1U1R]^{\text{left} & \text{middle} & \text{right}}!: \\
+ $\aoverbrace[L1U1D1U1R]{\FnD}[L*{3}{1U}1R]^{\text{left} & \text{middle} & \text{right}}$
+
+ \item
+ \newcommand{\ind}[1][1]{\hspace*{\fpeval{#1*1.5}em}}%
+ \lstinline!\newbracespec{u}! \\
+ \ind\lstinline!{@{\hspace{-.5\bracecusplen}}U@{\hspace{-.5\bracecusplen}}}! \\
+ \lstinline!\newbracespec{d}! \\
+ \ind\lstinline!{@{\hspace{-.5\bracecusplen}}D@{\hspace{-.5\bracecusplen}}}! \\
+ \lstinline!$\aunderbrace! \\
+ \ind[1]\lstinline![00l2@{\hspace{-\bracecusplen}}1r]{% \aunderbrace brace script! \\
+ \ind[2]\lstinline!\aoverbrace! \\
+ \ind[3]\lstinline![L1@{\hspace{-\bracecusplen}}1R000]% \aoverbrace brace script! \\
+ \ind[3]\lstinline!{\FnD}% stuff! \\
+ \ind[3]\lstinline![1u13]% \aoverbrace script spec! \\
+ \ind[3]\lstinline!^{2/5}% \aoverbrace upper script! \\
+ \ind\lstinline!}! \\
+ \lstinline![43d3]% \aunderbrace script spec! \\
+ \lstinline!_{3/5}$% \aunderbrace lower script!: \\
+ \newbracespec{u}{@{\hspace{-.5\bracecusplen}}U@{\hspace{-.5\bracecusplen}}}%
+ \newbracespec{d}{@{\hspace{-.5\bracecusplen}}D@{\hspace{-.5\bracecusplen}}}%
+ $\aunderbrace
+ [00l2@{\hspace{-\bracecusplen}}1r]{% \aunderbrace brace script
+ \aoverbrace
+ [L1@{\hspace{-\bracecusplen}}1R000]% \aoverbrace brace script
+ {\FnD}% stuff
+ [1u13]% \aoverbrace script spec
+ ^{2/5}% \aoverbrace upper script
+ }
+ [43d3]% \aunderbrace script spec
+ _{3/5}$% \aunderbrace lower script
+
+ \item
+ \lstinline!\newbracespec{a}{@{\hspace{-.5\bracecusplen}}D}! \\
+ \quad\lstinline!\newbracespec{z}{D@{\hspace{-.5\bracecusplen}}}! \\
+ \quad\lstinline!\aunderbrace[l1r]{\FnD}! \\
+ \quad\quad\lstinline![a1z]_{\text{\rlap{far left}} & \text{\llap{far right}}}!: \\
+ \newbracespec{a}{@{\hspace{-.5\bracecusplen}}D}%
+ \newbracespec{z}{D@{\hspace{-.5\bracecusplen}}}%
+ $\aunderbrace[l1r]{\FnD}[a1z]_{\text{\rlap{far left}} & \text{\llap{far right}}}$
+\end{itemize}
\begin{lrbox}{\codebox}\footnotesize\lstinline!\overbrace!\end{lrbox}% Capture code in \codebox
-Another usage might include ``breaking'' a brace across lines to indicate a continuous grouping of objects. The following example\footnote{Taken from the question \href{http://tex.stackexchange.com/q/25510/5764}{\usebox{\codebox} split across multiple lines} on the TeX StackExchange network.} constructs two open-ended \lstinline!\aoverbrace!s which ``spans'' multiple lines:
+Here is a real-world example where ``breaking'' a brace across lines is required to indicate a continuous grouping of objects. This example\footnote{Taken from the question \href{http://tex.stackexchange.com/q/25510/5764}{\usebox{\codebox} split across multiple lines} on the TeX StackExchange network.} constructs two open-ended \lstinline!\aoverbrace!s that ``span'' multiple lines:
\begin{multline*}
- f(x)=a_0+a_1x+a_2x^2+
- \aoverbrace[L1U1]{a_3x^3+a_4x^4+\cdots+a_{i-1}x^{i-1}+\hspace{1em}}^
- {\bracescript{L1r@{\bracetext{some text}}l1}} \\[\jot]
- \aoverbrace[1R]{\hspace{1em}a_ix^i+a_{i+1}x^{i+1}}+\cdots+a_{n-1}x^{n-1}
+ f(x) = a_0 + a_1 x + a_2 x^2 +
+ \aoverbrace[L1U1@{~\ldots}]{a_3 x^3 + a_4 x^4 + \dots +
+ a_{i - 1} x^{i - 1} + \quad}^
+ {\text{some text}} \\[\jot]
+ \aoverbrace[@{\ldots~}1R]{\quad a_i x^i + a_{i + 1} x^{i + 1}} +
+ \dots + a_{n - 1} x^{n - 1}
\end{multline*}
\begin{lstlisting}
\usepackage{amsmath}% http://ctan.org/pkg/amsmath
%...
\begin{multline*}
- f(x)=a_0+a_1x+a_2x^2+
- \aoverbrace[L1U1]{a_3x^3+a_4x^4+\cdots+a_{i-1}x^{i-1}+\hspace{1em}}^
- {\bracescript{L1r@{\bracetext{some text}}l1}} \\[\jot]
- \aoverbrace[1R]{\hspace{1em}a_ix^i+a_{i+1}x^{i+1}}+
- \cdots+a_{n-1}x^{n-1}
+ f(x) = a_0 + a_1 x + a_2 x^2 +
+ \aoverbrace[L1U1@{~\ldots}]{a_3 x^3 + a_4 x^4 + \dots +
+ a_{i - 1} x^{i - 1} + \quad}^
+ {\text{some text}} \\[\jot]
+ \aoverbrace[@{\ldots~}1R]{\quad a_i x^i + a_{i + 1} x^{i + 1}} +
+ \dots + a_{n - 1} x^{n - 1}
\end{multline*}
\end{lstlisting}
As a final example, consider a brace that should include a dashed component. Using \lstinline|\newbracespec| one can define your own dashed component:
-
\begin{lstlisting}
\newbracespec{d}{%
5@{\hspace{4pt}}1@{\hspace{4pt}}!{2em}@{\hspace{4pt}}1@{\hspace{4pt}}5%
}
\end{lstlisting}
-
\noindent and then use
-
\begin{lstlisting}
\[
- \aunderbrace[l*{3}{d}D*{3}{d}r]{\foxanddog}_
- {\bracetext{What happened to the cat?}}
+ \aunderbrace[l*{3}{d}D*{3}{d}r]{\FnD}_{\text{What happened to the cat?}}
\]
\end{lstlisting}
+\[
+ \newbracespec{d}{1@{\hspace{4pt}}1@{\hspace{4pt}}!{1em}@{\hspace{4pt}}1@{\hspace{4pt}}1}
+ \aunderbrace[l*{3}{d}D*{3}{d}r]{\FnD}_{\text{What happened to the cat?}}
+\]
-\newbracespec{d}{1@{\hspace{4pt}}1@{\hspace{4pt}}!{1em}@{\hspace{4pt}}1@{\hspace{4pt}}1}
+\section{Terms of reference}
-\[ \aunderbrace[l*{3}{d}D*{3}{d}r]{\foxanddog}_{\bracetext{What happened to the cat?}} \]
+This package originated from a question on the TeX StackEchange network called \href{http://tex.stackexchange.com/q/68526/5764}{Asymmetric overbrace}. Some code was taken from the \href{http://ctan.org/pkg/mathtools}{\sty{mathtools} package}.
-\section{Terms of reference}
+This material is released under and subject to the \href{https://latex-project.org/lppl/}{LaTeX Project Public Licence}.
+
+\section{Acknowledgements}
+
+Thanks to Frank Mittlebach who stepped in and suggested an improvement in the original way \sty{abraces} functioned. Expansions included the use of \LaTeX3 command interface (via the \href{http://ctan.org/pkg/xparse}{\sty{xparse} package}).
-This package originated from a question on the TeX StackEchange network called \href{http://tex.stackexchange.com/q/68526/5764}{Asymmetric overbrace}. Some code was taken from the \sty{mathtools}\footnote{The \sty{mathtools} package: \url{http://ctan.org/pkg/mathtools}} package.
+\section{Change log}
-This material is released under and subject to the \href{http://www.ctan.org/tex-archive/help/Catalogue/licenses.lppl.html}{LaTeX Project Public Licence}.
+\begin{itemize}
+ \item v2.0 (2021-03-31) Major update
+
+ \begin{itemize}
+ \item
+ The package now uses \href{http://ctan.org/pkg/xparse}{\sty{xparse}} for macro definitions.
+
+ \item
+ Included an automated way for handling elementary/default scripts. The placement of scripts can still be modified using the \lstinline|\bracescript| interface.
+
+ \item
+ The documentation was also updated to reflect the changes.
+ \end{itemize}
+
+ \item v1.0 (2012-08-31) Initial release
+\end{itemize}
\end{document} \ No newline at end of file
diff --git a/macros/latex/contrib/abraces/abraces.sty b/macros/latex/contrib/abraces/abraces.sty
index 768afbb3cd..68dbc7e8eb 100644
--- a/macros/latex/contrib/abraces/abraces.sty
+++ b/macros/latex/contrib/abraces/abraces.sty
@@ -1,111 +1,351 @@
-\ProvidesPackage{abraces}% http://ctan.org/pkg/abraces
- [2012/08/24 v1.0 Arbitrary and asymmetric braces]
-\newif\if@overload
-\DeclareOption{overload}{\@overloadtrue}
-\ProcessOptions
-\newsavebox{\bracebox}% stores content contained under/over brace
-
-\newcommand{\newbracespec}[2]{% Add a new brace specification based on existing ones
- \@defbracecharcode{#1}{\@genbrace#2\@nnil\@genbrace}
-}
-% Brace components
-\newcommand{\bracescript}[1]{{% Add a script above/below an over-/underbrace
- \let\@@bfil\@@bunfil% Make line leaders into void/empty leaders
- \let\@use@rl@se\phantom% Phantomize some brace components
- \makebox[\wd\bracebox]{$\genbrace{#1}$}% Place the text in a box of width \bracebox
-}}
-\def\@@bunfil{\leaders\hbox{\ }\hfill}% Empty filler
-\newcommand{\bracefil}[1]{%
- \csname brace@char@#1'\endcsname%
-}
-\def\@@bfil{\leaders \vrule \@height \ht\z@ \@depth \z@ \hfill}% default brace filler
-%\def\bfil{\@@bfil}%
-%\def\@bLfil{\@@bfil}% left leader filler
-%\def\@bRfil{\@@bfil}% right leader filler
-\def\aupbracefill#1{$\m@th\setbox\z@\hbox{$\braceld$}\genbrace{#1}$}
-\def\adownbracefill#1{$\m@th\setbox\z@\hbox{$\braceld$}\genbrace{#1}$}
-
-% Repetition structure. Reference:
-% Repeat command n times?
-% http://tex.stackexchange.com/q/16189/5764
-% Alternatively
-% \RequirePackage{expl3}% http://ctan.org/pkg/expl3
-% \ExplSyntaxOn
-% \cs_new_eq:NN \Repeat \prg_replicate:nn
-% \ExplSyntaxOff
-
-\newcommand{\Repeat}[1]{%
- \expandafter\@Repeat\expandafter{\the\numexpr #1\relax}%
-}
-\def\@Repeat#1{%
- \ifnum#1>0
- \expandafter\@@Repeat\expandafter{\the\numexpr #1-1\expandafter\relax\expandafter}%
- \else
- \expandafter\@gobble
- \fi
-}
-\def\@@Repeat#1#2{%
- \@Repeat{#1}{#2}#2%
-}
-% Taken from mathtools package (http://ctan.org/pkg/mathtools)
-\newcommand{\aunderbrace}[2][l1D1r]{%
- \begin{lrbox}{\bracebox}$\displaystyle{#2}$\end{lrbox}%
- \mathop{\vtop{\m@th\ialign{##\crcr
- $\hfil\displaystyle{#2}\hfil$\crcr
- \noalign{\kern.7\fontdimen5\textfont2\nointerlineskip}%
- \aupbracefill{#1}\crcr\noalign{\kern.5\fontdimen5\textfont2}}}}\limits}
-\newcommand{\aoverbrace}[2][L1U1R]{%
- \begin{lrbox}{\bracebox}$\displaystyle{#2}$\end{lrbox}%
- \mathop{\vbox{\m@th\ialign{##\crcr
- \noalign{\kern.5\fontdimen5\textfont2}%
- \adownbracefill{#1}\crcr
- \noalign{\kern.7\fontdimen5\textfont2\nointerlineskip}%
- $\hfil\displaystyle{#2}\hfil$\crcr}}}\limits}
-
-% Parsing structure. Reference:
-% Parsing a macro argument character-by-character for conditional execution
-% http://tex.stackexchange.com/q/33197/5764
-
-\let\@use@rl@se\relax
-\def\@defbracecharcode#1{% Macro to define brace character "codes"
- \@namedef{brace@char@#1}%
-}
-\@defbracecharcode{L}{\@use@rl@se\braceld\@genbrace}% Left down
-\@defbracecharcode{R}{\@use@rl@se\bracerd\@genbrace}% Right down
-\@defbracecharcode{l}{\@use@rl@se\bracelu\@genbrace}% Left up
-\@defbracecharcode{r}{\@use@rl@se\braceru\@genbrace}% Right up
-\@defbracecharcode{U}{\@use@rl@se\braceru\@use@rl@se\bracelu\@genbrace}% Tip up
-\@defbracecharcode{D}{\@use@rl@se\bracerd\@use@rl@se\braceld\@genbrace}% Tip down
-\@defbracecharcode{0}{\@@bunfil\@genbrace}% Do nothing
-\@defbracecharcode{1}{\@@bfil\@genbrace}% 1 filler
-\@defbracecharcode{2}{\@@bfil\@@bfil\@genbrace}% 2 fillers
-\@defbracecharcode{3}{\@@bfil\@@bfil\@@bfil\@genbrace}% 3 fillers
-\@defbracecharcode{4}{\@@bfil\@@bfil\@@bfil\@@bfil\@genbrace}% 4 fillers
-\@defbracecharcode{5}{\@@bfil\@@bfil\@@bfil\@@bfil\@@bfil\@genbrace}% 5 fillers
-\@defbracecharcode{6}{\@@bfil\@@bfil\@@bfil\@@bfil\@@bfil\@@bfil\@genbrace}% 6 fillers
-\@defbracecharcode{7}{\@@bfil\@@bfil\@@bfil\@@bfil\@@bfil\@@bfil\@@bfil\@genbrace}% 7 fillers
-\@defbracecharcode{8}{\@@bfil\@@bfil\@@bfil\@@bfil\@@bfil\@@bfil\@@bfil\@@bfil\@genbrace}% 8 fillers
-\@defbracecharcode{9}{\@@bfil\@@bfil\@@bfil\@@bfil\@@bfil\@@bfil\@@bfil\@@bfil\@@bfil\@genbrace}% 9 fillers
-\@defbracecharcode{@}{\@firstofone@go}% Insert arbitrary stuff
-\@defbracecharcode{!}{\@firstofone@len}% Insert a leader of specific length
-\@defbracecharcode{*}{\@repeat@num@times}% Repeat stuff a number of times
-
-\newcommand{\@firstofone@go}[1]{#1\@genbrace}%
-\newcommand{\@firstofone@len}[1]{\hb@xt@#1{\@@bfil}\@genbrace}%
-\newcommand{\@repeat@num@times}[2]{\Repeat{#1}{\@genbrace#2\@nnil}\@genbrace}%
-
-\newcommand{\@genbrace}[1]{%
- \ifx\@nnil#1\relax\else
- \@nameuse{brace@char@#1\expandafter}%
- \fi%
-}
-\newcommand{\genbrace}[1]{%
- \@genbrace#1\@nnil%
-}
-
-% If package was loaded with \usepackage[overload]{abraces}
-\if@overload
- \let\overbrace\aoverbrace
- \let\underbrace\aunderbrace
-\fi
+%% abraces.sty
+%% Copyright 2021 Werner Grundlingh
+%
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of LaTeX
+% version 2005/12/01 or later.
+%
+% This work has the LPPL maintenance status `maintained'.
+%
+% The Current Maintainer of this work is Werner Grundlingh.
+%
+% This work consists of the file abraces.sty.
+
+\ProvidesPackage{abraces}% http://ctan.org/pkg/abraces
+ [2021/03/31 v2.0 Arbitrary and asymmetric braces]
+
+\RequirePackage{xparse}
+
+\newif\if@overload
+\DeclareOption{overload}{\@overloadtrue}
+\ProcessOptions
+\newsavebox{\bracebox}% stores content contained under/over brace
+
+\newcommand{\newbracespec}[2]{% Add a new brace specification based on existing ones
+ \@defbracecharcode{#1}{\@genbrace#2\@nnil\@genbrace}
+}
+% Brace components
+\newcommand{\bracescript}[1]{{% Add a script above/below an over-/underbrace
+ \let\@@bfil\@@bunfil% Make line leaders into void/empty leaders
+ \let\@use@rl@se\phantom% Phantomize some brace components
+ \makebox[\wd\bracebox]{$\genbrace{#1}$}% Place the text in a box of width \bracebox
+}}
+\def\@@bunfil{\leaders\hbox{\ }\hfill}% Empty filler
+\newcommand{\bracefil}[1]{%
+ \csname brace@char@#1'\endcsname%
+}
+\def\@@bfil{\leaders \vrule \@height \ht\z@ \@depth \z@ \hfill}% default brace filler
+%\def\bfil{\@@bfil}%
+%\def\@bLfil{\@@bfil}% left leader filler
+%\def\@bRfil{\@@bfil}% right leader filler
+\def\aupbracefill#1{$\m@th\setbox\z@\hbox{$\braceld$}\genbrace{#1}$}
+\def\adownbracefill#1{$\m@th\setbox\z@\hbox{$\braceld$}\genbrace{#1}$}
+
+\DeclareDocumentCommand{\downbracketend}{ O{.7\fontdimen5\textfont2} }{%
+ \@use@rl@se
+ {\sbox\z@{$\braceld$}%
+ \dimen@\ht\z@ \advance\dimen@#1\relax
+ \vrule \@width\ht\z@ \@height\ht\z@ \@depth\dimexpr\dimen@-\ht\z@}%
+ \@genbrace}
+
+\DeclareDocumentCommand{\upbracketend}{ O{.7\fontdimen5\textfont2} }{%
+ \@use@rl@se
+ {\sbox\z@{$\bracelu$}%
+ \dimen@\ht\z@ \advance\dimen@#1\relax
+ \vrule \@width\ht\z@ \@height\dimen@ \@depth\z@}%
+ \@genbrace}
+
+% Repetition structure. Reference:
+% Repeat command n times?
+% http://tex.stackexchange.com/q/16189/5764
+\ExplSyntaxOn
+\cs_new_eq:NN \Repeat \prg_replicate:nn
+%FMi
+\cs_new_eq:NN \TrimArgSpaces \tl_trim_spaces:n % only needed when ^{...} should be text
+%FMi
+\ExplSyntaxOff
+
+% Taken from mathtools package (http://ctan.org/pkg/mathtools)
+\DeclareDocumentCommand{\aunderbrace}{ O{l1D1r} m o e{^_}}{%
+ \begin{lrbox}{\bracebox}$\displaystyle{#2}$\end{lrbox}%
+ \mathop{\vtop{\m@th\ialign{##\crcr
+ $\hfil\displaystyle{#2}\hfil$\crcr
+ \noalign{\kern.7\fontdimen5\textfont2\nointerlineskip}%
+ \aupbracefill{#1}\crcr\noalign{\kern.5\fontdimen5\textfont2}}}}\limits
+ % ...there was a ^:
+ \IfValueT{#4}{%
+ ^{%
+%FMi
+ \gdef\@abrace@text@arg{#4}% % save argument then split of portions later
+%FMi
+ \@defbracecharcode{A}{%
+ \@use@rl@se\braceru
+ \makebox[0pt][c]{\scriptsize
+%FMi % split off next part
+ \expandafter\@abrace@next@text\@abrace@text@arg&\@abrace@next@text}%
+%FMi
+ \@use@rl@se\bracelu\@genbrace
+ }%
+ % We interpret U as A
+ \let\brace@char@U\brace@char@A
+%FMi
+ \let\@abrace@stuff\phantom % render @{...} harmless
+%FMi
+ % Use the normal spec by default
+ \IfValueTF{#3}
+ {\bracescript{#3}}% Use newly-specified spec
+ {\bracescript{#1}}% Use default spec
+%FMi
+ \@abrace@is@arg@fully@used{^}{U}%
+%FMi
+ }%
+ }%
+ % ...there was a _:
+ \IfValueT{#5}{%
+ _{%
+%FMi
+ \gdef\@abrace@text@arg{#5}%
+%FMi
+ \@defbracecharcode{A}{%
+ \@use@rl@se\bracerd
+ \makebox[0pt][c]{%
+ \scriptsize % not needed if processed in math
+%FMi
+ \expandafter\@abrace@next@text\@abrace@text@arg&\@abrace@next@text}%
+%FMi
+ \@use@rl@se\braceld\@genbrace
+ }%
+ % We interpret D as A
+ \let\brace@char@D\brace@char@A
+%FMi
+ \let\@abrace@stuff\phantom % render @{...} harmless
+%FMi
+ % Use the normal spec by default
+ \IfValueTF{#3}
+ {\bracescript{#3}}% Use the newly-specified spec
+ {\bracescript{#1}}% Use the default spec
+%FMi
+ \@abrace@is@arg@fully@used{_}{D}%
+%FMi
+ }%
+ }%
+%FMi
+% If there is a second optional argument (#3) but there is neither
+% a ^{..} nor a _{..} then interpret the bracket group was not an optional argument
+% but actually belongs to the current formula, so return it.
+% Order of the test is #3 #5 #4 because an overbrace is more likely to have ^{..}.
+% For underbrace it is #3 #4 #5.
+ \IfValueT{#3}{\IfValueF{#5}{\IfValueF{#4}{[#3]}}}%
+%FMi
+}
+
+%\RequirePackage{unravel}
+
+%FMi
+\def\@abrace@next@text#1&#2\@abrace@next@text{%
+ \gdef\@abrace@text@arg{#2}%
+ % \TrimArgSpaces{#1}% % text solution
+ $\scriptstyle #1$% % use math mode instead? I think so
+}
+%FMi
+
+
+
+%FMi
+% check if current value of \@abrace@text@arg contains parts that haven't been used.
+%
+% Possible cases: (a) empty (b) one or more & symbols (c) some & symbol(s) and other stuff
+%
+% (c) is the case we need to generate an error for.
+
+
+\def\@abrace@is@arg@fully@used#1#2{%
+ \edef\abrace@tempa{\detokenize{#1}}% _ or ^
+ \def\abrace@tempb{#2}% % D or U
+ \let\abrace@next\@abrace@is@arg@fully@used@
+ \expandafter\@abrace@is@arg@fully@used@ \@abrace@text@arg \@nil &%
+}
+
+% As we know that here is at least \verb=\@nil &= in the stream ahead
+% we can grep one argument delimited by \verb=&= and then check if it
+% is empty (case (a) or (b)), if it is \verb=\@nil= (we are done) or
+% if it is anything else (case (c)).
+
+
+\def\@abrace@is@arg@fully@used@ #1&{%
+ \def\@abrace@text@arg{#1}%
+ \ifx\@abrace@text@arg\@empty % ok case
+ \else
+ \ifx\@abrace@text@arg\@nnil % we are done
+ \let\abrace@next\relax
+ \else
+ \PackageError{abraces}{Unused part in \abrace@tempa{...}:\MessageBreak
+ '\detokenize{#1}' dropped}%
+ {There have been more \string& symbols than
+ \abrace@tempb\space or A elements in the pattern.
+ Check your source!}%
+ \fi
+ \fi
+ \abrace@next
+}
+%FMi
+
+
+
+\DeclareDocumentCommand{\aoverbrace}{ O{L1U1R} m o e{^_}}{%
+%
+% \typeout{Arguments: \detokenize{1=#1|2=#2|3=#3|4=#4|5=#5|}}%
+%
+ \begin{lrbox}{\bracebox}$\displaystyle{#2}$\end{lrbox}%
+ \mathop{\vbox{\m@th\ialign{##\crcr
+ \noalign{\kern.5\fontdimen5\textfont2}%
+ \adownbracefill{#1}\crcr
+ \noalign{\kern.7\fontdimen5\textfont2\nointerlineskip}%
+ $\hfil\displaystyle{#2}\hfil$\crcr}}}\limits
+ % ...there was a ^:
+ \IfValueT{#4}{%
+ ^{%
+ % Define a text point instead of a tip
+%FMi
+ \gdef\@abrace@text@arg{#4}% % save argument then split of portions later
+%FMi
+ \@defbracecharcode{A}{%
+ \@use@rl@se\braceru
+ \makebox[0pt][c]{\scriptsize
+%FMi % split off next part
+ \expandafter\@abrace@next@text\@abrace@text@arg&\@abrace@next@text}%
+%FMi
+ \@use@rl@se\bracelu\@genbrace
+ }%
+ % We interpret U as A
+ \let\brace@char@U\brace@char@A
+ % Use the normal spec by default
+%FMi
+ \let\@abrace@stuff\phantom % render @{...} harmless
+%FMi
+ \IfValueTF{#3}
+ {\bracescript{#3}}% Use newly-specified spec
+ {\bracescript{#1}}% Use default spec
+%FMi
+ \@abrace@is@arg@fully@used{^}{U}%
+%FMi
+ }%
+ }%
+ % ...there was a _:
+ \IfValueT{#5}{%
+ _{%
+ % Define a text point instead of a tip
+%FMi
+ \gdef\@abrace@text@arg{#5}%
+%FMi
+ \@defbracecharcode{A}{%
+ \@use@rl@se\bracerd
+ \makebox[0pt][c]{%
+ \scriptsize % not needed if processed in math
+ %FMi
+ \expandafter\@abrace@next@text\@abrace@text@arg&\@abrace@next@text
+ }%
+%FMi
+ \@use@rl@se\braceld\@genbrace
+ }%
+ % We interpret D as A
+ \let\brace@char@D\brace@char@A
+%FMi
+ \let\@abrace@stuff\phantom % render @{...} harmless
+%FMi
+ % Use the normal spec by default
+ \IfValueTF{#3}
+ {\bracescript{#3}}% Use the newly-specified spec
+ {\bracescript{#1}}% Use the default spec
+%FMi
+ \@abrace@is@arg@fully@used{_}{D}%
+%FMi
+ }%
+ }%
+%FMi
+ \IfValueT{#3}{\IfValueF{#4}{\IfValueF{#5}{[#3]}}}%
+%FMi
+}
+
+% Parsing structure. Reference:
+% Parsing a macro argument character-by-character for conditional execution
+% http://tex.stackexchange.com/q/33197/5764
+
+\let\@use@rl@se\relax
+\def\@defbracecharcode#1{% Macro to define brace character "codes"
+ \@namedef{brace@char@#1}%
+}
+\@defbracecharcode{L}{\@use@rl@se\braceld\@genbrace}% Left down
+\@defbracecharcode{R}{\@use@rl@se\bracerd\@genbrace}% Right down
+\@defbracecharcode{l}{\@use@rl@se\bracelu\@genbrace}% Left up
+\@defbracecharcode{r}{\@use@rl@se\braceru\@genbrace}% Right up
+\@defbracecharcode{U}{\@use@rl@se\braceru\@use@rl@se\bracelu\@genbrace}% Tip up
+\@defbracecharcode{D}{\@use@rl@se\bracerd\@use@rl@se\braceld\@genbrace}% Tip down
+\@defbracecharcode{0}{\@@bunfil\@genbrace}% Do nothing
+\@defbracecharcode{1}{\@@bfil\@genbrace}% 1 filler
+\@defbracecharcode{2}{\@@bfil\@@bfil\@genbrace}% 2 fillers
+\@defbracecharcode{3}{\@@bfil\@@bfil\@@bfil\@genbrace}% 3 fillers
+\@defbracecharcode{4}{\@@bfil\@@bfil\@@bfil\@@bfil\@genbrace}% 4 fillers
+\@defbracecharcode{5}{\@@bfil\@@bfil\@@bfil\@@bfil\@@bfil\@genbrace}% 5 fillers
+\@defbracecharcode{6}{\@@bfil\@@bfil\@@bfil\@@bfil\@@bfil\@@bfil\@genbrace}% 6 fillers
+\@defbracecharcode{7}{\@@bfil\@@bfil\@@bfil\@@bfil\@@bfil\@@bfil\@@bfil\@genbrace}% 7 fillers
+\@defbracecharcode{8}{\@@bfil\@@bfil\@@bfil\@@bfil\@@bfil\@@bfil\@@bfil\@@bfil\@genbrace}% 8 fillers
+\@defbracecharcode{9}{\@@bfil\@@bfil\@@bfil\@@bfil\@@bfil\@@bfil\@@bfil\@@bfil\@@bfil\@genbrace}% 9 fillers
+\@defbracecharcode{@}{\@firstofone@go}% Insert arbitrary stuff
+\@defbracecharcode{!}{\@firstofone@len}% Insert a leader of specific length
+\@defbracecharcode{*}{\@repeat@num@times}% Repeat stuff a number of times
+\@defbracecharcode{,}{\downbracketend}% Downward bracket end
+\@defbracecharcode{'}{\upbracketend}% Upward bracket end
+
+
+%FMi
+%like U or D (same width) but a straight line marking a possible anchor point for annotation material
+% can be used in patterns, e.g., $\aunderbrace[3A1]{a+b+c+d}_{x}$ makes a an underline rule with
+% the "x" being placed off center
+
+\@defbracecharcode{A}{%
+ \setbox\z@\hbox{$\m@th\braceru\bracelu$}%
+ \hb@xt@\wd\z@{\@@bfil}%
+ \@genbrace}%
+
+%FMi
+
+
+\newcommand{\bracecolor}[1]{\xdef\bracecolor@{\noexpand\color{#1}}\aftergroup\bracecolor@}
+%FMi
+\let\bracecolor\color % no longer needed
+%\newcommand{\@firstofone@go}[1]{\mathord{#1}\@genbrace}%
+\let\@abrace@stuff\@firstofone
+\newcommand{\@firstofone@go}[1]{\mathord{}\@abrace@stuff{#1}\mathord{}\@genbrace}%
+%FMi
+%\newcommand{\@firstofone@go}[1]{#1\@genbrace}%
+\newcommand{\@firstofone@len}[1]{\hb@xt@#1{\@@bfil}\@genbrace}%
+\newcommand{\@repeat@num@times}[2]{\Repeat{#1}{\@genbrace#2\@nnil}\@genbrace}%
+
+\newcommand{\@genbrace}[1]{%
+ \ifx\@nnil#1\relax\else
+%FMi
+ \expandafter\ifx\csname brace@char@#1\endcsname\relax
+ \PackageError{abraces}{Brace pattern '#1' unknown}%
+ {I'll use '0' instead.}%
+ \csname brace@char@0\expandafter\expandafter\expandafter\endcsname
+ \else
+ \csname brace@char@#1\expandafter\expandafter\expandafter\endcsname
+ \fi
+%FMi
+ \fi
+}
+\newcommand{\genbrace}[1]{%
+ \@genbrace#1\@nnil%
+}
+
+% If package was loaded with \usepackage[overload]{abraces}
+\if@overload
+ \let\overbrace\aoverbrace
+ \let\underbrace\aunderbrace
+\fi
\endinput \ No newline at end of file
diff --git a/macros/latex/contrib/easybook/doc/easybook-demo.pdf b/macros/latex/contrib/easybook/doc/easybook-demo.pdf
index fce95a29ed..7aa01420f7 100644
--- a/macros/latex/contrib/easybook/doc/easybook-demo.pdf
+++ b/macros/latex/contrib/easybook/doc/easybook-demo.pdf
Binary files differ
diff --git a/macros/latex/contrib/easybook/doc/easybook-demo.tex b/macros/latex/contrib/easybook/doc/easybook-demo.tex
index 06dca1fb6f..cb06db92dc 100644
--- a/macros/latex/contrib/easybook/doc/easybook-demo.tex
+++ b/macros/latex/contrib/easybook/doc/easybook-demo.tex
@@ -99,7 +99,7 @@
\url{https://latexstudio.net} \\
\url{https://gitee.com/texl3/easybook}\thanks{Gitee为项目的主要发布地址。}
}
-\date{2021/04/03\hskip\ccwd\relax v1.24c}
+\date{2021/04/04\hskip\ccwd\relax v1.24d}
\frontmatter[roman]
\maketitle
diff --git a/macros/latex/contrib/easybook/doc/easybook.pdf b/macros/latex/contrib/easybook/doc/easybook.pdf
index 4a11b5636d..d14bb989a7 100644
--- a/macros/latex/contrib/easybook/doc/easybook.pdf
+++ b/macros/latex/contrib/easybook/doc/easybook.pdf
Binary files differ
diff --git a/macros/latex/contrib/easybook/easybook.dtx b/macros/latex/contrib/easybook/easybook.dtx
index cd6abe176e..338c72d9b4 100644
--- a/macros/latex/contrib/easybook/easybook.dtx
+++ b/macros/latex/contrib/easybook/easybook.dtx
@@ -55,7 +55,7 @@ The latest version of this license is in
%
% \title{\sffamily easybook书籍文档类}
% \author{瞿毅}
-% \date{2021/04/03\hskip\ccwd\relax v1.24c\thanks{\url{https://gitee.com/texl3/easybook}}}
+% \date{2021/04/04\hskip\ccwd\relax v1.24d\thanks{\url{https://gitee.com/texl3/easybook}}}
% \maketitle
% \begin{abstract}
% \cls{easybook} 是基于 \cls{ctexbook} 书籍文档类创建以极简为风格的模板,可以看作对 \cls{ctexbook} 的进一步包装。虽然\CTeX 文档类提供了较好的中文支持,但想实现个性化功能一般需要在其基础上载入更多宏包来定制。\cls{easybook} 考虑了一些细节并载入一些常用宏包实现一般的排版需求,它适用于排版中英文书籍或笔记,甚至可稍加调整成为学位论文模板。
@@ -151,7 +151,7 @@ The latest version of this license is in
%
% \subsection{文档命令}
% \label{subsec:document command}
-% \begin{function}[added = 2021-02-20,updated = 2021-03-15]{\frontmatter,\mainmatter,\backmatter,\tableofcontents,\listoffigures,\listoftables,\listoflistings}
+% \begin{function}[added = 2021-02-20,updated = 2021-04-04]{\frontmatter,\mainmatter,\backmatter,\tableofcontents,\listoffigures,\listoftables,\listoflistings}
% \begin{syntax}
% \tn{frontmatter*}\oarg{编号格式|(Roman)}
% \tn{mainmatter*}
@@ -161,16 +161,18 @@ The latest version of this license is in
% \tn{listoftables*}\oarg{键值列表}
% \tn{listoflistings*}\oarg{键值列表}
% \end{syntax}
-% \tn{frontmatter} 为前言区命令,章标题不编号,页码可设置为例如 \opt{roman}、\opt{Alph} 等格式,带有星号的命令 \tn{frontmatter*} 不使用 \tn{cleardoublepage}。\tn{mainmatter} 为主文区命令,章标题正常编号且页码为从1开始计数的阿拉伯数字,\tn{mainmatter*} 命令不使用 \tn{cleardoublepage}。\tn{backmatter} 为后记区命令,页码格式与编号保持不变,章标题不编号。\tn{listoffigures} 命令输出图片目录,\tn{listoftables} 命令输出表格目录,\tn{listoflistings} 命令输出代码目录。带有星号的目录命令不会添加进主文档目录中,目录的键值列表选项如下
+% \tn{frontmatter} 为前言区命令,章标题不编号,页码可设置为例如 \opt{roman}、\opt{Alph} 等格式,带有星号的命令 \tn{frontmatter*} 不使用 \tn{cleardoublepage}。\tn{mainmatter} 为主文区命令,章标题正常编号且页码为从1开始计数的阿拉伯数字,\tn{mainmatter*} 命令不使用 \tn{cleardoublepage}。\tn{backmatter} 为后记区命令,页码格式与编号保持不变,章标题不编号。\tn{listoffigures} 命令输出图片目录,\tn{listoftables} 输出表格目录,\tn{listoflistings} 输出代码目录。带有星号的目录命令不会添加进主文档目录中,目录的键值列表选项如下
% \changes{v1.23}{2021/02/20}{重新定义文档结构划分命令。}
% \end{function}
%
-% \begin{function}{multoc,book,article}
+% \begin{function}{multoc,title,book,article}
% \begin{syntax}
% multoc = <true|(false)>
+% title = <目录标题名称>
% \end{syntax}
-% \opt{multoc} 与 \opt{style/multoc} 选项具有相同的效果,但是具有优先性且可单独设置不同目录是否双栏排版。\opt{book} 选项使目录标题按照 \opt{chapter} 级别输出,\opt{article} 选项使目录标题按照 \opt{article} 级别输出,默认为 \opt{chapter} 级别。
+% \opt{multoc} 与 \opt{style/multoc} 选项具有相同的效果,但是具有优先性且可单独设置不同目录是否双栏排版。已经预置了中英文的目录标题,可以使用 \opt{title} 选项更改目录标题的名称。\opt{book} 选项使目录标题按照 \opt{chapter} 级别输出,\opt{article} 选项使目录标题按照 \opt{article} 级别输出,默认为 \opt{chapter} 级别。
% \changes{v1.23}{2021/03/15}{为几个目录增加键值列表的选项,可设置标题输出级别以及是否加入主目录。}
+% \changes{v1.24d}{2021/04/04}{目录命令的可选参数增加标题键值。}
% \end{function}
%
% \section{接口选项}
@@ -788,7 +790,7 @@ The latest version of this license is in
%<*class>
\NeedsTeXFormat{LaTeX2e}[2020/10/01]
\RequirePackage{l3keys2e}
-\ProvidesExplClass{easybook}{2021/04/03}{1.24c}{beta}
+\ProvidesExplClass{easybook}{2021/04/04}{1.24d}{beta}
\cs_generate_variant:Nn \keys_define:nn {nx}
\cs_generate_variant:Nn \int_to_arabic:n {v}
@@ -819,20 +821,17 @@ The latest version of this license is in
english .code:n = \bool_set_false:N \l__lang_chinese_bool,
enstyle .meta:n = {newline,entitle,english},
- font .choice:,
- font .value_required:n = true,
- font/overleaf .code:n = {},
- font/adobe .code:n = \__put_ctexbook:n {fontset = #1},
- font/founder .code:n = \__put_ctexbook:n {fontset = #1},
- font/mac .code:n = \__put_ctexbook:n {fontset = #1},
- font/windows .code:n = \__put_ctexbook:n {fontset = #1},
- font/linux .code:n = \__put_ctexbook:n {fontset = ubuntu},
- font/none .code:n = \__put_ctexbook:n {fontset = #1},
+ font .choices:nn =
+ {adobe,founder,mac,windows,none}
+ {\__put_ctexbook:n {fontset = \l_keys_choice_tl}},
font/noto .code:n =
{
\bool_set_true:N \l__font_noto_bool
\__put_ctexbook:n {fontset = none}
},
+ font/overleaf .code:n = {},
+ font/linux .code:n = \__put_ctexbook:n {fontset = ubuntu},
+ font .value_required:n = true,
font .initial:n = overleaf,
paper .choice:,
@@ -906,39 +905,36 @@ The latest version of this license is in
}
\__ctex_define:nn {style}
{
- multoc .bool_set:N = \l__multoc_bool,
- multoc .default:n = true,
- withpart .bool_set:N = \l__chap_withpart_bool,
- withpart .default:n = true,
- withpart .initial:n = false,
- notomath .bool_set:N = \l__notomath_bool,
- notomath .default:n = true,
- notomath .initial:n = false,
- rulewidth .dim_set:N = \l__rule_width_dim,
- rulewidth .initial:n = 0.75pt,
- uppercase .bool_set:N = \l__uppercase_bool,
- uppercase .default:n = true,
- uppercase .initial:n = true,
+ multoc .bool_set:N = \l__multoc_bool,
+ multoc .default:n = true,
+ withpart .bool_set:N = \l__chap_withpart_bool,
+ withpart .default:n = true,
+ withpart .initial:n = false,
+ notomath .bool_set:N = \l__notomath_bool,
+ notomath .default:n = true,
+ notomath .initial:n = false,
+ rulewidth .dim_set:N = \l__rule_width_dim,
+ rulewidth .initial:n = 0.75pt,
+ uppercase .bool_set:N = \l__uppercase_bool,
+ uppercase .default:n = true,
+ uppercase .initial:n = true,
- footwith .choice:,
- footwith .value_required:n = true,
- footwith/part .code:n =
- {\tl_set:Nn \l__foot_numberwith_tl{#1}},
- footwith/page .code:n =
- {\tl_set:Nn \l__foot_numberwith_tl{#1}},
- footwith/chapter .code:n = {},
- footwith .initial:n = chapter,
+ footwith .choices:nn =
+ {part,page,chapter}
+ {\tl_set_eq:NN \l__foot_numberwith_tl\l_keys_choice_tl},
+ footwith .value_required:n = true,
+ footwith .initial:n = chapter,
- figure-sep .tl_set:N = \l__figure_separator_tl,
- table-sep .tl_set:N = \l__table_separator_tl,
- listing-sep .tl_set:N = \l__lstlisting_separator_tl,
- equation-sep .tl_set:N = \l__equation_separator_tl,
- number-sep .meta:n =
+ figure-sep .tl_set:N = \l__figure_separator_tl,
+ table-sep .tl_set:N = \l__table_separator_tl,
+ listing-sep .tl_set:N = \l__lstlisting_separator_tl,
+ equation-sep .tl_set:N = \l__equation_separator_tl,
+ number-sep .meta:n =
{
figure-sep = {#1},table-sep = {#1},
listing-sep = {#1},equation-sep = {#1}
},
- number-sep .initial:n = {.}
+ number-sep .initial:n = {.}
}
\RequirePackage
@@ -1362,7 +1358,8 @@ The latest version of this license is in
book .code:n = {},
multoc .bool_set:N = \l__multoc_bool,
multoc .default:n = true,
- multoc .initial:n = false
+ multoc .initial:n = false,
+ title .tl_set:N = \toc@title
}
\cs_new_protected:Npn \__title_mark_intoc:n #1
@@ -1408,12 +1405,19 @@ The latest version of this license is in
\fi
}{\tl_set:Nn \l__toc_type_tl{article}}
}
+\cs_new_protected:Npn \__title_ifintoc_set:n #1
+ {
+ \IfBooleanTF{#1}
+ {\__title_mark:n {\toc@title}}
+ {\__title_mark_intoc:n {\toc@title}}
+ }
\RenewDocumentCommand{\tableofcontents}{o}
{
\group_begin:
+ \tl_set_eq:NN \toc@title\contentsname
\IfValueT{#1}{\keys_set:nn {listoc}{#1}}
\__ifmultoc_pre_set:
- \__title_mark:n {\contentsname}
+ \__title_mark:n {\toc@title}
\vspace*{\dim_use:N \l__toc_offset_dim}
\@starttoc{toc}
\__ifmultoc_post_set:
@@ -1422,11 +1426,10 @@ The latest version of this license is in
\RenewDocumentCommand{\listoffigures}{so}
{
\group_begin:
+ \tl_set_eq:NN \toc@title\listfigurename
\IfValueT{#2}{\keys_set:nn {listoc}{#2}}
\__ifmultoc_pre_set:
- \IfBooleanTF{#1}
- {\__title_mark:n {\listfigurename}}
- {\__title_mark_intoc:n {\listfigurename}}
+ \__title_ifintoc_set:n {#1}
\dim_add:NV \l__toc_offset_dim\l__toc_listsoffset_dim
\vspace*{\dim_use:N \l__toc_offset_dim}
\@starttoc{lof}
@@ -1436,11 +1439,10 @@ The latest version of this license is in
\RenewDocumentCommand{\listoftables}{so}
{
\group_begin:
+ \tl_set_eq:NN \toc@title\listtablename
\IfValueT{#2}{\keys_set:nn {listoc}{#2}}
\__ifmultoc_pre_set:
- \IfBooleanTF{#1}
- {\__title_mark:n {\listtablename}}
- {\__title_mark_intoc:n {\listtablename}}
+ \__title_ifintoc_set:n {#1}
\dim_add:NV \l__toc_offset_dim\l__toc_listsoffset_dim
\vspace*{\dim_use:N \l__toc_offset_dim}
\@starttoc{lot}
@@ -1450,11 +1452,10 @@ The latest version of this license is in
\NewDocumentCommand{\listoflistings}{so}
{
\group_begin:
+ \tl_set_eq:NN \toc@title\lstlistlistingname
\IfValueT{#2}{\keys_set:nn {listoc}{#2}}
\__ifmultoc_pre_set:
- \IfBooleanTF{#1}
- {\__title_mark:n {\lstlistlistingname}}
- {\__title_mark_intoc:n {\lstlistlistingname}}
+ \__title_ifintoc_set:n {#1}
\dim_add:NV \l__toc_offset_dim\l__toc_listsoffset_dim
\vspace*{\dim_use:N \l__toc_offset_dim}
\@starttoc{lol}
@@ -2001,14 +2002,10 @@ The latest version of this license is in
\NewDocumentCommand{\printbibliography}{so}
{
\group_begin:
+ \tl_set_eq:NN \toc@title\bibname
\IfValueT{##2}{\keys_set:nn {listoc}{##2}}
\__ifmultoc_pre_set:
- \cs_set:Npn \bibsection
- {
- \IfBooleanTF{##1}
- {\__title_mark:n {\bibname}}
- {\__title_mark_intoc:n {\bibname}}
- }
+ \cs_set:Npn \bibsection{\__title_ifintoc_set:n {##1}}
\exp_args:NV \bibliography\l__bib_file_tl
\__ifmultoc_post_set:
\group_end:
@@ -2235,13 +2232,13 @@ The latest version of this license is in
{
\keys_set_known:nn {ctex}
{
- contentsname = {目\hspace{\ccwd}录},
- indexname = {索\hspace{\ccwd}引},
- listfigurename = {图片索引},
- listtablename = {表格索引},
- abstractname = {摘\hspace{\ccwd}要},
- lstlistlistingname = {代码索引},
- lstlistingname = {代码}
+ contentsname = 目\hspace{\ccwd}录,
+ indexname = 索\hspace{\ccwd}引,
+ listfigurename = 图片索引,
+ listtablename = 表格索引,
+ abstractname = 摘\hspace{\ccwd}要,
+ lstlistlistingname = 代码索引,
+ lstlistingname = 代码
}
\crefformat{equation}{#2式(#1)#3}
\crefformat{align}{#2式(#1)#3}
@@ -2261,9 +2258,9 @@ The latest version of this license is in
}{
\keys_set_known:nn {ctex}
{
- abstractname = {Abstract},
- lstlistlistingname = {List~of~Listings},
- lstlistingname = {Code}
+ abstractname = Abstract,
+ lstlistlistingname = List~of~Listings,
+ lstlistingname = Code
}
\crefformat{equation}{#2Equation~(#1)#3}
\crefformat{align}{#2Equation~(#1)#3}
diff --git a/macros/latex/contrib/reledmac/doc-more/page-typesetting-columns.pdf b/macros/latex/contrib/reledmac/doc-more/page-typesetting-columns.pdf
index d6ddd45937..58941454e4 100644
--- a/macros/latex/contrib/reledmac/doc-more/page-typesetting-columns.pdf
+++ b/macros/latex/contrib/reledmac/doc-more/page-typesetting-columns.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/1-criticalendnotes.pdf b/macros/latex/contrib/reledmac/examples/1-criticalendnotes.pdf
index 55d142af2e..f367a69313 100644
--- a/macros/latex/contrib/reledmac/examples/1-criticalendnotes.pdf
+++ b/macros/latex/contrib/reledmac/examples/1-criticalendnotes.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/1-criticalnotes.pdf b/macros/latex/contrib/reledmac/examples/1-criticalnotes.pdf
index 52e10b2057..97d7d22999 100644
--- a/macros/latex/contrib/reledmac/examples/1-criticalnotes.pdf
+++ b/macros/latex/contrib/reledmac/examples/1-criticalnotes.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/1-sidenotes.pdf b/macros/latex/contrib/reledmac/examples/1-sidenotes.pdf
index 998177959c..47ab50100e 100644
--- a/macros/latex/contrib/reledmac/examples/1-sidenotes.pdf
+++ b/macros/latex/contrib/reledmac/examples/1-sidenotes.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/1-tabular.pdf b/macros/latex/contrib/reledmac/examples/1-tabular.pdf
index aec8073b5c..bb3d9bba37 100644
--- a/macros/latex/contrib/reledmac/examples/1-tabular.pdf
+++ b/macros/latex/contrib/reledmac/examples/1-tabular.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/1-verses-doublenumbering.pdf b/macros/latex/contrib/reledmac/examples/1-verses-doublenumbering.pdf
index cba0531af6..d93476179b 100644
--- a/macros/latex/contrib/reledmac/examples/1-verses-doublenumbering.pdf
+++ b/macros/latex/contrib/reledmac/examples/1-verses-doublenumbering.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/1-verses.pdf b/macros/latex/contrib/reledmac/examples/1-verses.pdf
index 228b70627d..68530611ee 100644
--- a/macros/latex/contrib/reledmac/examples/1-verses.pdf
+++ b/macros/latex/contrib/reledmac/examples/1-verses.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/2-antilabe.pdf b/macros/latex/contrib/reledmac/examples/2-antilabe.pdf
index 3544ca7255..73b2037b68 100644
--- a/macros/latex/contrib/reledmac/examples/2-antilabe.pdf
+++ b/macros/latex/contrib/reledmac/examples/2-antilabe.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/2-cross_referencing.pdf b/macros/latex/contrib/reledmac/examples/2-cross_referencing.pdf
index 3fa62022e0..d624b0e021 100644
--- a/macros/latex/contrib/reledmac/examples/2-cross_referencing.pdf
+++ b/macros/latex/contrib/reledmac/examples/2-cross_referencing.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/2-footnote_spacing.pdf b/macros/latex/contrib/reledmac/examples/2-footnote_spacing.pdf
index 3d41bd0ac4..a3006e631c 100644
--- a/macros/latex/contrib/reledmac/examples/2-footnote_spacing.pdf
+++ b/macros/latex/contrib/reledmac/examples/2-footnote_spacing.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/2-glossaries.pdf b/macros/latex/contrib/reledmac/examples/2-glossaries.pdf
index 557a885e62..22e4df2e14 100644
--- a/macros/latex/contrib/reledmac/examples/2-glossaries.pdf
+++ b/macros/latex/contrib/reledmac/examples/2-glossaries.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/2-indexing.pdf b/macros/latex/contrib/reledmac/examples/2-indexing.pdf
index 1c95904047..ca44a14887 100644
--- a/macros/latex/contrib/reledmac/examples/2-indexing.pdf
+++ b/macros/latex/contrib/reledmac/examples/2-indexing.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/2-lemma_disambigution.pdf b/macros/latex/contrib/reledmac/examples/2-lemma_disambigution.pdf
index 95ec71c6ee..6812d6357c 100644
--- a/macros/latex/contrib/reledmac/examples/2-lemma_disambigution.pdf
+++ b/macros/latex/contrib/reledmac/examples/2-lemma_disambigution.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/2-line_numbers_in_header.pdf b/macros/latex/contrib/reledmac/examples/2-line_numbers_in_header.pdf
index b7110f0191..d66cd97cf6 100644
--- a/macros/latex/contrib/reledmac/examples/2-line_numbers_in_header.pdf
+++ b/macros/latex/contrib/reledmac/examples/2-line_numbers_in_header.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/2-linespacing.pdf b/macros/latex/contrib/reledmac/examples/2-linespacing.pdf
index 08d1604edd..1419420db7 100644
--- a/macros/latex/contrib/reledmac/examples/2-linespacing.pdf
+++ b/macros/latex/contrib/reledmac/examples/2-linespacing.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/2-manuscript-apparatus.pdf b/macros/latex/contrib/reledmac/examples/2-manuscript-apparatus.pdf
index 8b53eef328..c4167e889a 100644
--- a/macros/latex/contrib/reledmac/examples/2-manuscript-apparatus.pdf
+++ b/macros/latex/contrib/reledmac/examples/2-manuscript-apparatus.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/2-notes-width.pdf b/macros/latex/contrib/reledmac/examples/2-notes-width.pdf
index edfe84f457..f6e6357404 100644
--- a/macros/latex/contrib/reledmac/examples/2-notes-width.pdf
+++ b/macros/latex/contrib/reledmac/examples/2-notes-width.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/2-one_series_per_pstart.pdf b/macros/latex/contrib/reledmac/examples/2-one_series_per_pstart.pdf
index 50daaa32d1..92303f68a8 100644
--- a/macros/latex/contrib/reledmac/examples/2-one_series_per_pstart.pdf
+++ b/macros/latex/contrib/reledmac/examples/2-one_series_per_pstart.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/2-performances.pdf b/macros/latex/contrib/reledmac/examples/2-performances.pdf
index 562be32f2c..6ca8890883 100644
--- a/macros/latex/contrib/reledmac/examples/2-performances.pdf
+++ b/macros/latex/contrib/reledmac/examples/2-performances.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/2-reledmac-right-to-left.pdf b/macros/latex/contrib/reledmac/examples/2-reledmac-right-to-left.pdf
index f0925c078e..709761b7b5 100644
--- a/macros/latex/contrib/reledmac/examples/2-reledmac-right-to-left.pdf
+++ b/macros/latex/contrib/reledmac/examples/2-reledmac-right-to-left.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/2-subdivision-number-in-header.pdf b/macros/latex/contrib/reledmac/examples/2-subdivision-number-in-header.pdf
index b8bd11a686..871639bfac 100644
--- a/macros/latex/contrib/reledmac/examples/2-subdivision-number-in-header.pdf
+++ b/macros/latex/contrib/reledmac/examples/2-subdivision-number-in-header.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/2-titles_in_line_numbering_with_notes.pdf b/macros/latex/contrib/reledmac/examples/2-titles_in_line_numbering_with_notes.pdf
index 62e7f9392d..8b3c00fbcd 100644
--- a/macros/latex/contrib/reledmac/examples/2-titles_in_line_numbering_with_notes.pdf
+++ b/macros/latex/contrib/reledmac/examples/2-titles_in_line_numbering_with_notes.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/2-titles_not_in_line_numbering.pdf b/macros/latex/contrib/reledmac/examples/2-titles_not_in_line_numbering.pdf
index c99fc42632..ba12c539f1 100644
--- a/macros/latex/contrib/reledmac/examples/2-titles_not_in_line_numbering.pdf
+++ b/macros/latex/contrib/reledmac/examples/2-titles_not_in_line_numbering.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/3-reledpar_columns_different_languages.pdf b/macros/latex/contrib/reledmac/examples/3-reledpar_columns_different_languages.pdf
index 612aef36a8..4565ff9184 100644
--- a/macros/latex/contrib/reledmac/examples/3-reledpar_columns_different_languages.pdf
+++ b/macros/latex/contrib/reledmac/examples/3-reledpar_columns_different_languages.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/3-reledpar_mwe.pdf b/macros/latex/contrib/reledmac/examples/3-reledpar_mwe.pdf
index 264c3127e7..7be2ba4d63 100644
--- a/macros/latex/contrib/reledmac/examples/3-reledpar_mwe.pdf
+++ b/macros/latex/contrib/reledmac/examples/3-reledpar_mwe.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/3-reledpar_pages_different_languages_lualatex.pdf b/macros/latex/contrib/reledmac/examples/3-reledpar_pages_different_languages_lualatex.pdf
index f7df44052b..2434009585 100644
--- a/macros/latex/contrib/reledmac/examples/3-reledpar_pages_different_languages_lualatex.pdf
+++ b/macros/latex/contrib/reledmac/examples/3-reledpar_pages_different_languages_lualatex.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/3-reledpar_same_page_number_in_both_side.pdf b/macros/latex/contrib/reledmac/examples/3-reledpar_same_page_number_in_both_side.pdf
index 5008b620e6..f855b81f3c 100644
--- a/macros/latex/contrib/reledmac/examples/3-reledpar_same_page_number_in_both_side.pdf
+++ b/macros/latex/contrib/reledmac/examples/3-reledpar_same_page_number_in_both_side.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_advancedshifted-nomax.pdf b/macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_advancedshifted-nomax.pdf
index c80f407333..d86378d280 100644
--- a/macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_advancedshifted-nomax.pdf
+++ b/macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_advancedshifted-nomax.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_advancedshifted.pdf b/macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_advancedshifted.pdf
index 9dc7c4876d..c678e20f35 100644
--- a/macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_advancedshifted.pdf
+++ b/macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_advancedshifted.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_default.pdf b/macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_default.pdf
index d441a59733..feed6e27ea 100644
--- a/macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_default.pdf
+++ b/macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_default.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_nomax-shifted.pdf b/macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_nomax-shifted.pdf
index 1bf544a515..d92e07ab7e 100644
--- a/macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_nomax-shifted.pdf
+++ b/macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_nomax-shifted.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_nomax.pdf b/macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_nomax.pdf
index 7b6e3d3829..ccdc5625ae 100644
--- a/macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_nomax.pdf
+++ b/macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_nomax.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_nosync.pdf b/macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_nosync.pdf
index 8c47ab4918..08f0836796 100644
--- a/macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_nosync.pdf
+++ b/macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_nosync.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_shifted.pdf b/macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_shifted.pdf
index 5c192d4b1a..c8f8f491f2 100644
--- a/macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_shifted.pdf
+++ b/macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_shifted.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/4-reledpar_column_mix_with_not_column-continuous-numbering.pdf b/macros/latex/contrib/reledmac/examples/4-reledpar_column_mix_with_not_column-continuous-numbering.pdf
index 3c85efd97f..e780168dc8 100644
--- a/macros/latex/contrib/reledmac/examples/4-reledpar_column_mix_with_not_column-continuous-numbering.pdf
+++ b/macros/latex/contrib/reledmac/examples/4-reledpar_column_mix_with_not_column-continuous-numbering.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/4-reledpar_column_mix_with_not_column.pdf b/macros/latex/contrib/reledmac/examples/4-reledpar_column_mix_with_not_column.pdf
index 9d407600c2..5c14beb4be 100644
--- a/macros/latex/contrib/reledmac/examples/4-reledpar_column_mix_with_not_column.pdf
+++ b/macros/latex/contrib/reledmac/examples/4-reledpar_column_mix_with_not_column.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/4-reledpar_columns_alignment.pdf b/macros/latex/contrib/reledmac/examples/4-reledpar_columns_alignment.pdf
index 75123ed947..298a355d76 100644
--- a/macros/latex/contrib/reledmac/examples/4-reledpar_columns_alignment.pdf
+++ b/macros/latex/contrib/reledmac/examples/4-reledpar_columns_alignment.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/4-reledpar_columns_titles_in_line_numbering_with_notes.pdf b/macros/latex/contrib/reledmac/examples/4-reledpar_columns_titles_in_line_numbering_with_notes.pdf
index ba289c1ab0..041a6fbfcf 100644
--- a/macros/latex/contrib/reledmac/examples/4-reledpar_columns_titles_in_line_numbering_with_notes.pdf
+++ b/macros/latex/contrib/reledmac/examples/4-reledpar_columns_titles_in_line_numbering_with_notes.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/4-reledpar_inside-outside-columns.pdf b/macros/latex/contrib/reledmac/examples/4-reledpar_inside-outside-columns.pdf
index c09c66b4e2..886682aff9 100644
--- a/macros/latex/contrib/reledmac/examples/4-reledpar_inside-outside-columns.pdf
+++ b/macros/latex/contrib/reledmac/examples/4-reledpar_inside-outside-columns.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/4-reledpar_one_series_per_pstart.pdf b/macros/latex/contrib/reledmac/examples/4-reledpar_one_series_per_pstart.pdf
index e94e68bcab..7dec0ce091 100644
--- a/macros/latex/contrib/reledmac/examples/4-reledpar_one_series_per_pstart.pdf
+++ b/macros/latex/contrib/reledmac/examples/4-reledpar_one_series_per_pstart.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/4-reledpar_pages_long_notes.pdf b/macros/latex/contrib/reledmac/examples/4-reledpar_pages_long_notes.pdf
index 88c67bd0b9..dc46aa0994 100644
--- a/macros/latex/contrib/reledmac/examples/4-reledpar_pages_long_notes.pdf
+++ b/macros/latex/contrib/reledmac/examples/4-reledpar_pages_long_notes.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/4-reledpar_pages_notes_leftpage.pdf b/macros/latex/contrib/reledmac/examples/4-reledpar_pages_notes_leftpage.pdf
index 5b8022b521..21d81aaa9e 100644
--- a/macros/latex/contrib/reledmac/examples/4-reledpar_pages_notes_leftpage.pdf
+++ b/macros/latex/contrib/reledmac/examples/4-reledpar_pages_notes_leftpage.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/4-reledpar_pages_paragraph_separator_between.pdf b/macros/latex/contrib/reledmac/examples/4-reledpar_pages_paragraph_separator_between.pdf
index e20e036604..7117f720c5 100644
--- a/macros/latex/contrib/reledmac/examples/4-reledpar_pages_paragraph_separator_between.pdf
+++ b/macros/latex/contrib/reledmac/examples/4-reledpar_pages_paragraph_separator_between.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/4-reledpar_pages_titles_in_line_numbering_with_notes.pdf b/macros/latex/contrib/reledmac/examples/4-reledpar_pages_titles_in_line_numbering_with_notes.pdf
index 2f8fd1a4aa..0b26375b32 100644
--- a/macros/latex/contrib/reledmac/examples/4-reledpar_pages_titles_in_line_numbering_with_notes.pdf
+++ b/macros/latex/contrib/reledmac/examples/4-reledpar_pages_titles_in_line_numbering_with_notes.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/4-reledpar_titles_not_in_line_numbering.pdf b/macros/latex/contrib/reledmac/examples/4-reledpar_titles_not_in_line_numbering.pdf
index 4250071048..b022878627 100644
--- a/macros/latex/contrib/reledmac/examples/4-reledpar_titles_not_in_line_numbering.pdf
+++ b/macros/latex/contrib/reledmac/examples/4-reledpar_titles_not_in_line_numbering.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/4-reledpar_verse_text_between.pdf b/macros/latex/contrib/reledmac/examples/4-reledpar_verse_text_between.pdf
index cea68e3072..20819048e6 100644
--- a/macros/latex/contrib/reledmac/examples/4-reledpar_verse_text_between.pdf
+++ b/macros/latex/contrib/reledmac/examples/4-reledpar_verse_text_between.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/migration.pdf b/macros/latex/contrib/reledmac/migration.pdf
index 0fa30756fd..779bd5474a 100644
--- a/macros/latex/contrib/reledmac/migration.pdf
+++ b/macros/latex/contrib/reledmac/migration.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/reledmac.dtx b/macros/latex/contrib/reledmac/reledmac.dtx
index 7535c44e0e..5fe0382656 100644
--- a/macros/latex/contrib/reledmac/reledmac.dtx
+++ b/macros/latex/contrib/reledmac/reledmac.dtx
@@ -578,6 +578,9 @@
% \changes{v2.37.0}{2021/02/28}{Fix bug with \protect\cs{Xnonote}}
% \changes{v2.37.0}{2021/02/28}{Improve syntaxis check.}
% \changes{v2.37.1}{2021/03/08}{Fix bug with \protect\cs{edgls} and related in \protect\cs{edtext} argument. Require \protect\package{glossaries-extra} is \protect\package{glossaries} is loaded.}
+% \changes{v2.37.2}{2021/04/04}{Fix bug with \protect\cs{Xstanzaonlyfirst}.}
+% \changes{v2.37.2}{2021/04/04}{Fix bug with \protect\option{parapparatus} option and nested \protect\cs{edtext}.}
+% \changes{v2.37.1}{2021/04/04}{Fix bug with \protect\cs{Xgroupbyline} and two or three columns notes.}
% Typeset scholarly editions with \LaTeX\thanks{This file (\dtxfilename)
% has version number \fileversion, last revised \filedate.}}
%
@@ -4468,7 +4471,7 @@
% \begin{macrocode}
%<*code>
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{reledmac}[2021/03/08 v2.37.1 typesetting critical editions]%
+\ProvidesPackage{reledmac}[2021/04/04 v2.37.2 typesetting critical editions]%
% \end{macrocode}
%
% \subsection{Package options}
@@ -5201,9 +5204,9 @@
% \changes{v0.4.0}{2004/02/29}{Added \protect\cs{showlemma}}
% \begin{macrocode}
\ifledfinal
- \newcommand*{\showlemma}[1]{#1}
+ \global\notbool{parapparatus@}{\newcommand*}{\newcommand}{\showlemma}[1]{#1}%
\else
- \newcommand*{\showlemma}[1]{\textbf{#1}}%
+ \global\notbool{parapparatus@}{\newcommand*}{\newcommand}{\showlemma}[1]{\textbf{#1}}%
\fi
% \end{macrocode}
@@ -10395,7 +10398,7 @@
}%
{}%
\csuse{##1@forinserting@####1}%
- \strut\par%
+ \strut\par\allowbreak%
}%
\global\csundef{##1@forinserting@####1}%
}%
@@ -12251,7 +12254,7 @@
togl{Xstanza@#2}%
and bool {numberstanza}%
and not (%
- togl{Xpstartonlyfirst@#2}%
+ togl{Xstanzaonlyfirst@#2}%
and test {\ifnumequal{\csuse{Xprevstanza@#2}}{\current@stanza}}%
)%
}{%
@@ -15120,6 +15123,9 @@
\fi%
\begingroup%
\newcommand{\content}{##2}%
+ \ifcsstring{series@display#1}{paragraph}{%
+ \patchcmd{\@tag}{\par}{\relax}{}{}%
+ }{}%
\ifnumberedpar@%
\ifledRcol%
\ifluatex%
diff --git a/macros/latex/contrib/reledmac/reledmac.pdf b/macros/latex/contrib/reledmac/reledmac.pdf
index 26e04e5fd9..60151a3fbc 100644
--- a/macros/latex/contrib/reledmac/reledmac.pdf
+++ b/macros/latex/contrib/reledmac/reledmac.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/reledpar.pdf b/macros/latex/contrib/reledmac/reledpar.pdf
index 80a0afcce9..cee0c73ade 100644
--- a/macros/latex/contrib/reledmac/reledpar.pdf
+++ b/macros/latex/contrib/reledmac/reledpar.pdf
Binary files differ