Skip to content

Instantly share code, notes, and snippets.

@douglasrizzo
Last active May 27, 2022 14:56
Show Gist options
  • Save douglasrizzo/faf4851f0246b99b334eb7c3a8d404c9 to your computer and use it in GitHub Desktop.
Save douglasrizzo/faf4851f0246b99b334eb7c3a8d404c9 to your computer and use it in GitHub Desktop.
BibTool resource file
% no tabs as indentation, line size very big
print.align.key = 0
print.use.tab = off
print.line.length = 200
% sort order for fields
sort = on
sort.order {* = title # author # school # type # year # month # day # journal # booktitle # publisher # volume # pages # shorttitle # url # urlaccessdate}
%
% Translate double quotes as delimiters "" by braces {}
%
rewrite.rule { "^\"\([^#]*\)\"$" = "{\1}" }
rewrite.rule { "# \"\([^#]*\)\"$" = "# {\1}" }
rewrite.rule { "^\"\([^#]*\)\" #" = "{\1} #" }
rewrite.rule { "# \"\([^#]*\)\" #" = "# {\1} #" }
%
% Semantic checks for year fields
%
check.rule { year "^[\"{]?[0-9][0-9][\"}]?$" }
check.rule { year "^[\"{]?1[89][0-9][0-9][\"}]?$" }
check.rule { year "^[\"{]?20[0-9][0-9][\"}]?$" }
check.rule { year "" "\@ \$: Semantic error. Year has to be a suitable number" }
% Style Improvements.
%
% delete duplicate entries
check.double.delete = on
% delete empty fields
rewrite.rule {"^\" *\"$"}
rewrite.rule {"^{ *}$"}
rewrite.rule {"ˆ{}$"}
rewrite.rule {"ˆ\"\"$"}
% delete useless fields introduced by reference managers
delete.field {file}
delete.field {abstract}
delete.field {annote}
delete.field {keywords}
% correct page ranges
rewrite.rule {pages # "\([0-9]+\) *\(-\|---\) *\([0-9]+\)" = "\1--\3"}
% delete delimiters if the field is purely numerical
rewrite.rule {"^[\"{] *\([0-9]+\) *[\"}]$" "\1"}
%
% This resource file tries to introduce BibTeX strings for month names.
% Provisions are made to preserve other information contained in the
% month field.
%
rewrite.rule { month
= "^[\"{] *\(.*\)january\(.*\) *[\"}]$"
# "{\1} # jan # {\2}" }
rewrite.rule { month
= "^[\"{] *\(.*\)february\(.*\) *[\"}]$"
# "{\1} # feb # {\2}" }
rewrite.rule { month
= "^[\"{] *\(.*\)march\(.*\) *[\"}]$"
# "{\1} # mar # {\2}" }
rewrite.rule { month
= "^[\"{] *\(.*\)april\(.*\) *[\"}]$"
# "{\1} # apr # {\2}" }
rewrite.rule { month
= "^[\"{] *\(.*\)may\(.*\) *[\"}]$"
# "{\1} # may # {\2}" }
rewrite.rule { month
= "^[\"{] *\(.*\)june\(.*\) *[\"}]$"
# "{\1} # jun # {\2}" }
rewrite.rule { month
= "^[\"{] *\(.*\)july\(.*\) *[\"}]$"
# "{\1} # jul # {\2}" }
rewrite.rule { month
= "^[\"{] *\(.*\)august\(.*\) *[\"}]$"
# "{\1} # aug # {\2}" }
rewrite.rule { month
= "^[\"{] *\(.*\)september\(.*\) *[\"}]$"
# "{\1} # sep # {\2}" }
rewrite.rule { month
= "^[\"{] *\(.*\)october\(.*\) *[\"}]$"
# "{\1} # oct # {\2}" }
rewrite.rule { month
= "^[\"{] *\(.*\)november\(.*\) *[\"}]$"
# "{\1} # nov # {\2}" }
rewrite.rule { month
= "^[\"{] *\(.*\)december\(.*\) *[\"}]$"
# "{\1} # dec # {\2}" }
rewrite.rule { month = "^{ *} # " = ""}
rewrite.rule { month = " # { *}$" = ""}
% rename url date field to be correctly used by BibTeX, BibLaTeX, abnTeX etc
rename.field {urldate = urlaccessdate}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment