summaryrefslogtreecommitdiff
path: root/support/latexmk/example_rcfiles/bib2gls_latexmkrc
diff options
context:
space:
mode:
Diffstat (limited to 'support/latexmk/example_rcfiles/bib2gls_latexmkrc')
-rw-r--r--support/latexmk/example_rcfiles/bib2gls_latexmkrc35
1 files changed, 35 insertions, 0 deletions
diff --git a/support/latexmk/example_rcfiles/bib2gls_latexmkrc b/support/latexmk/example_rcfiles/bib2gls_latexmkrc
new file mode 100644
index 0000000000..53f13ff30a
--- /dev/null
+++ b/support/latexmk/example_rcfiles/bib2gls_latexmkrc
@@ -0,0 +1,35 @@
+# Implementing glossary with bib2gls and glossaries-extra, with the
+# log file (.glg) analyzed to get dependence on a .bib file.
+
+# !!! ONLY WORKS WITH VERSION 4.54 or higher of latexmk
+
+push @generated_exts, 'glstex', 'glg';
+
+add_cus_dep('aux', 'glstex', 0, 'run_bib2gls');
+
+sub run_bib2gls {
+ if ( $silent ) {
+ my $ret = system "bib2gls --silent --group '$_[0]'";
+ } else {
+ my $ret = system "bib2gls --group '$_[0]'";
+ };
+
+ my ($base, $path) = fileparse( $_[0] );
+ if ($path && -e "$base.glstex") {
+ rename "$base.glstex", "$path$base.glstex";
+ }
+
+ # Analyze log file.
+ local *LOG;
+ $LOG = "$_[0].glg";
+ if (!$ret && -e $LOG) {
+ open LOG, "<$LOG";
+ while (<LOG>) {
+ if (/^Reading (.*\.bib)\s$/) {
+ rdb_ensure_file( $rule, $1 );
+ }
+ }
+ close LOG;
+ }
+ return $ret;
+}