summaryrefslogtreecommitdiff
path: root/support/bib2gls/src/bib2gls.tex
diff options
context:
space:
mode:
Diffstat (limited to 'support/bib2gls/src/bib2gls.tex')
-rw-r--r--support/bib2gls/src/bib2gls.tex254
1 files changed, 165 insertions, 89 deletions
diff --git a/support/bib2gls/src/bib2gls.tex b/support/bib2gls/src/bib2gls.tex
index 0bee0fd314..dd56fedc31 100644
--- a/support/bib2gls/src/bib2gls.tex
+++ b/support/bib2gls/src/bib2gls.tex
@@ -1663,14 +1663,14 @@ the order in which the glossaries were defined. You may use
preferred order.
\end{important}
-\item[\field{group}] The entries within a glossary can form groups
+\item[\field{group}] The entries within a glossary can form \idxpl{group}
as a by-product of the sorting method. This must be enabled with the
\longarg{group} switch and isn't available for the sort methods
listed in \tableref{tab:sortoptionsnosort}. The group label is
stored in the \field{group} field. This is an internal field that
typically shouldn't be set in the \ext{bib} file.
-You can specify your own custom groups but if you do so you must
+You can specify your own \idxpl{customgroup} but if you do so you must
ensure that the terms are ordered in such a way that they are
gathered according to group. This is typically done by splitting the
glossary into blocks using a separate \gls{GlsXtrLoadResources} with
@@ -1719,7 +1719,7 @@ commands within the document. For example:
Suppose that your list of terms spans many pages and you feel it
would be helpful to the reader to split it up into letter groups
then you would need to run \bibgls\ with the \longarg{group} switch
-and use a glossary style that supports letter groups for that
+and use a glossary style that supports \idxpl{lettergroup} for that
glossary. For example:
\begin{codeenv}
\cs{printunsrtglossary}\oarg{\printglossopt[indexgroup]{style}}
@@ -3042,7 +3042,7 @@ The \styfmt{glossaries-extra} \styopt{record} package option
automatically creates a new internal field called \field{group}. If the
\longarg{group} switch is used with the default \csopt[auto]{group}
option then, when sorting, \bibgls\ will try
-to determine the letter group for each entry and assign it to the
+to determine the \idx{group} for each entry and assign it to the
\field{group} field. (Some \csopt{sort} options ignore this
setting.) This value will be picked up by \ics{printunsrtglossary}
if group headings are required (for example with the
@@ -3052,6 +3052,11 @@ if group headings are required (for example with the
the glossary, there's no need to use this switch. Note that this
switch doesn't automatically select an appropriate glossary style.
+If you want \idxpl{sub-group}, you will need to use the \csopt{group-level}
+resource option and ensure you have \sty{glossaries-extra} v1.49+.
+\Idxpl{smallgroup} can be merged with the \csopt{merge-small-groups}
+resource option.
+
\begin{important}
The \field{group} field should typically not be set in the \ext{bib}
file and will trigger a warning if found. The explicit use of the
@@ -3514,13 +3519,18 @@ Don't check for instances of \ics{citation} in the \ext{aux} file
\argsection{collapse-same-location-range}
-Collapse any explicit \gls{location} range into a normal \gls{record} if
-the \glspl{location} are the same (default).
+Collapse any \idx{explicit-range} into a normal \gls{record} if
+the start and end \glspl{location} are the same (default).
+This record will be treated as a normal \gls{location} that can be
+merged with neighbouring \glspl{location}, regardless of
+\csopt{merge-ranges}.
\argsection{no-collapse-same-location-range}
-Don't collapse any explicit \gls{location} range into a normal
-\gls{record} if the \glspl{location} are the same.
+Don't collapse any \idx{explicit-range} into a normal
+\gls{record} if the start and end \glspl{location} are the same.
+The \idx{explicit-range} will only be able to merge with
+neighbouring \glspl{location} if \csopt[true]{merge-ranges}.
\argsection{map-format}
@@ -3539,8 +3549,8 @@ This essentially means that if there's a \gls{record} conflict
involving \encap{emph}, try replacing \encap{emph} with
\encap{hyperbf} and see if that resolves the conflict.
-Note that if the conflict includes a range formation, the
-range takes precedence.
+Note that if the conflict includes a \idx{range} formation, the
+\idx{range} takes precedence.
The mapping tests are applied as the records are
read. For example, suppose the records are listed in the \ext{aux}
file as:
@@ -3824,11 +3834,12 @@ switch with a comma-separated list of formats that should be
retained. Note that exact duplicates will still be merged.
This switch has a cumulative effect.
-Take care if you use this switch and you have an explicit range with
+Take care if you use this switch and you have an \idx{explicit-range} with
coincident start and end locations. If the
\glsdisp{principallocation}{principal record} is between
-the start and end format markers then the range can't collapse
-to an ordinary \gls{record}.
+the start and end format markers then the \idx{range} can't collapse
+to an ordinary \gls{record}. (You may need to use
+\csopt[true]{merge-ranges}.)
\argsection{no-retain-formats}
@@ -8648,10 +8659,11 @@ The default setting is \csopt[no value]{missing-parent-category}.
\optsection{group-level}
-If letter group formation is enabled (see \csopt{group},
+If letter \idx{group} formation is enabled (see \csopt{group},
\csopt{group-formation} and \longarg{group}) then the default
behaviour is to only assign the group label for \glspl{top-levelentry}.
-This option allows the group label to be assigned to \glspl{sub-entry}.
+This option allows the group label to be assigned to \glspl{sub-entry}
+if \idxpl{sub-group} are required.
The value may be one of the following:
\begin{itemize}
\item \meta{n}: only assign the group for level~\meta{n} entries;
@@ -8671,10 +8683,10 @@ hierarchical levels start at 0 (\gls{top-levelentry}). For any value
other than \csopt[0]{group-level}, the parent entry label will be
included in the group label.
-The hierarchical group titles are formatted according to
+The \idx{hiergroup} titles are formatted according to
\gls{bibglshiersubgrouptitle}. If the group title would
usually be set with the command \csfmt{bibglsset\ldots group}
-for \glspl{top-levelentry} then the hierarchical group title would
+for \glspl{top-levelentry} then the \idx{hiergroup} title would
be set with the analogous \csfmt{bibglsset\ldots group} command.
For example, letter groups are normally set with
\gls{bibglssetlettergrouptitle} but hierarchical letter groups are set
@@ -8684,21 +8696,30 @@ If the \longarg{no-group} setting is on then this option has no effect.
\begin{important}
Any value other than the default \csopt[0]{group-level} requires
-\sty{glossaries-extra} v1.49+.
+\sty{glossaries-extra} v1.49+, which provides \cs{glssubgroupheading}.
\end{important}
+\Idxpl{sub-group} are implemented by the glossary style command:
+\nosecformatdef{glssubgroupheading}
+The \sty{glossaries-extra} package automatically implements:
+\begin{codeenv}
+\cmd{renewcommand}*\marg{\cs{glssubgroupheading}}[4]\marg{\cs{glsgroupheading}\marg{\idx{param}4}}
+\end{codeenv}
+whenever a style is set, so that if the style doesn't provide a
+definition for this command, it will behave like \cs{glsgroupheading}.
+
\optsection{merge-small-groups}
-Merges consecutive groups that have less than \meta{n} entries. The
+Merges consecutive \idxpl{smallgroup} that have less than \meta{n} entries. The
default is \csopt[0]{merge-small-groups}, which switches off this
action. If \meta{n} is omitted, \csopt[1]{merge-small-groups} is
assumed.
This setting only has an effect if group formation is enabled.
-If hierarchical sub-groups are enabled (\csopt{group-level}) then
+If hierarchical \idxpl{sub-group} are enabled (\csopt{group-level}) then
merging is only performed on consecutive small groups within the
same hierarchical level. Any \glspl{childentry} that aren't in their
-own sub-group are included in the higher level group count.
+own \idx{sub-group} are included in the higher level group count.
For example, suppose you have a large number of entries in most of
the letter groups:
@@ -12338,7 +12359,7 @@ the locations, use \csopt[see]{save-locations} (or similar).
The \field{loclist} field has the syntax of an \isty{etoolbox}
internal list and includes every \gls{location} (except for the
\glsdisp{discardedrecord}{discarded duplicates} and
-\iglspl{ignoredrecord}) with no range formations. Any explicit range
+\iglspl{ignoredrecord}) with no \idx{range} formations. Any \idx{explicit-range}
markup is stripped from the \glsopt{format} information to leave
just the \idx{encap} name, so you just get the start and end
\glspl{location} added as individual elements but they are still
@@ -12396,34 +12417,54 @@ The \csfmt{hyper}\meta{xx} set of commands all internally use
\gls{location}. See Table~6.1 in the \styfmt{glossaries}~\cite{glossaries}
user manual for a list of all the \csfmt{hyper}\meta{xx} commands.
-Ranges can be explicitly formed using the parenthetical
+\Idxpl{range} can be explicitly formed using the parenthetical
syntax \glsopt[\idx{openrange}]{format} and
\glsopt[\idx{openrange}]{format} or \glsopt[\idx{openrange}\meta{csname}]{format} and
\glsopt[\idx{closerange}\meta{csname}]{format} (where \meta{csname} is again the name of
a text-block command without the initial backslash) in the optional
-argument of commands like \ics{gls} or \ics{glsadd}. These will always
-form a range, regardless of \csopt{min-loc-range}, and will be
-encapsulated by \gls!{bibglsrange}. (This command is not used with
-ranges that are formed by collating consecutive \glspl{location}.) The
-initial marker is stripped from the \meta{format} argument of the
-\gls{location} formatting commands, such as \gls{glsnoidxdisplayloc}, to
-allow for easy conversion to the corresponding text-block command.
-
-Explicit ranges don't merge with neighbouring \glspl{location}, but
-will absorb any single \glspl{location} within the range that don't
-conflict. (Conflicts will be moved to the start of the explicit
-range.) For example, if \code{\cs{gls}\marg{sample}} is used on
-page~1,
+argument of commands like \ics{gls} or \ics{glsadd}. With
+\sty{glossaries-extra} v1.50+, you can also use \ics{glsstartrange}
+and \ics{glsendrange} (which is useful if the unbalanced parentheses
+upset syntax highlighting).
+
+These \idxpl{explicit-range} will always form a \idx{range},
+regardless of \csopt{min-loc-range}, unless the start and end
+coincide and \longarg{collapse-same-location-range} is in effect.
+The \idx{explicit-range} will be encapsulated with \gls!{bibglsrange}
+(unless \csopt[true]{merge-ranges}). (This command is not used with
+\idxpl{implicit-range} that are formed by collating consecutive \glspl{location}.)
+The initial marker is stripped from the \meta{format} argument of
+the \gls{location} formatting commands, such as
+\gls{glsnoidxdisplayloc}, to allow for easy conversion to the
+corresponding text-block command.
+
+\Idxpl{explicit-range} don't merge with neighbouring
+\glspl{location} (unless \csopt[true]{merge-ranges}), but will
+absorb any individual \glspl{location} within the \idx{range} that doesn't
+conflict. (Conflicts, denoted \idxpl{interloper}, will be moved to the start of the
+\idx{explicit-range}, regardless of \csopt{merge-ranges}.)
+For example, if \code{\cs{gls}\marg{sample}} is used on page~1,
\code{\cs{gls}\oarg{\glsopt[\idx{openrange}]{format}}\marg{sample}}
is used on page~2, \code{\cs{gls}\marg{sample}} is used on page~3, and
\code{\cs{gls}\oarg{\glsopt[\idx{closerange}]{format}}\marg{sample}}
is used on page~4, then the \gls{locationlist} will be 1, 2--4. The
-entry on page~3 is absorbed into the explicit range, but the range
-can't be expanded to include page~1. If the entry on page~3 had a
-different format to the explicit range, for example
+entry on page~3 is absorbed into the \idx{explicit-range}, but, with
+the default \csopt[false]{merge-ranges}, the
+\idx{range} can't be expanded to include page~1. If the entry on page~3 had a
+different format to the \idx{explicit-range}, for example
\code{\cs{gls}\oarg{\glsopt[\encap{textbf}]{format}}\marg{sample}}
-then it would cause a warning and be moved before the start of the
-range so that the \gls{locationlist} would then be 1, \textbf{3}, 2--4.
+then this will cause a warning and the \idx{interloper} will be
+moved before the start of the \idx{range} so that the
+\gls{locationlist} would then be 1, \textbf{3}, 2--4.
+
+The \csopt[true]{merge-ranges} option will make \idxpl{explicit-range}
+behave like \idxpl{implicit-range}, which allows them to merge with
+neighbouring \idxpl{range}. The \gls{bibglsrange} command won't be used in
+this case (regardless of whether or not the \idx{range} was merged with
+neighbouring \glspl{location}). Options such as
+\csopt{min-loc-range} won't have an effect on the merged \idx{range}, but
+will still effect \idxpl{implicit-range} that haven't been merged with an
+\idx{explicit-range}.
An \igls{ignoredrecord} identifies a term that needs to be treated as
though it has a \gls{record} for selection purposes, but the
@@ -12464,14 +12505,14 @@ If you also want to drop front matter \glspl{location} as well:
\cs{GlsXtrSetDefaultNumberFormat}\marg{\encap{glsignore}}
\end{codeenv}
-Note that explicit range formations aren't discarded, so if
-\encap{glsignore} is used in a range, such as:
+Note that \idx{explicit-range} formations aren't discarded, so if
+\encap{glsignore} is used in a \idx{range}, such as:
\begin{codeenv}
\ics{glsadd}\oarg{\glsopt[\idx{openrange}\encap{glsignore}]{format}}\marg{sample}
\ldots
\cs{glsadd}\oarg{\glsopt[\idx{closerange}\encap{glsignore}]{format}}\marg{sample}
\end{codeenv}
-then the range will be included in the \gls{locationlist} (encapsulated
+then the \idx{range} will be included in the \gls{locationlist} (encapsulated
with \ics{glsignore}), but this case would be a rather odd use of
this special format and is not recommended.
@@ -12531,8 +12572,8 @@ then the \ext{aux} file will contain:
This is a partial \gls{record} match. In this case, \bibgls\
makes the following tests:
\begin{itemize}
-\item If one of the formats includes a range formation, the
-range takes precedence.
+\item If one of the formats includes an \idx{explicit-range} formation marker, the
+\idx{range} takes precedence.
\item If one of the formats is \encap{glsnumberformat} (as in the
above example) or an \igls{ignoredrecord} format such as
@@ -12661,7 +12702,8 @@ usual \igls{locationlist};
\igls{locationlist}. You may want to consider using the
\longswitch{retain-formats} switch with this setting if you don't
want to lose a partial \gls{location} match (for example, if the
-\gls{principallocation} coincides with the start of an explicit range).
+\gls{principallocation} coincides with the start of an
+\idx{explicit-range}).
\end{itemize}
@@ -12812,7 +12854,7 @@ the \field{location} field due to the
\csopt[remove]{save-principal-locations} setting. This can lead to a
ragged \gls{locationlist}. The option \csopt[default
format]{save-principal-locations} can allow the
-\gls{principallocation} to be absorbed into a range.
+\gls{principallocation} to be absorbed into a \idx{range}.
The \gls{mainglossary} records are added through the category-independent post-name
hook with \cs{glsadd}. This won't be implemented until the entries are actually
@@ -12935,7 +12977,7 @@ define the custom commands as follows:
This is more useful if you want to simply omit the
\code{\glsopt[primaryfmt]{format}} option (just remove it from the above four
definitions), which makes it easier to merge the \glspl{location} into
-ranges in the index.
+\idxpl{range} in the index.
\optsection{primary-loc-counters}
@@ -13073,18 +13115,39 @@ first, followed by the \counter{chapter} group. Whereas with:
then the \field{primarylocations} field will have the
\counter{chapter} group first, followed by the \counter{page} group.
+\optsection{merge-ranges}
+
+This boolean option determines whether or not \idxpl{explicit-range} should
+merge with neighbouring \glspl{location} on either side of the
+\idx{range}. The default setting is \csopt[false]{merge-ranges}.
+
+Note that \gls{bibglsrange} won't be used with
+\csopt[true]{merge-ranges}, regardless of whether or not the \idx{range}
+was merged with neighbouring \glspl{location}. Options such as
+\csopt{min-loc-range}, \csopt{suffixF} and \csopt{suffixFF}
+won't have an effect on the merged range, but
+will still effect \idxpl{implicit-range} that haven't been merged with an
+\idx{explicit-range}.
+
+Regardless of the value of this option, \idxpl{interloper} will still be
+moved to the start of the \idx{range} and encapsulated with
+\gls{bibglsinterloper}.
+
\optsection{min-loc-range}
By default, three or more consecutive \glspl{location} \meta{loc-1},
\meta{loc-2}, \ldots, \meta{loc-n} are compressed into
-the range \code{\meta{loc-1}\ics{delimR} \meta{loc-n}}. Otherwise
+the \idx{range} \code{\meta{loc-1}\ics{delimR} \meta{loc-n}}
+(an \idx{implicit-range}). Otherwise
the \glspl{location} are separated by \gls!{bibglsdelimN} or \gls!{bibglslastDelimN}.
-As mentioned above, these aren't merged with explicit range formations.
+As mentioned above, these aren't merged with \idx{explicit-range}
+formations unless \csopt[true]{merge-ranges}.
-You can change this with the \csopt{min-loc-range} setting where
+You can change how many consecutive \glspl{location} are need to
+form an \idx{implicit-range} with the \csopt{min-loc-range} setting where
\meta{value} is either \optfmt{none} (don't form ranges) or an
integer greater than one indicating how many consecutive
-\glspl{location} should be converted into a range.
+\glspl{location} should be converted into a \idx{range}.
\bibgls\ determines if one \gls{location}
\code{\margm{prefix-2}\margm{counter-2}\margm{format-2}\margm{location-2}}
@@ -13278,7 +13341,8 @@ For example, if \meta{location-1} is \qt{B} and \meta{location-2}
is \qt{C}, then $n_1 = 66$ and $n_2 = 67$. Since $n_2 = 67 = 66+1=
n_1+1$ then \meta{location-2} immediately follows \meta{location-1}.
-This is used in the range formations within the \glspl{locationlist} (as described
+This is used in the \idx{implicit-range} formations within
+the \glspl{locationlist} (as described
in the above section).
So, for example, the list \qt{1, 2, 3, 5, 7, 8, 10, 11, 12, 58, 59,
61} becomes
@@ -13288,9 +13352,9 @@ The automatically indexing of commands like \ics{gls} means that
the \glspl{locationlist} can become long and ragged. You could
deal with this by switching off the automatic indexing and
only explicitly index pertinent use or you can adjust
-the value of \optfmt{max-loc-diff} so that a range can be formed even
+the value of \optfmt{max-loc-diff} so that a \idx{range} can be formed even
if there are one or two gaps in it.
-By default, any \gls{location} ranges that have skipped gaps in this
+By default, any \idxpl{range} that have skipped gaps in this
manner will be followed by \gls!{bibglspassim}. The default
definition of this command is obtained from the resource file.
For English, this is \verb*| passim| (space followed by \qt{passim}).
@@ -13302,9 +13366,11 @@ term.
\optsection{suffixF}
-If set, a range consisting of two consecutive \glspl{location}
-\meta{loc-1} and \meta{loc-2} will be
-displayed in the \gls{locationlist} as \meta{loc-1}\meta{value}.
+If set, an \idx{implicit-range} consisting of two consecutive
+\glspl{location} \meta{loc-1} and \meta{loc-2} will be displayed in
+the \gls{locationlist} as \meta{loc-1}\meta{value}. This option
+doesn't affect \idxpl{explicit-range}, even with
+\csopt[true]{merge-ranges}.
Note that \csopt[\empty]{suffixF} sets the suffix to the
empty string. To remove the suffix formation use
@@ -13314,9 +13380,11 @@ The default is \csopt[none]{suffixF}.
\optsection{suffixFF}
-If set, a range consisting of three or more consecutive \glspl{location}
-\meta{loc-1} and \meta{loc-2} will be
+If set, an \idx{implicit-range} consisting of three or more
+consecutive \glspl{location} \meta{loc-1} and \meta{loc-2} will be
displayed in the \gls{locationlist} as \meta{loc-1}\meta{value}.
+This option doesn't affect \idxpl{explicit-range}, even with
+\csopt[true]{merge-ranges}.
Note that \csopt[\empty]{suffixFF} sets the suffix to the
empty string. To remove the suffix formation use
@@ -13331,9 +13399,9 @@ The \meta{value} may be an integer \meta{n} or \optfmt{false} (equivalent to
\csopt[3]{compact-ranges}). If no \meta{value} is specified,
\optfmt{true} is assumed.
-This setting allows \gls{location} ranges such as 184--189 to appear
+This setting allows location \idxpl{range} such as 184--189 to appear
more compactly as 184--9. The end \gls{location} is encapsulated
-in the command \gls{bibglscompact}, so the range would actually
+in the command \gls{bibglscompact}, so the \idx{range} would actually
become:
\begin{codeenv}
184\ics{delimR}\gls{bibglscompact}\marg{digit}\marg{18}\marg{9}
@@ -13341,7 +13409,7 @@ become:
If the \gls{location} is in the form \code{\meta{cs}\margm{loc}}
(where \meta{cs} is a command)
then \gls{bibglscompact} will be inside the argument.
-For example, if the range would normally be:
+For example, if the \idx{range} would normally be:
\begin{codeenv}
\cmd{custom}\marg{184}\ics{delimR}\cmd{custom}\marg{189}
\end{codeenv}
@@ -13630,9 +13698,9 @@ consider the following document:
\cmd{end}\marg{document}
\end{codeenv}
This results in the \gls{locationlist} \qt{1, 1--3, 3--5}. This
-looks a little odd and it may seem as though the range formation
+looks a little odd and it may seem as though the \idx{implicit-range} formation
hasn't worked, but the \glspl{location} are actually: page~1, equation~1,
-equation~2, equation~3, page~3, page~4 and page~5. Ranges can't
+equation~2, equation~3, page~3, page~4 and page~5. \Idxpl{range} can't
be formed across different counters.
The \csopt[\meta{list}]{loc-counters} option instructs \bibgls\
@@ -13727,7 +13795,7 @@ the place where the corresponding \cs{label} occurred.
This method works partially with \idx!{makeindex} and \idx!{xindy}
but from their point of view the \gls{location} is the value of the
\counter{wrglossary} counter, which interferes with their ability to
-merge duplicate page numbers and form ranges. Since \bibgls\ is
+merge duplicate page numbers and form \idxpl{range}. Since \bibgls\ is
designed specifically to work with \sty{glossaries-extra}, it's
aware of this special counter and will merge and collate the
\glspl{location} according to the corresponding page number instead.
@@ -16962,9 +17030,9 @@ will be adjusted to locally change the field to
in the \gls{secondaryglossary} will be the same as for the
\gls{primaryglossary}.
-(If the glossary \meta{type} doesn't exist, it will be
+If the glossary \meta{type} doesn't exist, it will be
defined with \ics{provideignoredglossary*}\margm{type}
-even if \longarg{no-provide-glossaries} is set.)
+even if \longarg{no-provide-glossaries} is set.
Note that if the glossary already exists and contains entries,
the existing entries aren't re-ordered. The new entries are
simply appended to the list.
@@ -19006,6 +19074,8 @@ This defaults to \code{,\idx{nbspchar}} to discourage lonely \glspl{location}.
\cssection{bibglscompact}
\formatdef{bibglscompact}
+This command is used with \csopt{compact-ranges} when the end
+\gls{location} in a \idx{range} is compacted.
The first argument \meta{pattern} indicates the \gls{location} pattern:
\code{digit} for digits, \code{roman} for \idx!{lowercase}
Roman numerals, \code{ROMAN} for \idx!{uppercase} Roman
@@ -19019,9 +19089,9 @@ This just does \meta{part2} by default.
\cssection{bibglspassim}
\formatdef{bibglspassim}
-If \csopt{max-loc-diff} is greater than~1, then any ranges that have
-skipped over gaps will be followed by \gls{bibglspassim}, which is
-defined as:
+If \csopt{max-loc-diff} is greater than~1, then any
+\idxpl{implicit-range} that have skipped over gaps will be followed
+by \gls{bibglspassim}, which is defined as:
\begin{codeenv}
\cs{providecommand}\marg{\gls{bibglspassim}}\marg{ \gls{bibglspassimname}}
\end{codeenv}
@@ -19048,25 +19118,26 @@ The default definition is obtained from the \langxml. For example, with
\cssection{bibglsrange}
\formatdef{bibglsrange}
-Explicit ranges formed using \glsopt[\idx{openrange}]{format} and
+\Idxpl{explicit-range} formed using \glsopt[\idx{openrange}]{format} and
\glsopt[\idx{closerange}]{format} or \glsopt[\idx{openrange}\meta{csname}]{format} and
\glsopt[\idx{closerange}\meta{csname}]{format} (where \meta{csname} matches and is a
text-block command without the initial backslash) in the optional
argument of commands like \ics{gls} or \ics{glsadd} are encapsulated within
-the argument of \gls{bibglsrange}. By default this simply does its
-argument. This command is not used with ranges that are formed by collating
-consecutive \glspl{location}.
+the argument of \gls{bibglsrange}. By default, this simply does its
+argument. This command is not used with \idxpl{implicit-range} that
+are formed by collating consecutive \glspl{location} or when
+\csopt[true]{merge-ranges} is used.
\cssection{bibglsinterloper}
\formatdef{bibglsinterloper}
-If an explicit range conflicts with a record, a warning will be
-issued and the conflicting record will be shifted to the front
-of the range inside the argument of \gls{bibglsinterloper}.
+If an \idxpl{explicit-range} conflicts with a record, a warning will be
+issued and the conflicting record (the \idx{interloper}) will be shifted to the front
+of the \idx{range} inside the argument of \gls{bibglsinterloper}.
The default definition just does \meta{location}\gls!{bibglsdelimN}
so that it fits neatly into the list.
-For example, suppose on page~4 of my document I start a range with:
+For example, suppose on page~4 of my document I start a \idx{range} with:
\begin{codeenv*}
\cs{glsadd}\oarg{\glsaddopt[\idx{openrange}]{format}}\marg{sample}
\end{codeenv*}
@@ -19074,21 +19145,22 @@ and end it on page~9 with:
\begin{codeenv*}
\cs{glsadd}\oarg{\glsaddopt[\idx{closerange}]{format}}\marg{sample}
\end{codeenv*}
-This forms an explicit range, but let's suppose on page~6 I
+This forms an \idx{explicit-range}, but let's suppose on page~6 I
have:
\begin{codeenv}
\cs{gls}\oarg{\glsopt[\encap{hyperbf}]{format}}\marg{sample}
\end{codeenv}
-This record conflicts with the explicit range (which doesn't include
+This record conflicts with the \idx{explicit-range} (which doesn't include
\encap{hyperbf} in the format). This causes a warning and
the conflicting entry will be moved before the start of the
-explicit range resulting in \textbf{6}, 4--9.
+\idx{explicit-range} resulting in \textbf{6}, 4--9.
-Note that implicit ranges can't be formed from interlopers (nor can
-implicit ranges be merged with explicit ones),
+Note that \idxpl{implicit-range} can't be formed from \idxpl{interloper} (nor can
+\idxpl{implicit-range} be merged with explicit ones with the default
+\csopt[false]{merge-ranges}),
so if \code{\cs{gls}\oarg{\glsopt[\encap{hyperbf}]{format}}\marg{sample}}
also occurs on pages~7 and~8 then the result will be \textbf{6}, \textbf{7},
-\textbf{8}, 4--9. Either remove the explicit range or
+\textbf{8}, 4--9. Either remove the \idx{explicit-range} or
remove the conflicting entries. (Alternatively, redefine
\gls{bibglsinterloper} to ignore its argument, which will
discard the conflicting entries.)
@@ -20708,12 +20780,16 @@ This command is only provided if \longarg{replace-quotes} is used.
\formatdef{bibglsuppercase}
Converts \meta{text} to \idx{uppercase}. This just uses
-\ics{MakeTextUppercase} by default.
+\ics{glsuppercase} (if \sty{glossaries} v4.50+,
+\sty{glossaries-extra} v1.49+ and \sty{mfirstuc} v2.08+)
+or \ics{MakeTextUppercase} by default.
\cssection{bibglslowercase}
\formatdef{bibglslowercase}
Converts \meta{text} to \idx{lowercase}. This just uses
+\ics{glslowercase} (if \sty{glossaries} v4.50+,
+\sty{glossaries-extra} v1.49+ and \sty{mfirstuc} v2.08+)
\ics{MakeTextLowercase} by default.
\cssection{bibglstitlecase}
@@ -24532,14 +24608,14 @@ The tagging format is governed by \ics{glsxtrtagfont} which
underlines its argument by default. I've redefined it to also
convert the letter to \idx{uppercase}:
\begin{codeenv}
-\cs{renewcommand}*\marg{\cs{glsxtrtagfont}}[1]\marg{\ics{underline}\marg{\cs{MakeTextUppercase}\marg{\idx{param}1}}}
+\cs{renewcommand}*\marg{\cs{glsxtrtagfont}}[1]\marg{\ics{underline}\marg{\cs{glsuppercase}\marg{\idx{param}1}}}
\end{codeenv}
Note that in the \code{mathml} case, the first tag consists of more
than one letter:
\begin{codeenv}
\field{long}=\marg{\cmd{abbrvtag}\marg{m\cs{NoCaseChange}\marg{ath}}ematical }\idx{stringconcat}markuplang
\end{codeenv}
-Here \ics{NoCaseChange} prevents \ics{MakeTextUppercase}
+Here \ics{NoCaseChange} prevents \ics{glsuppercase}
from applying the case change.
The default \csopt{selection} criteria includes entries that have