summaryrefslogtreecommitdiff
path: root/support
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2020-07-12 03:02:30 +0000
committerNorbert Preining <norbert@preining.info>2020-07-12 03:02:30 +0000
commit145ca8eeaa26583fb8cf216fc5a079f3d65260e2 (patch)
treeb83a4fcf8a50b58b62d94c3efb6d8720309bd0ab /support
parent9f9f8877a616fec845b82f43c991811cb167c35f (diff)
CTAN sync 202007120302
Diffstat (limited to 'support')
-rw-r--r--support/bib2gls/CHANGES22
-rw-r--r--support/bib2gls/bib2gls-begin.pdfbin726545 -> 726550 bytes
-rw-r--r--support/bib2gls/bib2gls-en.xml3
-rw-r--r--support/bib2gls/bib2gls.pdfbin4692418 -> 4707340 bytes
-rw-r--r--support/bib2gls/examples/sample-authors.pdfbin49018 -> 49018 bytes
-rw-r--r--support/bib2gls/examples/sample-bacteria.pdfbin50469 -> 50469 bytes
-rw-r--r--support/bib2gls/examples/sample-chemical.pdfbin50259 -> 50259 bytes
-rw-r--r--support/bib2gls/examples/sample-citations.pdfbin47253 -> 47253 bytes
-rw-r--r--support/bib2gls/examples/sample-constants.pdfbin89393 -> 89393 bytes
-rw-r--r--support/bib2gls/examples/sample-hierarchical.pdfbin49667 -> 49667 bytes
-rw-r--r--support/bib2gls/examples/sample-markuplanguages.pdfbin56336 -> 56336 bytes
-rw-r--r--support/bib2gls/examples/sample-maths.pdfbin110937 -> 110937 bytes
-rw-r--r--support/bib2gls/examples/sample-media.pdfbin160849 -> 160849 bytes
-rw-r--r--support/bib2gls/examples/sample-msymbols.pdfbin103831 -> 103831 bytes
-rw-r--r--support/bib2gls/examples/sample-multi1.pdfbin243161 -> 243176 bytes
-rw-r--r--support/bib2gls/examples/sample-multi2.pdfbin318047 -> 318047 bytes
-rw-r--r--support/bib2gls/examples/sample-nested.pdfbin49676 -> 49676 bytes
-rw-r--r--support/bib2gls/examples/sample-people.pdfbin47754 -> 47754 bytes
-rw-r--r--support/bib2gls/examples/sample-textsymbols.pdfbin69804 -> 69804 bytes
-rw-r--r--support/bib2gls/examples/sample-textsymbols2.pdfbin67011 -> 67011 bytes
-rw-r--r--support/bib2gls/examples/sample-units1.pdfbin53015 -> 53015 bytes
-rw-r--r--support/bib2gls/examples/sample-units2.pdfbin54758 -> 54758 bytes
-rw-r--r--support/bib2gls/examples/sample-units3.pdfbin41145 -> 41130 bytes
-rw-r--r--support/bib2gls/examples/sample-usergroups.pdfbin23840 -> 23838 bytes
-rw-r--r--support/bib2gls/src/bib2gls.bib50
-rw-r--r--support/bib2gls/src/bib2gls.tex183
26 files changed, 241 insertions, 17 deletions
diff --git a/support/bib2gls/CHANGES b/support/bib2gls/CHANGES
index bab4eb114f..78da3cb379 100644
--- a/support/bib2gls/CHANGES
+++ b/support/bib2gls/CHANGES
@@ -1,3 +1,25 @@
+v2.7 (2020-07-11):
+
+ * save-original-entrytype option now allows the name of a field
+ as the value (making it consistent with the save-original-id
+ option).
+
+ * save-original-id option now has a check to disallow special
+ internal fields (instead of silently ignoring the setting).
+
+ * replicate-fields option will now allow unknown fields (but not
+ special internal fields) in the targets and will save them using
+ \GlsXtrSetField.
+
+ * new options:
+
+ save-original-id-action
+ save-original-entrytype-action
+ hex-unicode-fields
+
+ * Bug fix: Added check for null in getSortFallbackContents
+ (to avoid NullPointerException)
+
v2.6 (2020-07-09):
* Fixed bug where getSortFallbackValue returns string "null"
diff --git a/support/bib2gls/bib2gls-begin.pdf b/support/bib2gls/bib2gls-begin.pdf
index 0bff6cd798..df6e596b1c 100644
--- a/support/bib2gls/bib2gls-begin.pdf
+++ b/support/bib2gls/bib2gls-begin.pdf
Binary files differ
diff --git a/support/bib2gls/bib2gls-en.xml b/support/bib2gls/bib2gls-en.xml
index 78436b5ad6..978a6507b6 100644
--- a/support/bib2gls/bib2gls-en.xml
+++ b/support/bib2gls/bib2gls-en.xml
@@ -187,6 +187,7 @@ See the manual for further details.</entry>
<entry key="message.checking.crossrefs">Checking cross-references for: {0}</entry>
<entry key="message.custom.dep.found">Entry {0}: found custom ''{1}'' dependency ({2}): {3}</entry>
<entry key="message.field.not.set">Field {0} not set.</entry>
+<entry key="message.added.user.field">Adding internal user field: {0}</entry>
<entry key="message.dual.dep">Dual found: {0} (primary {1})</entry>
<entry key="message.added.alias.dep">Adding alias {0} as dependency for {1}</entry>
<entry key="message.added.dep">Added dependent: {0}</entry>
@@ -315,6 +316,8 @@ Defaulting to: {0}.
<entry key="message.append.prefix.cs.nospace">Not appending anything for prefix field ''{0}'' (ends with exception control sequence \{1})</entry>
<entry key="message.append.prefix.no.excp">Appending {0} for prefix field ''{1}'' (''{2}'' doesn''t fit exception rules)</entry>
<entry key="message.append.prefix.nbsp.match">Append nbsp for prefix field ''{0}'': matched ''{1}'' in ''{2}'' (pattern ''{3}'')</entry>
+<entry key="message.no.group.id">{0}: No group ID for entry {1}</entry>
+<entry key="message.no.group.found">{0}: No group found for {1}</entry>
<entry key="tag.page">Page</entry>
<entry key="tag.pages">Pages</entry>
diff --git a/support/bib2gls/bib2gls.pdf b/support/bib2gls/bib2gls.pdf
index 81d1f640d3..c0d7b2843f 100644
--- a/support/bib2gls/bib2gls.pdf
+++ b/support/bib2gls/bib2gls.pdf
Binary files differ
diff --git a/support/bib2gls/examples/sample-authors.pdf b/support/bib2gls/examples/sample-authors.pdf
index dc0ef29511..d40ca8cf46 100644
--- a/support/bib2gls/examples/sample-authors.pdf
+++ b/support/bib2gls/examples/sample-authors.pdf
Binary files differ
diff --git a/support/bib2gls/examples/sample-bacteria.pdf b/support/bib2gls/examples/sample-bacteria.pdf
index e6f0b63dc3..ad8ff4bda3 100644
--- a/support/bib2gls/examples/sample-bacteria.pdf
+++ b/support/bib2gls/examples/sample-bacteria.pdf
Binary files differ
diff --git a/support/bib2gls/examples/sample-chemical.pdf b/support/bib2gls/examples/sample-chemical.pdf
index ab113353cd..918483c6b8 100644
--- a/support/bib2gls/examples/sample-chemical.pdf
+++ b/support/bib2gls/examples/sample-chemical.pdf
Binary files differ
diff --git a/support/bib2gls/examples/sample-citations.pdf b/support/bib2gls/examples/sample-citations.pdf
index 66b7ec4e15..c94eb54f6e 100644
--- a/support/bib2gls/examples/sample-citations.pdf
+++ b/support/bib2gls/examples/sample-citations.pdf
Binary files differ
diff --git a/support/bib2gls/examples/sample-constants.pdf b/support/bib2gls/examples/sample-constants.pdf
index 89b398bb4c..92daecdfde 100644
--- a/support/bib2gls/examples/sample-constants.pdf
+++ b/support/bib2gls/examples/sample-constants.pdf
Binary files differ
diff --git a/support/bib2gls/examples/sample-hierarchical.pdf b/support/bib2gls/examples/sample-hierarchical.pdf
index 6c0373971b..c8deb3f5b3 100644
--- a/support/bib2gls/examples/sample-hierarchical.pdf
+++ b/support/bib2gls/examples/sample-hierarchical.pdf
Binary files differ
diff --git a/support/bib2gls/examples/sample-markuplanguages.pdf b/support/bib2gls/examples/sample-markuplanguages.pdf
index 0811c58c4c..d93796579a 100644
--- a/support/bib2gls/examples/sample-markuplanguages.pdf
+++ b/support/bib2gls/examples/sample-markuplanguages.pdf
Binary files differ
diff --git a/support/bib2gls/examples/sample-maths.pdf b/support/bib2gls/examples/sample-maths.pdf
index d6879584f1..2f9fedbb6a 100644
--- a/support/bib2gls/examples/sample-maths.pdf
+++ b/support/bib2gls/examples/sample-maths.pdf
Binary files differ
diff --git a/support/bib2gls/examples/sample-media.pdf b/support/bib2gls/examples/sample-media.pdf
index 94194920f6..a28a071a60 100644
--- a/support/bib2gls/examples/sample-media.pdf
+++ b/support/bib2gls/examples/sample-media.pdf
Binary files differ
diff --git a/support/bib2gls/examples/sample-msymbols.pdf b/support/bib2gls/examples/sample-msymbols.pdf
index 8b2b683693..bf2430cc1e 100644
--- a/support/bib2gls/examples/sample-msymbols.pdf
+++ b/support/bib2gls/examples/sample-msymbols.pdf
Binary files differ
diff --git a/support/bib2gls/examples/sample-multi1.pdf b/support/bib2gls/examples/sample-multi1.pdf
index 67c2a6cd63..439094626b 100644
--- a/support/bib2gls/examples/sample-multi1.pdf
+++ b/support/bib2gls/examples/sample-multi1.pdf
Binary files differ
diff --git a/support/bib2gls/examples/sample-multi2.pdf b/support/bib2gls/examples/sample-multi2.pdf
index 4a6a84d894..3548567094 100644
--- a/support/bib2gls/examples/sample-multi2.pdf
+++ b/support/bib2gls/examples/sample-multi2.pdf
Binary files differ
diff --git a/support/bib2gls/examples/sample-nested.pdf b/support/bib2gls/examples/sample-nested.pdf
index 405ec1b8b6..f61387651f 100644
--- a/support/bib2gls/examples/sample-nested.pdf
+++ b/support/bib2gls/examples/sample-nested.pdf
Binary files differ
diff --git a/support/bib2gls/examples/sample-people.pdf b/support/bib2gls/examples/sample-people.pdf
index d784148b4d..a9e74241a2 100644
--- a/support/bib2gls/examples/sample-people.pdf
+++ b/support/bib2gls/examples/sample-people.pdf
Binary files differ
diff --git a/support/bib2gls/examples/sample-textsymbols.pdf b/support/bib2gls/examples/sample-textsymbols.pdf
index e25b6997d3..4f4af52d4b 100644
--- a/support/bib2gls/examples/sample-textsymbols.pdf
+++ b/support/bib2gls/examples/sample-textsymbols.pdf
Binary files differ
diff --git a/support/bib2gls/examples/sample-textsymbols2.pdf b/support/bib2gls/examples/sample-textsymbols2.pdf
index 5c124b147d..ba846037df 100644
--- a/support/bib2gls/examples/sample-textsymbols2.pdf
+++ b/support/bib2gls/examples/sample-textsymbols2.pdf
Binary files differ
diff --git a/support/bib2gls/examples/sample-units1.pdf b/support/bib2gls/examples/sample-units1.pdf
index a85043b795..fec5a07613 100644
--- a/support/bib2gls/examples/sample-units1.pdf
+++ b/support/bib2gls/examples/sample-units1.pdf
Binary files differ
diff --git a/support/bib2gls/examples/sample-units2.pdf b/support/bib2gls/examples/sample-units2.pdf
index bc46c32914..9f94f62e3d 100644
--- a/support/bib2gls/examples/sample-units2.pdf
+++ b/support/bib2gls/examples/sample-units2.pdf
Binary files differ
diff --git a/support/bib2gls/examples/sample-units3.pdf b/support/bib2gls/examples/sample-units3.pdf
index 6823e0de86..15947b9d50 100644
--- a/support/bib2gls/examples/sample-units3.pdf
+++ b/support/bib2gls/examples/sample-units3.pdf
Binary files differ
diff --git a/support/bib2gls/examples/sample-usergroups.pdf b/support/bib2gls/examples/sample-usergroups.pdf
index dcdd4f6b72..c946b1758f 100644
--- a/support/bib2gls/examples/sample-usergroups.pdf
+++ b/support/bib2gls/examples/sample-usergroups.pdf
Binary files differ
diff --git a/support/bib2gls/src/bib2gls.bib b/support/bib2gls/src/bib2gls.bib
index cd69e4802c..6f4f6e5c4f 100644
--- a/support/bib2gls/src/bib2gls.bib
+++ b/support/bib2gls/src/bib2gls.bib
@@ -1483,6 +1483,15 @@ name},
category={command}
}
+@bibglscommand{bibglshexunicodechar,
+ name={\csfmt{bib\-gls\-hex\-unicode\-char}},
+ user1={\margm{hex}},
+ description={produces the character with the given hexadecimal code},
+ topics={charcommands},
+ note={\bibgls\texparserdefnote},
+ category={command}
+}
+
@bibglscommand{bibglsprimaryprefixlabel,
name={\csfmt{bib\-gls\-primary\-prefix\-label}},
user1={\margm{prefix}},
@@ -2287,6 +2296,13 @@ field\dhyphen locale}},
parent={resourceoptions}
}
+@resourceoption{opt.save-original-id-action,
+ name={\csoptfmt{save\dhyphen original\dhyphen id\dhyphen action}},
+ user1={\meta{value}},
+ category={resourceoption},
+ parent={resourceoptions}
+}
+
@resourceoption{opt.short-case-change,
name={\csoptfmt{short\dhyphen case\dhyphen change}},
user1={\meta{value}},
@@ -2406,6 +2422,13 @@ field\dhyphen locale}},
parent={resourceoptions}
}
+@resourceoption{opt.hex-unicode-fields,
+ name={\csoptfmt{hex\dhyphen unicode\dhyphen fields}},
+ user1={\margm{list}},
+ category={resourceoption},
+ parent={resourceoptions}
+}
+
@resourceoption{opt.post-description-dot,
name={\csoptfmt{post\dhyphen description\dhyphen dot}},
user1={\meta{value}},
@@ -2478,7 +2501,14 @@ field\dhyphen locale}},
@resourceoption{opt.save-original-entrytype,
name={\csoptfmt{save\dhyphen original\dhyphen entrytype}},
- user1={\meta{boolean}},
+ user1={\meta{value}},
+ category={resourceoption},
+ parent={resourceoptions}
+}
+
+@resourceoption{opt.save-original-entrytype-action,
+ name={\csoptfmt{save\dhyphen original\dhyphen entrytype\dhyphen action}},
+ user1={\meta{value}},
category={resourceoption},
parent={resourceoptions}
}
@@ -8368,6 +8398,14 @@ field.},
parent={internalfields}
}
+@field{field.originalid,
+ name={\fieldfmt{original\-id}},
+ description={The original label as given in the \ext{bib} file.},
+ note={internal field set by \appfmt{bib2gls}},
+ category={internalfield},
+ parent={internalfields}
+}
+
@field{field.primarylocations,
name={\fieldfmt{primarylocations}},
description={Stores the locations that use one of the designated
@@ -15573,6 +15611,16 @@ number is hexadecimal)},
category={command}
}
+@command{cs.symbol,
+ name={\csfmt{symbol}},
+ user1={\margm{number}},
+ description={accesses the character identified by \meta{number}
+(use \code{\csfmt{symbol}\marg{\idx{doublequotecharhex}\meta{hex}}} if the
+number is hexadecimal)},
+ note={kernel command\texparserdefnote},
+ category={command}
+}
+
@command{number,
name={\csfmt{number}},
user1={\meta{value}},
diff --git a/support/bib2gls/src/bib2gls.tex b/support/bib2gls/src/bib2gls.tex
index aadbf0c5c7..30b252fd4a 100644
--- a/support/bib2gls/src/bib2gls.tex
+++ b/support/bib2gls/src/bib2gls.tex
@@ -43,6 +43,7 @@
\usepackage{tcolorbox}
\usepackage{datetime2}
\usepackage{listings}
+\usepackage{scrhack}
\usepackage[hidelinks]{hyperref}
\usepackage{cleveref}
\usepackage[% v1.21+
@@ -1994,6 +1995,11 @@ the corresponding set of \ext{bib} files:
\begin{itemize}
\item field aliases are performed (\csopt{field-aliases});
+ \item known fields identified with \csopt{save-original-id} and
+ \csopt{save-original-entrytype} are set (internal fields that
+ don't have a corresponding key for use with \gls!{newglossaryentry} aren't
+ set until the \ext{glstex} file is written);
+
\item ignored fields (identified by \csopt{ignore-fields}) are
removed;
@@ -2061,6 +2067,9 @@ the corresponding set of \ext{bib} files:
\csopt{interpret-fields} are replaced with their interpreted
values;
+ \item any fields that have been identified with
+ \csopt{hex-unicode-fields} will have Unicode characters replaced;
+
\item check for \field{nonumberlist}.
\end{itemize}
\item The dual version (if appropriate) is created.
@@ -8841,15 +8850,41 @@ cross-references.
\optsection[\subsubsection]{save-original-id}
-The \meta{value} may be either the keyword \code{false} or
-the name of an internal field in which to store the entry's original
+The \meta{value} may be the keywords \code{false} or \code{true} or
+the name of a field in which to store the entry's original
label (as given in the \ext{bib} file). The default setting is
-\csopt[false]{save-original-id}. If \meta{value} is omitted,
-\csopt[originalid]{save-original-id} is assumed.
-
-If \meta{value} is a known field, it will be set after the field
-aliases, otherwise it will simply be added to the \ext{glstex} file
-using \ics{GlsXtrSetField} after the entry definition.
+\csopt[false]{save-original-id}. If \meta{value} is omitted or is the
+keyword \code{true}, then \field{originalid} is assumed.
+
+If \meta{value} has an associated key in \gls!{newglossaryentry}
+(for example, one provided with \cs{glsaddstoragekey}) it will be
+set after the field aliases, otherwise (for example,
+\field{originalid}) it will simply be added to the \ext{glstex} file
+using \ics{GlsXtrSetField} after the entry definition (which means
+the field can't be referenced in other resource options). This
+setting is governed by \csopt{save-original-id-action}.
+
+\optsection[\subsubsection]{save-original-id-action}
+
+This option determines whether or not \csopt{save-original-id}
+should save the original entry label. No action is performed when
+\csopt[false]{save-original-id} otherwise the action is determined
+by \meta{value} which may be one of the following keywords:
+\begin{itemize}
+\item \code{always}: always save the original label (default);
+\item \code{no override}: don't override a field that's already been
+set;
+\item \code{changed override} or \code{changed} or \code{diff}:
+only save the original label if it's different from the final label;
+\item \code{changed no override}:
+only save the original label if it's different from the final label
+and the specified field hasn't been set.
+\end{itemize}
+The \qt{no override} options make no difference if the given field
+has no associated key in \gls!{newglossaryentry} (such as
+\field{originalid}). For known fields, bear in mind that the field
+will be set after field aliasing but before other options, such as
+\csopt{ignore-fields}.
\optsection[\subsubsection]{dependency-fields}
@@ -9049,6 +9084,11 @@ entry]{category} refers to the \emph{target} entry type whereas
\csopt[same as original entry]{category} refers to the
\emph{original} entry type given in the \ext{bib} file. In both
cases, the value is converted to \idx!{lowercase} to ensure consistency.
+An alternative is to use \csopt[category]{save-original-entrytype}.
+When combined with \csopt[changed]{save-original-entrytype-action}
+it's then possible to only set the \field{category} to the original
+entry type for aliased entries and leave it unmodified for unaliased
+entries.
For example, if the \ext{bib} file contains:
\begin{codeenv}
@@ -9137,8 +9177,17 @@ which may be inappropriate.
When used with \csopt{entry-type-aliases}, the option \csopt[same as
entry]{type} refers to the \emph{target} entry type and \csopt[same
as original entry]{type} refers to the \emph{original} entry type
-given in the \ext{bib} file. It's not possible to have both
+given in the \ext{bib} file.
+An alternative is to use \csopt[type]{save-original-entrytype}.
+When combined with \csopt[changed]{save-original-entrytype-action}
+it's then possible to only set the \field{type} to the original
+entry type for aliased entries and leave it unmodified for unaliased
+entries.
+
+\begin{important}
+It's not possible to have both
\csopt[same as type]{category} and \csopt[same as category]{type}.
+\end{important}
Note that this setting only changes the \field{type} field for
primary entries. Use \csopt{dual-type} for dual entries.
@@ -9228,6 +9277,15 @@ but can't be the \field{sort} field.
The \csopt{ignore-fields} key indicates that you want \bibgls\ to
skip the fields listed in the supplied comma-separated \meta{list} of field
labels. Remember that unrecognised fields will always be skipped.
+However, an unrecognised field can still be referenced with some
+options (such as \csopt{replicate-fields}) whereas any field
+excluded with \csopt{ignore-fields} will be discarded and can't be
+referenced.
+
+This setting is always implemented after \csopt{field-aliases} (see
+\sectionref{sec:resourcesets}). If a field has been aliased then the
+original field name is no longer present and so ignoring it will
+have no effect.
For example, suppose my \ext{bib} file contains:
\begin{codeenv}
@@ -9301,13 +9359,18 @@ but may be empty, which indicates that the setting is switched off.
This option copies the contents
of \meta{field1} to \meta{field2}, \meta{field3}, \ldots\
-(only if the target field isn't already set with
+(but only if the target field isn't already set with
\csopt[false]{replicate-override}). This action is
performed after \csopt{ignore-fields} (see
\sectionref{sec:resourcesets}). If the source field is missing, the
\csopt{replicate-missing-field-action} setting determines the
action.
+If the target field doesn't have an associated key recognised by
+\gls{newglossaryentry} then the value will be saved using
+\cs{GlsXtrSetField}. Special internal fields aren't permitted as
+either source or target fields.
+
For example, suppose \filefmt{people.bib} contains:
\begin{codeenv}
\atentry{entry}\marg{alexander,
@@ -9457,11 +9520,45 @@ the \field{see} field. The default setting is \csopt[false]{copy-alias-to-see}.
\optsection[\subsubsection]{save-original-entrytype}
-If this is set to \optfmt{true}, the original entry type
-(without the leading \idx{atchar}) is stored in the
-\field{originalentrytype} field. If no entry aliasing has been
-applied (with \csopt{entry-type-aliases}) the field will be set to
-the actual entry type.
+The \meta{value} may be the keywords \code{false} or \code{true} or
+the name of a field in which to store the original entry type (as
+given in the \ext{bib} file but without the leading \idx{atchar} and
+converted to \idx!{lowercase}). The setting is
+\csopt[false]{save-original-entrytype}. If \meta{value} is omitted or the
+keyword \code{true}, then \csopt[originalentrytype]{save-original-entrytype}
+If \meta{value} has an associated key in \gls!{newglossaryentry}
+(for example, one provided with \cs{glsaddstoragekey}) it will be
+set after the field aliases, otherwise (for example,
+\field{originalentrytype}) it will simply be added to the \ext{glstex} file
+using \ics{GlsXtrSetField} after the entry definition (which means
+the field can't be referenced in other resource options). This
+setting is governed by \csopt{save-original-entrytype-action}.
+
+\optsection[\subsubsection]{save-original-entrytype-action}
+
+This option determines whether or not \csopt{save-original-entrytype}
+should save the original entry type. No action is performed when
+\csopt[false]{save-original-entrytype} otherwise the action is determined
+by \meta{value} which may be one of the following keywords:
+\begin{itemize}
+\item \code{always}: always save the original entry type (default);
+\item \code{no override}: don't override a field that's already been
+set;
+\item \code{changed override} or \code{changed} or \code{diff}:
+only save the original entry type if it's different from the final
+entry type;
+\item \code{changed no override}:
+only save the original entry type if it's different from the final
+entry type and the specified field hasn't been set.
+\end{itemize}
+The \qt{no override} options make no difference if the given field
+is unknown (such as \field{originalentrytype}). For known fields, bear in
+mind that the field will be set after field aliasing but before
+other options, such as \csopt{ignore-fields}.
+
+The \qt{changed} options ignore case. For example, if the \ext{bib}
+file defined an entry with \atentryfmt{INDEX} then both the original
+and final entry type will be \code{index}.
\subsection{Field Adjustments}
\label{sec:fieldmods}
@@ -10200,6 +10297,18 @@ bookmarks by adjusting the definition of the custom command:
\marg{\cs{section}\oarg{Missing `\idx{param}1'}\marg{\cs{glsadd}\marg{\idx{param}1}}}%
}
\end{codeenv}
+With \pdfLaTeX\ and \sty{fontenc}, you will need
+\sty{hyperref}'s \styoptfmt{unicode} option:
+\begin{codeenv}
+\cs{usepackage}\oarg{\styoptfmt{unicode}}\marg{hyperref}
+\end{codeenv}
+If you still encounter problems with the Unicode characters not
+appearing in the PDF bookmarks, then try the
+\csopt{hex-unicode-fields} option. For example:
+\begin{codeenv}
+\csopt[pdfname]{hex-unicode-fields}
+\end{codeenv}
+This still requires \sty{hyperref}'s \styoptfmt{unicode} option.
\optsection[\subsubsection]{interpret-fields-action}
@@ -10216,6 +10325,27 @@ If a field value consists solely of commands that are unknown to the
interpreter, then the resulting value will end up empty. In this
case, it may be more appropriate to leave the field unchanged.
+\optsection[\subsubsection]{hex-unicode-fields}
+
+This option will convert any Unicode characters (outside of the
+Basic Latin set) that are found in the listed fields into
+\code{\gls{bibglshexunicodechar}\margm{hex-code}} where
+\meta{hex-code} is the hexadecimal character code.
+
+The \meta{list} should be a comma-separated list of field names.
+This action is performed after \csopt{interpret-fields}.
+
+If the field contents need to be added to the PDF bookmarks (as in
+the earlier example) then you need to make sure you use
+\sty{hyperref}'s \styoptfmt{unicode} option
+otherwise you'll get the warning:
+\begin{verbatim}
+Token not allowed in a PDF string (PDFDocEncoding):
+removing `\char'
+\end{verbatim}
+and the bookmarks will show \idx{doublequotecharhex}\meta{hex-code}
+instead of the Unicode character.
+
\optsection[\subsubsection]{date-time-fields}
This option indicates that the listed fields all contain
@@ -14295,7 +14425,7 @@ field concatenation (such as \csopt{entry-sort-fallback} but not
\csopt{missing-sort-fallback}).
Note that due to the way that the \keyvallist\ parser trims leading and
-trailing spaces, you can't simply do \csopt[\space]{field-concat-sep}
+trailing spaces, you can't simply do \csopt[~]{field-concat-sep}
to indicate a space character as the value will end up as an empty
string. You can instead do \csopt[\stringu20]{field-concat-sep} but
since this is the default value there shouldn't be much need for it.
@@ -15378,9 +15508,12 @@ significant character of the sort value. For example, the label
This option has no effect with \longarg{no-group} or if no sorting
is applied. Use \csopt{secondary-group-formation} for secondary
sorting and \csopt{dual-group-formation} for dual entries.
+
+\begin{important}
Settings other than the default can cause the groups to become
fragmented, so care is needed if you use this option.
See also \sectionref{sec:logicaldivisions}.
+\end{important}
\section{Secondary Glossary}
\label{sec:secondaryopts}
@@ -17499,6 +17632,24 @@ second argument is ignored.
\formatdef{bibglshrefunicode}
Expands to the second argument. The first argument is ignored.
+\cssection{bibglshexunicodechar}
+
+\formatdef{bibglshexunicodechar}
+This command is used by the \csopt{hex-unicode-fields} option when
+replacing any Unicode characters. The argument \meta{hex} is the hexadecimal
+character code. Note that the argument isn't preceded by the double-quote
+character~\idx{doublequotecharhex} (which is normally used to
+identify hexadecimal numbers in \LaTeX). Instead, the definition
+needs to insert this character, if appropriate.
+
+If \bibgls\ has detected that the \sty{hyperref} package has been
+loaded, it will provide a definition that may be used in PDF
+bookmarks provided that \sty{hyperref}'s \styoptfmt{unicode} option is
+set. Otherwise the command will simply do
+\code{\ics{cs.symbol}\marg{\idx{doublequotecharhex}\meta{hex}}}
+(which will require an appropriate font in order to render the
+symbol correctly).
+
\section{Letter Groups}
\label{sec:lettergroupdefs}