v4.0a (2024-12-15) Corrected distribution (missing files). v4.0 (2024-12-14) * bib2gls - added \INTERPRETNOREPL and \REPLACESPCHARS quarks - added action=provide - added new resource options: wordify-math-greek wordify-math-symbol ignored-type - added support for \BibGlsOptions and \IfNotBibGls (provided by glossaries-extra v1.54+) - added switch --[no-]datatool-sort-markers - bug fix: indexplural not setting text field if missing, which results in the text field defaulting to the plural form. - bug fix issue #29 "Version 3.8 and 3.9 fail to find aux files in subdirectories of build directory" https://github.com/nlct/bib2gls/issues/29 - bug fix: complex conditional relations <> <= and >= incorrectly parsing quoted rhs - bash script no longer sets java.locale.providers when running the jar file (not necessary for Java 9 onwards) * convertgls2bib - added support for \loadglsentries * Added datatool2bib command-line conversion tool. v3.9 (2024-01-30) * bib2gls - new command line switch: --[no-]date-in-header - allow \u in assign-fields - bug fix: NullPointerException if entry referenced before bibData initialised v3.8 (2023-10-13) * bib2gls - bug fix: #27 Version 3.7 does not work correctly with subdirectories for auxiliary files https://github.com/nlct/bib2gls/issues/27 v3.7 (2023-09-29) * bib2gls - \bibglshypergroup no-op only if glossaries version below 4.53 and glossaries-extra version below 1.53 (update glossaries and glossaries-extra to enable) v3.6 (2023-09-04) * bib2gls - added check for self-referencing alias - added check for encoding in aux file not matching requested or default TeX encoding - allow process to retry if encoding error occurs in aux file - bug fix: --default-encoding option not picked up in all instances where the default is required v3.5 (2023-08-24) * bib2gls - new command line switches: --default-encoding --log-encoding --debug-mode - extra command supported by the interpreter (but not in the document): \bibglspaddigits v3.4 (2023-06-29) * bib2gls - bug fix: NullPointerException occurs if @compoundset found in bib file but no \@glsxtr@mglsrefs found in aux file. https://github.com/nlct/bib2gls/issues/23 v3.3 (2023-04-24): * bib2gls - New resource options: assign-fields assign-override assign-missing-field-action flatten-lonely-condition flatten-lonely-missing-field-action copy-to-glossary copy-to-glossary-missing-field-action abbreviation-text-fallback locale - default value of sort option is now sort=resource rather than sort=doc. If the locale option isn't set then sort=resource is equivalent to sort=doc. - Added support for bib2gls-extra-.xml files. - Bug fix: Removed already defined in other glstex file warning if action != define - Bug fix: if parent entry is a dependent of another entry not marked for removal don't flatten lonely child * convertgls2bib - Fixed infinite loop: at com.dickimawbooks.gls2bib.Gls2Bib.newcommand(Gls2Bib.java:419) at com.dickimawbooks.texparserlib.latex.LaTeXParserListener.newcommand(LaTeXParserListener.java:978) v3.2 (2022-11-24): * Added --[no-]obey-aux-catcode The default is --no-obey-aux-catcode, which ignores catcode changing commands found in the aux file. (Issue #22 https://github.com/nlct/bib2gls/issues/22) v3.1 (2022-11-05): * If new versions of glossaries.sty, mfirstuc.sty and glossaries-extra.sty are detected, \bibglsuppercase and \bibglslowercase will now have \glsuppercase and \glslowercase in their definition, instead of \MakeTextUppercase and \MakeTextLowercase * skip empty elements in src * added resource option merge-ranges * added support for \ifglsfieldvoid * bug fix: secondary sort type not included in group label * TeX parser library (texparserlib.jar) now has limited support for \NewDocumentCommand, \RenewDocumentCommand, \ProvideDocumentCommand and \DeclareDocumentCommand. v3.0 (2022-10-14): * support for \glsxtr@select@entry and \glsxtr@select@entry@nameref (new to glossaries-extra-bib2gls v1.49) * support for bibglsaux and \glsxtrsetbibglsaux (new to glossaries-extra.sty v1.49) * if mfirstuc v2.08+, glossaries v4.50+ and glossaries-extra v1.49+ detected, default mfirstuc protection settings will switch to --no-mfirstuc-protection --no-mfirstuc-math-protection * bug fix: case changing options aren't recognising commands identified with \glsxtrnewgls * added support for \glsxtridentifyglsfamily (glossaries-extra v1.49+) * new switch --record-count-rule (or -r) which may be used to determine whether or not certain types of records (such as ignored records) should be included in the record count. * new switch --replace-quotes * issue #15: loc-prefix and type leads to undefined \bibglslocprefix with multiple glossaries https://github.com/nlct/bib2gls/issues/15 This has led to new resource options: - loc-prefix-def - loc-suffix-def * added support for sub-groups (requires glossaries-extra v1.49+): - group-level * new merge small groups option: - merge-small-groups * new option to save root label: - save-root-ancestor * new option to split primary locations into counter groups: - primary-loc-counters (synonym: principal-loc-counters) * new options to skip break-at via pattern matching: - break-at-match - break-at-not-match - break-at-match-op - dual-break-at-match - dual-break-at-not-match - dual-break-at-match-op - secondary-break-at-match - secondary-break-at-not-match - secondary-break-at-match-op * new options to prune "see" and "seealso" fields: - prune-xr - prune-see-op - prune-see-match - prune-seealso-op - prune-seealso-match - prune-iterations * new save-locations values: - save-locations=see - save-locations=see not also - save-locations=alias only * bug fix: nameref records not merging for wrglossary counter v2.9 (2021-11-22): * Support for \multiglossaryentry (new to glossaries-extra v1.48) This has led to new resource options: - compound-dependent - compound-add-hierarchy - compound-has-records - compound-adjust-name - compound-write-defs - compound-options-global - compound-main-type - compound-other-type - compound-type-override * added -q and --quiet as synonyms for --silent * issue #14: bib2gls breaks hypergroup styles https://github.com/nlct/bib2gls/issues/14 v2.8 (2021-11-05): * Support for new features of mfirstuc v2.07: - sentence case (firstuc) and title case now recognise \MFUskippunc. (This should be used to skip leading punctuation.) - title case now recognises \MFUwordbreak. * new dual field 'dualdescription' * new selection option 'selected before' * new resource options: - save-from-alias - save-from-see - save-from-seealso - save-crossref-tail - save-definition-index - save-use-index - format-integer-fields - format-decimal-fields - secondary-match-action - secondary-match-op - secondary-match - secondary-not-match - encapsulate-sort - prefix-only-existing - save-principal-locations (synonym for save-primary-locations) - principal-location-formats (synonym for primary-location-formats) * issue #10: explicit ranges with identical start and end should collapse to a normal location https://github.com/nlct/bib2gls/issues/10 This has led to new switches: --collapse-same-location-range (default) --no-collapse-same-location-range * issue #12 Primary locations need to be retained not merged (save-primary-locations=remove) https://github.com/nlct/bib2gls/issues/12 This has led to new switches: --retain-formats --no-retain-formats * bug fix: @entry missing required name/description results in "null" saved in the field value. This has been changed to an empty string (but the warning about the missing field remains). * bug fix: selection=all doesn't show see and seealso lists in locations https://github.com/nlct/bib2gls/issues/9 * bug fix: integer sort method should cast to int https://github.com/nlct/bib2gls/issues/11 * bug fix: indexplural default name incorrect when parent field set https://github.com/nlct/bib2gls/issues/13 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" instead of actual null. v2.5 (2020-05-30): * --version switch now also shows version details for bundled texparserlib.jar * Bug fix (texparserlib.jar): corrected \else part of conditionals v2.4 (2020-05-27): * Bug fix (issue in TeX parser library used by bib2gls) https://github.com/nlct/texparser/issues/3 v2.3 (2020-03-23): * New sort methods: recordcount and recordcount-reverse (both require --record-count). * Resource option 'selection' now also allows the values 'deps but not recorded' and 'ancestors but not recorded' * New resource options: custom-sort-fallbacks field-concat-sep * The sort fallback resource options custom-sort-fallbacks, entry-sort-fallback, symbol-sort-fallback, abbreviation-sort-fallback and bibtexentry-sort-fallback now allow 'id' or 'original id' as values or values that are field concatenations. * New command line switches: --provide-glossaries --no-provide-glossaries v2.2 (2020-03-16): * Bug fix (texparserlib.jar): - "Files located in local texmf path are not determined correctly" issue #3 https://github.com/nlct/bib2gls/issues/3 v2.1 (2020-02-28): * Only trigger error exit code for bib parser exceptions (just warn for interpreter and aux parser exceptions). * Bug fix (texparserlib.jar): - "Fails to parse \@writefile{lot}{\egroup }" issue #2 https://github.com/nlct/texparser/issues/2 v2.0 (2020-02-12): * New command line options: --trim-only-fields --trim-except-fields * New resource option: interpret-fields-action prefix-fields append-prefix-field append-prefix-field-cs append-prefix-field-exceptions append-prefix-field-cs-exceptions append-prefix-field-nbsp-match save-sibling-count * New values for 'identical-sort-action' option: 'def' and 'use' * New value for 'selection' option: 'recorded and deps and see not also' * New internal fields: dualprefix, dualprefixplural, dualprefixfirst, dualprefixfirstplural, siblingcount, siblinglist * Dual prefix mappings now added if the prefix field is defined (provided by glosssaries-prefix.sty). * Interpreter now supports \nobreakspace and it obeys --break-space and --no-break-space in the same way as ~ * Added support for nonumberlist * Bug fixes: - corrected interpret-fields - corrected selection={recorded and deps and see} - corrected plural for entries where the name is inherited from the parent * convertgls2bib: - new command line options: --ignore-type --no-ignore-type --split-on-type (-p) --no-split-on-type --ignore-category --no-ignore-category --split-on-category (-c) --no-split-on-category --ignore-fields (-f) --overwrite --no-overwrite --preamble-only (-p) --no-preamble-only --index-conversion (-i) --no-index-conversion --absorb-see --no-absorb-see - added check for see=[\alsoname] in addition to see=[\seealsoname] v1.9 (2019-04-09): * manual: - added section "Logical Divisions: type vs group vs parent" * new resource option: compact-ranges progenitor-type adopted-parent-field unknown-entry-alias save-original-entrytype field-case-change no-case-change-cs encapsulate-fields encapsulate-fields* interpret-fields replicate-missing-field-action entry-sort-fallback * new entry types: @progenitor @spawnindex @spawnindexplural @spawnentry @spawnsymbol @spawnnumber @spawnabbreviation @spawnacronym * New command line options: --warn-non-bib-fields --no-warn-non-bib-fields --warn-unknown-entry-types --no-warn-unknown-entry-types * The `type` option (and similar options that assign the `type` field) now accepts the special setting "same as parent". * The `group` option no longer requires the --group switch. * The `match` and `not-match` options now accept `original entrytype`. v1.8 (2018-11-30): * new resource options: save-primary-locations primary-location-formats long-case-change dual-long-case-change word-boundaries sort-label-list dependency-fields * added support for the new glossaries-extra package option record=nameref (introduced to glossaries-extra v1.37). * normal locations are now written to the location field as \glsnoidxdisplayloc{}{}{}{} instead of explicitly using \setentrycounter[]{}\{} This matches the way the record is added to the loclist field and makes it easier to adjust the record formatting. * bib2gls now always parses the .log file even if the interpreter setting is off. (It still needs to know version details and whether hyperlinks and Unicode are supported by the document.) * Underscores now allowed in bib labels. * Hooks added to pick up label prefixes if needed: \bibglsprimaryprefixlabel \bibglsdualprefixlabel \bibglstertiaryprefixlabel \bibglsexternalprefixlabel * bug fix: corrected default sort=doc * bug fix: corrected letternumber-upperlower and letternumber-lowerupper sort methods. * bug fix: corrected invalid datetime pattern that threw InvalidArgumentException * bug fix: https://github.com/nlct/bib2gls/issues/3 Files located in local texmf path are not determined correctly on Windows. (actual bug was in texparserlib.jar rather than bib2gls.jar) * \@glsnavhypertarget will now fallback on original definition (which requires an extra LaTeX call) if the type is unknown. * Renamed example file sample-languages.tex to sample-markuplanguages.tex v1.7 (2018-08-18): * added support for multiple supplementary sources (requires at least glossaries-extra v1.36) v1.6 (2018-07-07): * corrected some of the latin to Java encoding names * added check for \@input in .aux file v1.5 (2018-05-09): * added introductory guide (bib2gls-begin.pdf) * rearranged some of the resource option sections in the main user manual (bib2gls.pdf) * new .glstex helper command: \bibglssetlastgrouptitle * added @indexplural and associated .glstex helper command \bibglsnewindexplural * added resource options: - sort-replace - dual-sort-replace - secondary-sort-replace * save-child-count now also creates the childlist internal field. * bug fixes: - corrected encoding setting (bib2gls and convertgls2bib) - corrected \ (backslash space) eol causing unwanted extra eol - corrected sort fallback - labelify-replace now recognises \$ in the replacement part as a reference to a captured group - improved error handling for invalid entry IDs - save-child-count was partially switching on flatten-lonely - corrected name-case-change for @index v1.4 (2018-04-09): * added switches: --list-known-packages --custom-packages --cite-as-record --no-cite-as-record --merge-wrglossary-records --no-merge-wrglossary-records * added resource options: - missing-parents - missing-parent-category - bibtexentry-sort-fallback - save-index-counter * added extra keyword "same as original entry" to category and type assignments. * added new entry types: - @bibtexentry - @contributor v1.3 (2018-03-05): * bug fix: check for quoted path elements (spaces in file names) * bug fix: corrected category={same as base} * bug fix: corrected dual selection * New switch --ignore-packages (-k) v1.2 (2018-02-25): * New resource options: - group-formation - secondary-group-formation - dual-group-formation - labelify - labelify-list - labelify-replace * New command line switches: - --force-cross-resource-refs (-x) - --no-force-cross-resource-refs - --support-unicode-script - --no-support-unicode-script * Bug fix: replicate-fields now parsed correctly * Bug fix: corrected hierarchical sorting * Bug fix: fixed sort=none v1.1 (2017-11-25): * New resource options: - counter - dual-counter - name-case-change - description-case-change - not-match - identical-sort-action - dual-identical-sort-action - secondary-identical-sort-action - sort-suffix - sort-suffix-marker - date-sort-format - date-sort-locale - dual-date-sort-format - dual-date-sort-locale - secondary-date-sort-format - secondary-date-sort-locale - entry-type-aliases - tertiary-prefix - tertiary-type - tertiary-category - combine-dual-locations - abbreviation-sort-fallback - abbreviation-name-fallback - symbol-sort-fallback - match-action - save-loclist - action - copy-action-group-field - field-aliases - replicate-fields - post-description-dot - strip-trailing-nopost - write-preamble - bibtex-contributor-fields - contributor-order - check-end-punctuation - sort-number-pad - dual-sort-number-pad - secondary-sort-number-pad - sort-pad-plus - dual-sort-pad-plus - secondary-sort-pad-plus - sort-pad-minus - dual-sort-pad-minus - secondary-sort-pad-minus - cs-label-prefix - record-label-prefix - save-original-id - interpret-label-fields - strip-missing-parents - limit - copy-alias-to-see - replicate-override - date-time-fields - date-fields - time-fields - date-time-field-format - date-field-format - time-field-format - dual-date-time-field-format - dual-date-field-format - dual-time-field-format - date-time-field-locale - date-field-locale - time-field-locale - dual-date-time-field-locale - dual-date-field-locale - dual-time-field-locale - alias - primary-dual-dependency - duplicate-label-suffix - missing-sort-fallback - dual-missing-sort-fallback - secondary-missing-sort-fallback * Added 'same as base' as a keyword value of 'category', 'type', 'dual-category', 'dual-type', and 'supplemental-category' resource options. * New entry types: @dualindexentry, @dualindexsymbol, @dualindexnumber, @dualindexabbreviation, @tertiaryindexabbreviationentry * Case-changing options now also accept the values firstuc and firstuc-cs * New sort options: letter-upperlower, letter-upperlower-reverse, letter-lowerupper, letter-lowerupper-reverse, letternumber-case, letternumber-case-reverse, letternumber-nocase, letternumber-nocase-reverse, letternumber-lowerupper, letternumber-lowerupper-reverse, letternumber-upperlower, letternumber-upperlower-reverse, numeric, numeric-reverse, currency, currency-reverse, percent, percent-reverse, numberformat, numberformat-reverse, date, date-reverse, time, time-reverse, datetime, datetime-reverse (and associated resource options). * fixed bug in hierarchical entries with label prefixes. * fixed bugs in secondary sorting. * new switches: --packages (-p), --expand-fields, --no-expand-fields, --record-count (-c), --no-record-count, --record-count-unit (-n), --no-record-count-unit, --no-break-space, --break-space * fixed fallback if kpsewhich fails. * texparserlib: added extra core maths commands. * convertgls2bib: new switches --ignore-sort and --no-ignore-sort. v1.0 (2017-09-09): * initial release