Embed BibTeX entries.

The word "BibTeX" stands for a tool and a file format which are used to describe and process lists of references, mostly in conjunction with LaTeX documents.

More info: Wikipedia:BibTeX


You type
you get

bibtex select example

if installed: BibtexPlugin Errors:
/var/lib/foswiki/tools/ 1: eval: /usr/bin/bib2bib: not found
/var/lib/foswiki/tools/ 1: eval: /usr/bin/bibtex2html: not found

You type
%STARTBIBTEX{abstracts="on" keywords="on"}%
  author =       "Rudi W. De Lange and Hendry L. Esterhuizen and Derek
  title =        "Performance differences between {Times} and
                 {Helvetica} in a reading task",
  journal =      "Electronic Pub\-lish\-ing\emdash{}Orig\-i\-na\-tion,
                 Dissemination, and Design",
  volume =       "6",
  number =       "3",
  pages =        "241--248",
  month =        sep,
  year =         "1993",
  CODEN =        "EPODEU",
  ISSN =         "0894-3982",
  bibdate =      "Sat Jan 06 18:28:52 1996",
  abstract =     "Typographers and printers often regard seriffed or
                 roman typefaces as more legible and appropriate for
                 reading material than typefaces without serifs. Authors
                 contend that readers prefer roman above sans serif,
                 that it is read faster, and that the comprehension rate
                 is possibly higher when text is set in a roman
                 typeface. The absence of satisfactory empirical data to
                 prove these assumptions, and the importance of
                 legibility in academic reading material, motivated this
                 study. The aim of the study was to determine the
                 comparative legibility of sans serif and roman
                 typefaces. Four hundred and fifty primary school
                 subjects from nine different schools were used in a
                 control group pre-test, post-test research design where
                 four different experiments were completed. Romans and
                 sans serifs were found to be equally legible, as no
                 significant statistical difference was found between
                 the reading speed, scanning speed, accuracy and
                 comprehension at the 0.05 level. These results are in
                 contrast to the assumption that romans are more legible
                 than sans serifs. They can be interpreted as promising
                 for graphic designers and typographers, as it appears
                 that legibility will not necessarily be sacrificed when
                 certain reading material is set in a sans serif
  keywords =     "Legibility, Sans serif typeface, Roman typeface,
                 Reading task, Times Roman, Helvetica",
  annote =       "Never thought there is a difference",
you get

bibtex inline example

if installed: BibtexPlugin Errors:
/var/lib/foswiki/tools/ 1: eval: /usr/bin/bibtex2html: not found
/var/lib/foswiki/tools/ 1: eval: /usr/bin/bib2bib: not found

You type
you get (simulated) bibtex select example (if installed) [?? BahrSimpson02 not found ??]

The text within the citation is dictated by the results of the %BIBTEXREF% declaration in the topic (see below).

Note: The %CITE% macro is also defined by the Foswiki:Extensions.BibliographyPlugin. If both plugins are installed, one must use the alternate declaration, %BIBCITE{...}%, to access the BibtexPlugin functionality.


  • %BIBTEX{<attributes>}% - render a set of bibtex files attached to some topic
  • %STARTBIBTEX{<attributes>}% ... %STOPBIBTEX% - render an inline-bibtex database
  • %CITE{key}% (or %BIBCITE{key}%) - generate an hyperlink to a bibtex entry
  • %BIBTEXREF{key, topic}% - generate a list of references based on the declared CITE keys


All attributes for %BIBTEX% and %STARTBIBTEX% are optional. The attributes topic and bibfile are not valid in the %STARBIBTEX% tag as the bibtex database is given inline and not as an attachment. %CITE% has one obligatory attribute, that is key refering to the bibtex entry that is to be cited. topic is optional here and defaults to the recently used bibtex database location in a %BIBTEX% tag on the same topic (see Tips).

option value description
topic (webName.)topicName a valid topic where bibtex files are attached.
file bibfile a regular expression specifying one or more bibtex files attached to webName.topicName, must have the extension .bib if no bibfile is specified all bibfiles attached are used
select query see chapter The Query Language for an explamation
sort sorting how to sort the bibentries; possible values are year (default), author and none
bibstyle bibstyle can be one of the installed BibTeX styles installed on the servers system plus the special styles bibtool and raw:
  • bibtool : keys are generated in the style defined in the bibtoolrcs file (default)
  • raw : output is displayed in as raw bibtex (inside a <pre>...</pre> environment.
rev on, off reverse or normal sorting (default on )
mix on, off switch on/off formatting of html and raw bibtex entries mixed (default off)
errors on, off display standard errors generated by the rendering pipeline tools (e.g. warnings about double entries) in multiple bibfiles
abstract on, off switch on/off rendering the abstract-field if present in the entries (default off)
keywords on, off switch on/off rendering the keywords-field if present in the entries (default off)
form on, off, only, (formWeb.)formTopic delcare which query form to use, if any:
  • on: use the default query form at BibtexSearchTemplate
  • off: (default) don't display a query form
  • formWeb.formTopic: declare a query form to be displayed
  • only: don't start to display the complete unfiltered database, but only show the query form

Citations and Automated Reference Lists

As of release v1.3, BibtexPlugin has functionality similar to the Foswiki:Extensions.BibliographyPlugin. Specifically, if a topic has %CITE{key}% declarations through out, the use of %BIBTEXREF{...}% will generate a list of references based on the citations declared. The output of the reference list is dictated by BibTeX. Thus, the HTML output can use all of the flexibility of bibtex, including custom bibtex style templates and string macros.

The citation keys must refer to the output key produced by this plugin, which may differ from the entries in the associated .bib files according to the bibtool resource file in use. Simply use the output key produced by BibtexPlugin search template query results.

Again, if both the Foswiki:Extensions.BibliographyPlugin and Foswiki:BibtexPlugin are installed, one must use %BIBCITE{...}% inplace of %CITE% for the BibtexPlugin functionality to work.


You type:

you get

bibtex reference example

if installed:


BibtexPlugin Errors:
/var/lib/foswiki/tools/ 1: eval: /usr/bin/bibtex2html: not found
/var/lib/foswiki/tools/ 1: eval: /usr/bin/bib2bib: not found

The Query Language

The information here is extracted from the bibtex2html manual (section 3.2: Filter conditions) and might be incomplete or outdated. Please see here for more information. Anyhow here's a version matching the naming conventions that we use here (filter conndition = query).

A query is a boolean expression that is evaluated against a BibTeX entry to decide whether this entry should be selected. A query is either:
  • a comparison between two expressions, written as e1 op e2
  • a matching of a field name with respect to a regular expression, written as field : regexp
  • a conjunction of two conditions, written as c1 and c2
  • a disjunction of two conditions, written as c1 or c2
  • a negation of a condition, written as not c (or ! c)
  • a test of existence of a field, written as exists f (or ? f) where f is a field name

where an expression is either:
  • a field name
  • a string constant between single quotes
  • an integer constant
  • the special ident $key which corresponds to the key of an entry.
  • the special ident $type which corresponds to the type of an entry (ARTICLE, INPROCEEDINGS, etc.). notice that an entry type is always written in uppercase letters.
  • comparison operators are the usual ones: , <, >, <, >= and <>

The field names are any sequences of lowercase or uppercase letters (but no distinction is made between lowercase and uppercase letters).

Regular expressions must be put between single or double quotes, and must follow the GNU syntax of regular expressions, as for example in GNU Emacs. Any character other than $^.*+?[] matches itself, see the following table for the meaning of the special characters:
. matches any character except newline
[..] character set; ranges are denoted with -, as in [a-z]; an initial ^, as in [^0-9], complements the set
matches the beginning of the string matched
$ matches the end of the string matched
\b matches word boundaries
\ quotes special characters
regexp* matches regexp zero, one or several times
regexp+ matches regexp one or several times
regexp? matches regexp once or not at all
regexp1 \Ι regexp2 alternative between two regular expressions, this operator has low priority against *, + and ?
\( regexp \) grouping regular expression

Customizing Look & Feel

The BibtexPlugin is customizable in several ways:
  • manipulate the cascading style sheets sitewide or derived on one topic
  • implementing an different BibtexSearchTemplate used with the form attribute of the %BIBTEX% command
  • rewriting the bibtool resourcefile shipped with the BibtexPlugin

Cascading Stylesheets

Here's the list of used styles:
class description
bibtex division (<div...>) surrounding the complete bibtex. The entries are rendered using a definition list:
   <dt> keyA </dt>
   <dd> entry </dd>
bibabstract division surrounding the abstract
bibcomment division surrounding the comment
bibkeywords division surrounding the keywords
bibsearch class of the table in the BibtexSearchTemplate
biboptions class of the options table in the BibtexSearchTemplate
See Tips for an example on how to modify the look easily.

BibtexPlugin search templates

The BibteXPlugin search templates provide an interactive query interface to the bibtex files present on a wiki. As an example of their use, one can declare
in a topic to which .bib files are attached. The resulting rendered form (defined by DEFAULTSEARCHTEMPLATE above) can then be used to query the .bib files.

Bibtool Resource Files

Actually this is an art for itself. The author has taken care to give you a quite reasonable resource file for bibtool. This contains an own (default) style of citation keys. You might have a look at the bibtool manual page and dig into the bibtoolrcs file yourself.


  • %BIBTEX%
    Render all bibtex entries in the bibtex files attached to the DEFAULTWEB.DEFAULTTOPIC in the DEFAULTSTYLE with the DEFAULTSORT.

  • %BIBTEX{web="Sandbox" topic="BibTest" file="cite.bib" select="author : 'Einstein'"}%
    Use cite.bib which is attached in Sandbox under the topic BibTest as the BibTeX file. Embeds all of the references from the BibTeX file which have Einstein in the author field

  • %BIBTEX{file="cite.bib" select="author : 'Einstein|Fermi' and year=2003"}%
    • Use cite.bib which is attached to the DEFAULTWEB under the topic DEFAULTTOPIC as the BibTeX file
    • Embeds all of the references from the BibTeX file which have Einstein or Fermi in the author field and 2003 in the year field
    • Format the embedded text as DEFAULTSTYLE

  • Selecting entries of a given year
    • select only entries that appeared in 1999 : select="year=1999"
    • select references appearing after and/or before a given year, e.g. references after 1997:
    • references between 1990 and 1995:
      select="year>=1990 and year<=1995"

  • Selecting references of a given author
    • select only entries whose (co)author is Donald Knuth:
      select="author : 'Knuth'"
    • if you would like to have only the references whose author is Knuth only, you may try:
      select="author : '^\(Donald \(E. \)?Knuth\|Knuth, Donald \(E.\)?\)$'"
    • or equivalently but missing the possible E.:
      select="author = 'Donald Knuth or author = 'Knuth, Donald'"

  • Other examples
    • extract the references that appeared since 1995 and have lambda-calculus in their title, with anything between "lambda" and "calculus":
      select="year >= 1995 and title : 'lambda.*calculus'"
    • select entries for Wolfgang Menzel since year 2000:
      select="author : 'Wolfgang Menzel' or author = 'Menzel, Wolfgang' and year>=2000"


  • Setting the current bibtex database for citations:
    Having a set of citations %CITE{keyA}% ... %CITE{keyZ}% refering to the same database is achievable in several ways:
    • by attaching all your bibtex files at a common place and set the DEFAULTTOPIC in the Global Settings section to that topic, or
    • by declaring the current database in the first %CITE% tag: %CITE{"keyA" topic="Main.BibtexDatabase"}%, or
    • by setting the current database with %BIBTEX{topic="BibtexDatabase" display="off"}%, or
    • by specifying the bibtex database in every %CITE% tag (not seriously)
  • Merging bibtex databases from different sources:
    If there are lots of databases all over your Foswiki site, you might want to merge them or extend them with some extra entries you don't want in the main database. Example: the main database contains all publications of your division but not the crossrefering presentation slides. You might want to keep them separate on your home-topic. You do that by nesting one or several %BIBTEX{...bibstyle="raw"...}% commands inside a %STARBIBTEX% ... %STOPBIBTEX% section.
   %BIBTEX{select="author:'YourName'" bibstyle="raw"}%
      crossref = {YourName02},
      note = {slides of oral presentation},
  • Manipulating the Cascading Style Sheet:
    You possibly don't like the default stylesheet for bibtexing installed on your Foswiki site. Or you just want to render a bibtex database differently on a single topic. Then add a stylesheet section in the topic: <style type="text/css"> ... </style>. Section Customizing Look & Feel lists the styles used. Here's a small example of how to get a different look easily. Just put it on some topic and see:
<style type="text/css">
   .bibtex {
   .bibtex dd {

Global Settings

  • Default topic name for BibTeX files:

Plugin Installation Instructions

You do not need to install anything in the browser to use this extension. The following instructions are for the administrator who installs the extension on the server.

Open configure, and open the "Extensions" section. Use "Find More Extensions" to get a list of available extensions. Select "Install".

If you have any problems, or if the extension isn't available in configure, then you can still install manually from the command-line. See for more help.

Test if the installation was successful: See if above examples work

If access control is managed at the web-server level, be sure to add bibsearch to the authorization list. E.g., for Apache, add the following lines to the .htaccess or Apache conf file:
<Files "bibsearch">
       require valid-user

Plugin Info

Plugin Author: Foswiki:Main/MichaelDaum, Foswiki:Main/ScottHoge
License: GPL (GNU General Public License)
Version: 14947 (2012-06-01)
Release: 2.2.1
Change History:  
01 Jun 2012: (v.2.2.1) Fix Foswiki:Tasks.Item11919 Workaround for MacOSX fails on other platforms.
18 May 2012: (v.2.2.0) added Configure setting to specify the tmp directory.
12 May 2012: (v2.1) various bug fixes; path settings moved to Configure; made available on
14 Jan 2009: (v2.0) ported to Foswiki
31 Jan 2008: (v1.5) updated to operate with TWiki 4.2
02 Dec 2006: minor bug fix: removed space requirement of render path
29 Aug 2006: (v1.4) minor bug fixes: bibstyle replaces style, CITE/BIBCITE cleanup
19 May 2006: (v1.3) release
06 Jan 2006: added code to generate automatic reference lists, based on declared citations
09 Dec 2005: reworked to use the TWiki:DakarContrib on Cairo and Beijing
26 Nov 2004: added simple and expert search forms, added select option to cgi-script; added configurable default search template
25 Nov 2004: allow inline databases to be queried also, added forgotten bibsearch cgi-script
01 Oct 2004: added cascading style sheets
16 Sep 2004: added tar ball
16 Oct 2003: renamed to BibtexPlugin, formerly known as EmbedBibPlugin
16 Okt 2003: Initial version
CPAN Dependencies: none
Other Dependencies: BibTool, Bibtex2html
Perl Version: >=5.6.1
Plugin Home: Foswiki:Extensions/BibtexPlugin
Support: Foswiki:Support/BibtexPlugin
Topic attachments
I Attachment Action Size Date Who Comment
bibtex-cite-ex.pngpng bibtex-cite-ex.png manage 1.2 K 13 May 2012 - 01:55 ProjectContributor  
bibtex-inline-ex.pngpng bibtex-inline-ex.png manage 51.7 K 13 May 2012 - 01:55 ProjectContributor  
bibtex-ref-ex.pngpng bibtex-ref-ex.png manage 8.5 K 13 May 2012 - 01:56 ProjectContributor  
bibtex-select-ex.pngpng bibtex-select-ex.png manage 26.0 K 13 May 2012 - 01:56 ProjectContributor  
bibtoolrscEXT bibtoolrsc manage 1.9 K 06 Jan 2006 - 00:00 ProjectContributor  
sample.bibbib sample.bib manage 1.7 K 16 Oct 2003 - 11:55 ProjectContributor  
style.csscss style.css manage 1.1 K 13 May 2012 - 00:59 ProjectContributor  
Topic revision: r1 - 13 May 2012, ProjectContributor

This site is powered by FoswikiCopyright &© by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding Aston Wiki? Send feedback