Disclaimer
This plugin is formerly known as the EmbedBibPlugin by
TWiki:Main/DonnyKurniawan. As it has bee rewritten in
major parts the stuff has been renamed. Btw the new name seems more appropriate.
Synopsis
This is a plugin that you can use to embed BibTeX entries in TWiki webs. It uses
BibTool,
Bib2bib and Bibtex2html
Preview
You type
%BIBTEX{select="author:'Moresi'"}%
you get
-
[WeinbergEtal03]
-
R. F. Weinberg, L. Moresi, and P. van der Borgh.
Timing of deformation in the norseman-wiluna belt, yilgarn craton,
western australia.
Precambrian Res, 120 (3-4):219--239, 2003.
-
[VezolainenEtal03]
-
A.V. Vezolainen, V. S. Solomatov, Head J.W., A. T. Basilevsky, and L. N.
Moresi.
Timing of formation of beta regio and its geodynamical implications.
J. Geoph. Res., 108:Art no 5002, 2003.
-
[SolomatovMoresi02]
-
V. S. Solomatov and L. N. Moresi.
Small-scale convection in the d ” layer.
J. Geoph. Res., 107:Art no 2016, 2002.
You type
%STARTBIBTEX{abstracts="on" keywords="on"}%
@Article{DeLange:EPODD-6-3-241,
author = "Rudi W. De Lange and Hendry L. Esterhuizen and Derek
Beatty",
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
typeface.",
keywords = "Legibility, Sans serif typeface, Roman typeface,
Reading task, Times Roman, Helvetica",
annote = "Never thought there is a difference",
}
%STOPBIBTEX%
you get
-
[LangeEtal93]
-
Rudi W. De Lange, Hendry L. Esterhuizen, and Derek Beatty.
Performance differences between Times and Helvetica in a reading
task.
Electronic PublishingOrigination,
Dissemination, and Design, 6(3):241--248, September 1993.
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 typeface.
Keywords: Legibility, Sans serif typeface, Roman
typeface, Reading task, Times Roman, Helvetica
You type
%CITE{SolomatovMoresi02}%
you get
[
SolomatovMoresi02]
Syntax
-
%BIBTEX{<attributes>}%
- render a set of bibtex files attached to some topic
-
%STARTBIBTEX{<attributes>}% ... %STOPBIBTEX%
- render an inline-bibtex database
-
%CITE{key, topic}%
- easy citing: generate an anchor to a bibtex entry on some topic
Attributes
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 |
style |
style |
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 |
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: <dl> ... <dt> keyA </dt> <dd> entry </dd> ... </dl> |
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.
elaborate
- Available search templates
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.
Examples
- %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:
select="year>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"
Tips
- 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 twiki 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{...style="raw"...}% commands inside a %STARBIBTEX% ... %STOPBIBTEX% section.
%STARTBIBTEX%
%BIBTEX{select="author:'YourName'" style="raw"}%
@Misc{YourName02Slides,
crossref = {YourName02},
note = {slides of oral presentation},
}
%STOPBIBTEX%
- Manipulating the Cascading Style Sheet:
You possibly don't like the default stylesheet for bibtexing installed on your twiki 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 {
background:transparent;
border:0px;
}
.bibtex dd {
margin-left:30px;
margin-right:30px;
}
</style>
Global Settings
- One line description, shown in the TextFormattingRules topic:
- Set SHORTDESCRIPTION = Embeds BibTeX entries in a TWiki page
- Default topic name for BibTeX files:
Plugin Installation Instructions
Note: You need to install
BibTool and
Bibtex2html on the server. The commands bibtool and bibtex2html must be in the path of the process that runs the TWiki scripts. If they are not in the path, change
$bibtoolPath and
$bibtex2htmlPath in
lib/TWiki/Plugins/EmbedBibPlugin.pm to point to the correct location. The following instructions are for the administrator who installs the plugin on the server where TWiki is running.
- Download the ZIP file from the Plugin web (see below)
- Unzip
BibtexPlugin.zip
in your twiki installation directory. Content:
File: |
Description: |
data/TWiki/BibtexPlugin.txt |
Plugin topic |
data/TWiki/BibtexSearchTemplate.txt |
default query template |
data/TWiki/BibtexSimpleSearchTemplate.txt |
simple query template |
data/TWiki/BibtexSelectTemplate.txt |
expert query template |
lib/TWiki/Plugins/BibtexPlugin.pm |
Plugin Perl module |
pub/TWiki/BibtexPlugin/sample.bib |
Plugin sample BibTeX file |
pub/TWiki/BibtexPlugin/bibtoolrsc |
bibtool resource file |
bin/bibsearch |
cvi query script |
Plugin Info
Related Topics: TWikiPreferences,
Plugins,
BibtexPluginDev