Formulas

Functions

auth(n: number = 0, m: number = 1, creator: ('author' | 'editor' | 'translator' | 'collaborator' | '*') = '*', initials: boolean = false)

The first n (default: all) characters of the mth (default: first) author's last name.

parametertype
nnumberthe number of characters to take from the name, 0 = all
mnumberselect the mth author
creator('author' | 'editor' | 'translator' | 'collaborator' | '*')kind of creator to select, * selects author first, and if not present, editor, translator or collaborator, in that order.
initialsbooleanadd author initials

authAuthEa(creator: ('author' | 'editor' | 'translator' | 'collaborator' | '*') = '*', initials: boolean = false, sep: string = '.')

The last name of the first two authors, and ".ea" if there are more than two.

parametertype
creator('author' | 'editor' | 'translator' | 'collaborator' | '*')kind of creator to select, * selects author first, and if not present, editor, translator or collaborator, in that order.
initialsbooleanadd author initials
sepstringuse this character between authors

authEtAl(creator: ('author' | 'editor' | 'translator' | 'collaborator' | '*') = '*', initials: boolean = false, sep: string = ' ')

The last name of the first author, and the last name of the second author if there are two authors or "EtAl" if there are more than two. This is similar to auth.etal. The difference is that the authors are not separated by "." and in case of more than 2 authors "EtAl" instead of ".etal" is appended.

parametertype
creator('author' | 'editor' | 'translator' | 'collaborator' | '*')kind of creator to select, * selects author first, and if not present, editor, translator or collaborator, in that order.
initialsbooleanadd author initials
sepstringuse this character between authors

authEtal2(creator: ('author' | 'editor' | 'translator' | 'collaborator' | '*') = '*', initials: boolean = false, sep: string = '.')

The last name of the first author, and the last name of the second author if there are two authors or ".etal" if there are more than two.

parametertype
creator('author' | 'editor' | 'translator' | 'collaborator' | '*')kind of creator to select, * selects author first, and if not present, editor, translator or collaborator, in that order.
initialsbooleanadd author initials
sepstringuse this character between authors

authForeIni(creator: ('author' | 'editor' | 'translator' | 'collaborator' | '*') = '*')

The given-name initial of the first author.

parametertype
creator('author' | 'editor' | 'translator' | 'collaborator' | '*')kind of creator to select, * selects author first, and if not present, editor, translator or collaborator, in that order.

authIni(n: number = 0, creator: ('author' | 'editor' | 'translator' | 'collaborator' | '*') = '*', initials: boolean = false, sep: string = '.')

The beginning of each author's last name, using no more than n characters (0 = all).

parametertype
nnumberthe number of characters to take from the name, 0 = all
creator('author' | 'editor' | 'translator' | 'collaborator' | '*')kind of creator to select, * selects author first, and if not present, editor, translator or collaborator, in that order.
initialsbooleanadd author initials
sepstringuse this character between authors

authorIni(creator: ('author' | 'editor' | 'translator' | 'collaborator' | '*') = '*', initials: boolean = false, sep: string = '.')

The first 5 characters of the first author's last name, and the last name initials of the remaining authors.

parametertype
creator('author' | 'editor' | 'translator' | 'collaborator' | '*')kind of creator to select, * selects author first, and if not present, editor, translator or collaborator, in that order.
initialsbooleanadd author initials
sepstringuse this character between authors

authorLast(creator: ('author' | 'editor' | 'translator' | 'collaborator' | '*') = '*', initials: boolean = false)

The last name of the last author

parametertype
creator('author' | 'editor' | 'translator' | 'collaborator' | '*')kind of creator to select, * selects author first, and if not present, editor, translator or collaborator, in that order.
initialsbooleanadd author initials

authorLastForeIni(creator: ('author' | 'editor' | 'translator' | 'collaborator' | '*') = '*')

The given-name initial of the last author.

parametertype
creator('author' | 'editor' | 'translator' | 'collaborator' | '*')kind of creator to select, * selects author first, and if not present, editor, translator or collaborator, in that order.

authorsAlpha(creator: ('author' | 'editor' | 'translator' | 'collaborator' | '*') = '*', initials: boolean = false, sep: string = ' ')

Corresponds to the BibTeX style "alpha". One author: First three letters of the last name. Two to four authors: First letters of last names concatenated. More than four authors: First letters of last names of first three authors concatenated. "+" at the end.

parametertype
creator('author' | 'editor' | 'translator' | 'collaborator' | '*')kind of creator to select, * selects author first, and if not present, editor, translator or collaborator, in that order.
initialsbooleanadd author initials
sepstringuse this character between authors

authorsn(n: number = 0, creator: ('author' | 'editor' | 'translator' | 'collaborator' | '*') = '*', initials: boolean = false, sep: string = ' ')

The last names of the first n (default: all) authors.

parametertype
nnumberthe number of characters to take from the name, 0 = all
creator('author' | 'editor' | 'translator' | 'collaborator' | '*')kind of creator to select, * selects author first, and if not present, editor, translator or collaborator, in that order.
initialsbooleanadd author initials
sepstringuse this character between authors

authshort(creator: ('author' | 'editor' | 'translator' | 'collaborator' | '*') = '*', initials: boolean = false, sep: string = '.')

The last name if one author/editor is given; the first character of up to three authors' last names if more than one author is given. A plus character is added, if there are more than three authors.

parametertype
creator('author' | 'editor' | 'translator' | 'collaborator' | '*')kind of creator to select, * selects author first, and if not present, editor, translator or collaborator, in that order.
initialsbooleanadd author initials
sepstringuse this character between authors

creatornames(template?: `sprintf-style format template`, transliterate?: boolean)

Sets the sprintf-template default for representing creator names. Default is '%(f)s'.

in the creator template, you can use:

  • %(f)s: family ("last") name
  • %(f_zh)s: family ("last") name extracted from chinese compound names. Need jieba to be enabled
  • %(g)s: given ("first") name
  • %(g_zh)s: given ("first") name extracted from chinese compound names. Need jieba to be enabled
  • %(i)s: given-name initials
  • %(I)s: given-name initials, upper-case

parametertype
templatesprintf-style format templatetemplate string
transliteratebooleantransliterate the returned name

creators(n: (number | [ number, number ]) = 0, type: ('*' | Creator | Creator[] | (Creator | '*')[][]) = [['primary', 'editor', 'translator', '*']], name: ('' | `sprintf-style format template`) = '', etal: string = '', sep: string = ' ', min: number = 0, max: number = 0)

Author/editor information.

creator type can be one of artist, attorneyAgent, author, bookAuthor, cartographer, castMember, commenter, composer, contributor, cosponsor, counsel, director, editor, guest, interviewee, interviewer, inventor, performer, podcaster, presenter, producer, programmer, recipient, reviewedAuthor, scriptwriter, seriesEditor, sponsor, translator, wordsBy

in the creator template, you can use:

  • %(f)s: family ("last") name
  • %(f_zh)s: family ("last") name extracted from chinese compound names. Need jieba to be enabled
  • %(g)s: given ("first") name
  • %(g_zh)s: given ("first") name extracted from chinese compound names. Need jieba to be enabled
  • %(i)s: given-name initials
  • %(I)s: given-name initials, upper-case

parametertype
n(number | [ number, number ])select the first n creators (when passing a number) or the authors in this range (inclusive, when passing two values); negative numbers mean "from the end", default = 0 = all
type('' | Creator | Creator[] | (Creator | '')[][])select only creators of given type(s). Default: all
name('' | sprintf-style format template)sprintf-js template. Available named parameters are: f (family name), g (given name), i (initials)
etalstringuse this term to replace authors after n authors have been named
sepstringuse this character between authors
minnumberskip to the next pattern if there are less than min creators, 0 = ignore
maxnumberskip to the next pattern if there are more than max creators, 0 = ignore

creatortypes(match?: RegExp)

This will return a comma-separated list of creator type information for all creators on the item in the form <1 or 2><creator-type>, where 1 or 2 denotes a 1-part or 2-part creator, and creator-type is one of {{% citekey-formatters/creatortypes %}}, or primary for the primary creator-type of the Zotero item under consideration. The list is prefixed by the item type, so might look like audioRecording:2performer,2performer,1composer.

parametertype
matchRegExpRegex to test the creator-type list. When passed, and the creator-type list does not match the regex, jump to the next formule. When it matches, return nothing but stay in the current formule. When no regex is passed, output the creator-type list for the item (mainly useful for debugging).

date(format: string = '%Y-%m-%d')

The date of the publication

parametertype
formatstringsprintf-style format template

extra(variable: string)

A pseudo-field from the extra field. eg if you have Original date: 1970 in your extra field, you can get it as extra(originalDate), or tex.shortauthor: APA which you could get with extra('tex.shortauthor'). Any tex. field will be picked up, the other fields can be selected from this list of key names.

parametertype
variablestringextra-field line identifier

firstpage

The number of the first page of the publication (Caution: this will return the lowest number found in the pages field, since BibTeX allows 7,41,73--97 or 43+.)

group(name: string)

Tests whether the item is in the given group library

parametertype
namestringgroup name

infix(format: `sprintf-style format template` = '%(a)s', start: (string | number) = 0)

a pseudo-function that sets the citekey disambiguation infix using an sprintf-js format spec for when a key is generated that already exists. The infix charachter appears at the place of this function of the formula instead of at the and (as postfix does). You must include exactly one of the placeholders %(n)s (number), %(a)s (alpha, lowercase) or %(A)s (alpha, uppercase). For the rest of the disambiguator you can use things like padding and extra text as sprintf-js allows. With start set to 1 the disambiguator is always included, even if there is no need for it when no duplicates exist. The default format is %(a)s.

in the template, you can use:

  • %(a)s: lower-case alphabetic disambiguator
  • %(A)s: upper-case alphabetic disambiguator
  • %(n)s: numeric disambiguator

parametertype
formatsprintf-style format templatesprintf-style format template
start(string | number)start value for postfix

inspireHep

Fetches the key from inspire-hep based on DOI or arXiv ID

item(id: ('key' | 'id') = 'key')

returns the internal item ID/key

parametertype
id('key' | 'id')'id': return itemID; 'key': return the item key

journal(abbrev: ('off' | 'abbrev' | 'auto' | 'abbrev+auto' | 'full') = 'abbrev+auto')

returns the journal abbreviation, or, if not found, the journal title, If 'automatic journal abbreviation' is enabled in the BBT settings, it will use the same abbreviation filter Zotero uses in the wordprocessor integration. You might want to use the abbr filter on this. Abbreviation behavior can be specified as abbrev+auto (the default) which uses the explicit journal abbreviation if present, and tries the automatic abbreviator if not (if auto-abbrev is enabled in the preferences), auto (skip explicit journal abbreviation even if present), abbrev (no auto-abbrev even if it is enabled in the preferences) or full/off (no abbrevation).

parametertype
abbrev('off' | 'abbrev' | 'auto' | 'abbrev+auto' | 'full')abbreviation mode

keyword(n: number)

Tag number n. Mostly for legacy compatibility

parametertype
nnumberposition of tag to get

language(...name: string[])

Tests whether the item has the given language set, and skips to the next pattern if not

language can be one of ame, american, american english, americanenglish, ar, ar-ar, ar-dz, ar-eg, ar-iq, ar-jo, ar-lb, ar-ma, ar-ps, ar-sa, ar-sy, ar-tn, ara, arabic, arabic-algeria, arabic-dz, arabic-eg, arabic-egypt, arabic-iq, arabic-iraq, arabic-jo, arabic-jordan, arabic-lb, arabic-lebanon, arabic-ma, arabic-morocco, arabic-palestinianterritories, arabic-ps, arabic-sa, arabic-saudiarabia, arabic-sy, arabic-syria, arabic-tn, arabic-tunisia, australian, australian english, australianenglish, austrian, austrian german, austrian-traditional, austriangerman, austriangerman-traditional, bri, british, british english, britishenglish, canadian, canadian english, canadianenglish, chinese, chinese-hans, chinese-hans-hk, chinese-hans-mo, chinese-hans-sg, chinese-hant, chinese-hant-hk, chinese-hant-mo, chinese-simplified, chinese-simplified-hongkongsarchina, chinese-simplified-macausarchina, chinese-simplified-singapore, chinese-traditional, chinese-traditional-hongkongsarchina, chinese-traditional-macausarchina, de, de-1901, de-1996, de-at, de-at-1901, de-at-1996, de-ch, de-ch-1901, de-ch-1996, de-de, deutsch, en, en-au, en-ca, en-en, en-gb, en-nz, en-us, eng, english, english-au, english-australia, english-ca, english-canada, english-gb, english-newzealand, english-nz, english-unitedkingdom, english-unitedstates, english-us, ger, german, german-at, german-at-traditional, german-austria, german-austria-traditional, german-ch, german-ch-traditional, german-switzerland, german-switzerland-traditional, german-traditional, ja, ja-ja, jap, japanese, nau, naustrian, newzealand, nge, ngerman, nsw, nswissgerman, schweizer hochdeutsch, simplified chinese, swiss high german, swisshighgerman, swisshighgerman-traditional, traditional chinese, tw, ukenglish, usenglish, zh, zh-hans, zh-hans-hk, zh-hans-mo, zh-hans-sg, zh-hant, zh-hant-hk, zh-hant-mo, zh-tw, zh-zh, österreichisches deutsch, العربية, 中文, 中文-中文, 日本語, 简体中文, 繁體中文

parametertype
namestring[]one or more language codes

lastpage

The number of the last page of the publication (See the remark on firstpage)

library

Tests whether the item is in the user library

month

the month of the publication

origdate

the original date of the publication

origyear

the original year of the publication

postfix(format: `sprintf-style format template` = '%(a)s', start: (string | number) = 0)

a pseudo-function that sets the citekey disambiguation postfix using an sprintf-js format spec for when a key is generated that already exists. Does not add any text to the citekey otherwise. You must include exactly one of the placeholders %(n)s (number), %(a)s (alpha, lowercase) or %(A)s (alpha, uppercase). For the rest of the disambiguator you can use things like padding and extra text as sprintf-js allows. With start set to 1 the disambiguator is always included, even if there is no need for it when no duplicates exist. The default format is %(a)s.

in the template, you can use:

  • %(a)s: lower-case alphabetic disambiguator
  • %(A)s: upper-case alphabetic disambiguator
  • %(n)s: numeric disambiguator

parametertype
formatsprintf-style format templatesprintf-style format template
start(string | number)start value for postfix

shorttitle(n: number = 3, m: number = 0)

The first n (default: 3) words of the title, apply capitalization to first m (default: 0) of those.

parametertype
nnumbernumber of words to select
mnumbernumber of words to capitalize. 0 means no words will be capitalized. Mind that existing capitals are not removed. If you enable capitalization, you also get transliteration; for CJK, capitalization is not meaningful, so if you want capitalization, BBT romanizes first.

shortyear

The last 2 digits of the publication year

title

Capitalize all the significant words of the title, and concatenate them. For example, An awesome paper on JabRef will become AnAwesomePaperJabref

transliterate(mode: (('minimal' | 'german' | 'japanese' | 'chinese' | 'arabic' | 'ukranian' | 'mongolian' | 'russian') | 'de' | 'ja' | 'chinese-traditional' | 'zh-hant' | 'zh' | 'tw' | 'ar' | 'uk' | 'mn' | 'ru'))

Set the default transliteration mode. If you don't specify a mode, the mode for an entry is derived from the item language field

parametertype
mode(('minimal' | 'german' | 'japanese' | 'chinese' | 'arabic' | 'ukranian' | 'mongolian' | 'russian') | 'de' | 'ja' | 'chinese-traditional' | 'zh-hant' | 'zh' | 'tw' | 'ar' | 'uk' | 'mn' | 'ru')specialized translateration modes for german, japanese or chinese.

type(...allowed: string[])

Without arguments, returns the item type. When arguments as passed, tests whether the item is of any of the given types, and skips to the next pattern if not, eg type(book) + veryshorttitle | auth + year.

creator type can be one of annotation, artwork, attachment, audioRecording, bill, blogPost, book, bookSection, case, computerProgram, conferencePaper, dataset, dictionaryEntry, document, email, encyclopediaArticle, film, forumPost, hearing, instantMessage, interview, journalArticle, letter, magazineArticle, manuscript, map, newspaperArticle, note, patent, podcast, preprint, presentation, radioBroadcast, report, standard, statute, thesis, tvBroadcast, videoRecording, webpage

parametertype
allowedstring[]one or more item type names

veryshorttitle(n: number = 1, m: number = 0)

The first n words of the title, apply capitalization to first m of those

parametertype
nnumbernumber of words to select
mnumbernumber of words to capitalize. 0 means no words will be capitalized. Mind that existing capitals are not removed.

year

The year of the publication

zotero

Generates citation keys as the stock Zotero Bib(La)TeX export does. Note that this pattern inherits all the problems of the original Zotero citekey generation -- you should really only use this if you have existing papers that rely on this behavior.

Note: All auth... functions will fall back to editors if no authors are present on the item.

Note: The functions above used to have the clean function automatically applied to them, this is no longer the case, so if you have CJK authors/titles and you want to manipulate them (using eg. capitalize), you could have to use transliterate on them first, eg. authEtal2.transliterate.capitalize + year + shorttitle(3, 3).

Direct access to unprocessed fields (“Field functions”)

The above functions all retrieve information stored in the item’s fields and process it in some way. If you don’t want this, you can instead call field contents without any processing. To access Zotero fields, refer to them as given in the table below:

AbstractNote AccessDate AdminFlagJM AdoptionDateJM
AlbumJM ApplicationNumber Archive ArchiveCollectionJM
ArchiveIDZ ArchiveLocation ArtworkMedium ArtworkSize
AssemblyNumberJM Assignee AudioFileType AudioRecordingFormat
AuthorityZ BillNumber BlogTitle BookAbbreviationJM
BookTitle CallNumber CaseName Code
CodeNumber CodePages CodeVolume Committee
Company ConferenceDateJM ConferenceName Country
Court DOI Date DateAmendedJM
DateDecided DateEnacted DictionaryTitle Distributor
DivisionJM DocketNumber DocumentNameJM DocumentNumber
Edition EncyclopediaTitle EpisodeNumber FilingDate
FirstPage FormatZ ForumTitle GazetteFlagJM
Genre History ISBN ISSN
IdentifierZ Institution InterviewMedium Issue
IssueDate IssuingAuthority JournalAbbreviation JurisdictionJM
Label Language LegalStatus LegislativeBody
LetterType LibraryCatalog ManuscriptType MapType
Medium MeetingName MeetingNumberJM NameOfAct
Network NewsCaseDateJM NumPages Number
NumberOfVolumes OpeningDateJM OpusJM OrganizationZ
OriginalDateJM Pages ParentTreatyJM PatentNumber
Place PostType PresentationType PriorityDateJM
PriorityNumbers ProceedingsTitle ProgramTitle ProgrammingLanguage
PublicLawNumber PublicationDateJM PublicationNumberJM PublicationTitle
Publisher References RegnalYearJM RegulationTypeJM
RegulatoryBodyJM ReignJM ReleaseJM ReportNumber
ReportType Reporter ReporterVolume RepositoryZ
RepositoryLocationZ ResolutionLabelJM Rights RunningTime
Scale Section Series SeriesNumber
SeriesText SeriesTitle Session SessionTypeJM
ShortTitle SigningDateJM Status Studio
Subject SupplementNameJM System ThesisType
Title TreatyNumberJM Type University
Url VersionNumber VideoRecordingFormat Volume
VolumeTitleJM WebsiteTitle WebsiteType YearAsVolumeJM

(fields marked Z are only available in Zotero, fields marked with JM are only available in Juris-M).

Filters

abbr(chars: number = 1)

Abbreviates the text. Only the first character and subsequent characters following white space will be included.

parametertype
charsnumbernumber of characters to return per word

acronym(list: string = 'acronyms', reload: boolean = false, passthrough: boolean = false)

Does an acronym lookup for the text.

parametertype
liststringlookup list. The list must be a CSV file and live in the Zotero/better-bibtex directory in your Zotero profile, and must use commas as the delimiter.
reloadbooleanreload the list for every call. When off, the list will only be read at startup of Better BibTeX. You can set this to true temporarily to live-reload a list.
passthroughbooleanif no match is found, pass through input.

alphanum

clears out everything but unicode alphanumeric characters (unicode character classes L and N)

ascii

removes all non-ascii characters

capitalize

uppercases the first letter of each word

clean

transliterates the citation key and removes unsafe characters

condense(sep: string = '')

replaces spaces in the value passed in. You can specify what to replace it with by adding it as a parameter, e.g .condense('_') will replace spaces with underscores. Equivalent to .replace(/\s+/g, sep).

parametertype
sepstringreplacement character

default(text: string)

Returns the given text if no output was generated

parametertype
textstringliteral text to return

discard

discards the input

find(match: (string | RegExp), passthrough: boolean = false)

Finds a text in the string and returns it.

parametertype
match(string | RegExp)regex or string to match. String matches are case-insensitive
passthroughbooleanif no match is found, pass through input.

formatDate(format: string = '%Y-%m-%d')

formats date as by replacing y, m and d in the format

parametertype
formatstringsprintf-style format template

ideographs

Treat ideaographs as individual words

jieba(mode?: string)

word segmentation for Chinese items. Uses substantial memory, and adds about 7 seconds to BBTs startup time; must be enabled under Preferences -> Better BibTeX -> Advanced -> Citekeys

parametertype
modestringfor backwards compatibility, this param will be accepted, but it is a no-op since the switch to jieba-rs. It will be removed eventually.

kuromoji

word segmentation for Japanese items. Uses substantial memory; must be enabled under Preferences -> Better BibTeX -> Advanced -> Citekeys

len(relation: ('<' | '>' | '<=' | '==' | '!=' | '>=') = '>', length: number = 0)

If the length of the output does not match the given number, skip to the next pattern.

parametertype
relation('<' | '>' | '<=' | '==' | '!=' | '>=')comparison operator
lengthnumbervalue to compare length with

localTime

transforms date/time to local time. Mainly useful for dateAdded and dateModified as it requires an ISO-formatted input.

lower

Forces the text inserted by the field marker to be in lowercase. For example, auth.lower expands to the last name of the first author in lowercase.

match(match: (string | RegExp), clean: boolean = false)

If the output does not match the given string/regex, skip to the next pattern.

parametertype
match(string | RegExp)regex or string to match. String matches are case-insensitive
cleanbooleantransliterates the current output and removes unsafe characters during matching

nopunct(dash: string = '-')

Removes punctuation

parametertype
dashstringreplace dashes with given character

nopunctordash

Removes punctuation and word-connecting dashes. alias for nopunct(dash='')

numeric

returns the value if it's an integer

pinyin

transliterates the citation key to pinyin

postfix(postfix: string)

postfixes with its parameter, so postfix('_') will add an underscore to the end if, and only if, the value it is supposed to postfix isn't empty

parametertype
postfixstringpostfix string

prefix(prefix: string)

prefixes with its parameter, so .prefix('_') will add an underscore to the front if, and only if, the value it is supposed to prefix isn't empty.

parametertype
prefixstringprefix string

replace(find: (string | RegExp), replace: string)

replaces text, for the text to match you can pass either:

  • a string: .replace('.etal','&etal') which will match case-insensitive, so will replace .EtAl with &etal.
  • javascript regular expression: .replace(/[.]etal/ig, '&etal')

parametertype
find(string | RegExp)string or regex to match. String matches are case-insensitive
replacestringliteral text to replace the match with

select(start: number = 1, n?: number)

selects words from the value passed in. The format is select(start,number) (1-based), so select(1,4) or select(n=4) would select the first four words. If n is not given, all words from start to the end are selected.

parametertype
startnumberfirst word to select (1-based)
nnumbernumber of words to select. Default is all.

skipwords(nopunct: boolean = false)

filters out common words like 'of', 'the', … the list of words can be seen and changed by going into about:config under the key extensions.zotero.translators.better-bibtex.skipWords as a comma-separated, case-insensitive list of words.

If you want to strip words like 'Jr.' from names, you could use something like Auth.nopunct.skipwords.fold after adding jr to the skipWords list. Note that this filter is always applied with nopunct on if you use title (which is different from Title) or shorttitle.

parametertype
nopunctbooleanremove punctuation from words

substring(start: number = 1, n?: number)

substring(start,n) selects n (default: all) characters starting at start

parametertype
startnumberstarting character (1-based)
nnumbernumber of characters to select (default: remainder from start)

transliterate(mode?: (('minimal' | 'german' | 'japanese' | 'chinese' | 'arabic' | 'ukranian' | 'mongolian' | 'russian') | 'de' | 'ja' | 'chinese-traditional' | 'zh-hant' | 'zh' | 'tw' | 'ar' | 'uk' | 'mn' | 'ru'))

transliterates the citation key. If you don't specify a mode, the mode is derived from the item language field

parametertype
mode(('minimal' | 'german' | 'japanese' | 'chinese' | 'arabic' | 'ukranian' | 'mongolian' | 'russian') | 'de' | 'ja' | 'chinese-traditional' | 'zh-hant' | 'zh' | 'tw' | 'ar' | 'uk' | 'mn' | 'ru')specialized translateration modes for german, japanese or chinese.

upper

Forces the text inserted by the field marker to be in uppercase. For example, auth.upper expands the last name of the first author in uppercase.

Usage note: the functions condense, skipwords, capitalize and select rely on whitespaces for word handling. Most functions strip whitespace and thereby make these filter functions sort of useless. You will in general want to use the fields from the table above, which give you the values from Zotero without any changes. The fields with ** are only available in Juris-M.