[svn-upgrade] new version jabref (2.7~beta1+ds)
[debian/jabref.git] / src / help / CustomExports.html
1 <html xmlns="http://www.w3.org/1999/xhtml">
2 <head>
3 <link rel="stylesheet" type="text/css" href="jabref_help.css"/>
4 </head>
5
6 <body>
7
8     <h1>Custom export filters</h1>
9
10     <p>JabRef allows you to define and
11     use your own export filters, in the same way as the standard
12     export filters are defined. An export filter is defined by one
13     or more <i>layout files</i>, which with the help of a
14     collection of built-in formatter routines specify the format of
15     the exported files. Your layout files must be prepared in a
16     text editor outside of JabRef.</p>
17
18     <h2>Adding a custom export filter</h2>
19
20     <p>The only requirement for
21     a valid export filter is the existence of a file with the
22     extension <b>.layout</b>. To add a new custom export filter,
23     open the dialog box <b>Options -&gt; Manage custom exports</b>,
24     and click <b>Add new</b>. A new dialog box will appear,
25     allowing you to specify a name for the export filter (which
26     will appear as one of the choices in the File type dropdown
27     menu of the file dialog when you use the <b>File -&gt;
28     Export</b> menu choice in the JabRef window), the path to the
29     <b>.layout</b> file, and the preferred file extension for the
30     export filter (which will be the suggested extension in the
31     file dialog when you use the export filter).</p>
32
33     <h2>Creating the export filter</h2>
34
35     <p>To see examples of how export filters are made, look for
36     the package containing the layout files for the standard
37     export filters on our download page.</p>
38
39     <h3>Layout files</h3>
40
41     <p>Let us assume that we are creating an HTML export filter.</p>
42
43     <p>While the export filter only needs to consist of a single
44     <b>.layout</b> file, which in this case could be called
45     <i>html.layout</i>, you may also want to add two files called
46     <i>html.begin.layout</i> and <i>html.end.layout</i>. The former
47     contains the header part of the output, and the latter the
48     footer part. JabRef will look for these two files whenever the
49     export filter is used, and if found, either of these will be
50     copied verbatim to the output before or after the individual
51     entries are written.</p>
52
53     <p>Note that these files must reside in the same directory as
54     <i>html.layout</i>, and must be named by inserting
55     <b>.begin</b> and <b>.end</b>, respectively.</p>
56
57     <p>In our example export filter, these could look like the
58     following:</p>
59
60     <p><i>html.begin.layout</i>:<br />
61     <code>&lt;HTML&gt;<br />
62      &lt;BODY&gt; text="#275856"&gt;<br />
63     &lt;basefont size="4" color="#2F4958"
64     face="arial"&gt;</code></p>
65
66     <p><i>html.end.layout</i>:<br />
67     <code>&lt;/BODY&gt;<br />
68      &lt;/HTML&gt;</code></p>
69
70     <p>The file <i>html.layout</i> provides the <i>default</i>
71     template for exporting one single entry. If you want to use
72     different templates for different entry types, you can do this
73     by adding entry-specific <b>.layout</b> files. These must also
74     reside in the same directory as the main layout file, and are
75     named by inserting <b>.entrytype</b> into the name of the main
76     layout file. The entry type name must be in all lowercase. In
77     our example, we might want to add a template for book entries,
78     and this would go into the file <i>html.book.layout</i>. For a
79     PhD thesis we would add the file <i>html.phdthesis.layout</i>,
80     and so on. These files are similar to the default layout file,
81     except that they will only be used for entries of the matching
82     type. Note that the default file can easily be made general
83     enough to cover most entry types in most export filters.</p>
84
85     <h3>The layout file format</h3>
86
87     <p>Layout files are created using a
88     simple markup format where commands are identified by a
89     preceding backslash. All text not identified as part of a
90     command will be copied verbatim to the output file.</p>
91
92     <h3>Field commands</h3>
93
94     <p>An arbitrary word preceded by a backslash, e.g.
95     <code>\author</code>, <code>\editor</code>, <code>\title</code>
96     or <code>\year</code>, will be interpreted as a reference to
97     the corresponding field, which will be copied directly to the
98     output.</p>
99
100     <h3>Field formatters</h3>
101
102     <p>Often there will be a need for some preprocessing of the
103     field contents before output. This is done using a <i>field
104     formatter</i> - a java class containing a single method that
105     manipulates the contents of a field.</p>
106
107     <p>A formatter is used by inserting the <code>\format</code>
108     command followed by the formatter name in square braces, and
109     the field command in curly braces, e.g.:</p>
110
111     <p><code>\format[ToLowerCase]{\author}</code></p>
112
113     <p>You can also specify multiple formatters separated by
114     commas. These will be called sequentially, from left to right,
115     e.g.</p>
116
117     <p><code>\format[ToLowerCase,HTMLChars]{\author}</code></p>
118
119     <p>will cause the formatter <b>ToLowerCase</b> to be called
120     first, and then <b>HTMLChars</b> will be called to format the
121     result. You can list an arbitrary number of formatters in this
122     way.</p>
123
124     <p>The argument to the formatters, withing the curly braces,
125     does not have to be a field command. Instead, you can insert
126     normal text, which will then be passed to the formatters
127     instead of the contents of any field. This can be useful for
128     some fomatters, e.g. the CurrentDate formatter (described
129     below).</p>
130
131     <p>Some formatters take an extra argument, given in parentheses
132     immediately after the formatter name. The argument can be enclosed
133     in quotes, which is necessary if it includes the parenthesis characters.
134     For instance, <code>\format[Replace("\s,_")]{\journal}</code> calls
135     the <b>Replace</b> formatter with the argument <b>\s,_</b> (which results
136     in the "journal" field after replacing all whitespace by underscores).
137     </p>
138
139     <p>See below for a list of built-in export formatters.</p>
140
141     <h3>Conditional output</h3>
142
143     <p>Some static output might only make
144     sense if a specific field is set. For instance, say we want to
145     follow the editor names with the text <code>(Ed.)</code>. This
146     can be done with the following text:</p>
147
148     <p><code>\format[HTMLChars,AuthorFirstFirst]{\editor}
149     (Ed.)</code></p>
150
151     <p>However, if the <code>editor</code> field has not been set -
152     it might not even make sense for the entry being exported - the
153     <code>(Ed.)</code> would be left hanging. This can be prevented
154     by instead using the <code>\begin</code> and <code>\end</code>
155     commands:</p>
156
157     <p><code>\begin{editor}<br />
158     \format[HTMLChars,AuthorFirstFirst]{\editor} (Ed.)<br />
159      \end{editor}</code></p>
160
161     <p>The <code>\begin</code> and <code>\end</code> commands make
162     sure the text in between is printed if and only if the field
163     referred in the curly braces is defined for the entry being
164     exported.</p>
165
166     <p>A conditional block can also be dependent on more than one field. In this case
167     the contents of the block are printed only if all the fields are defined. To make
168     such a block, simply give the list of fields separated by semicolons. For instance,
169     to output text only if both <code>year</code> and <code>month</code> are set, use
170     a block like the following:</p>
171
172     <p><code>\begin{year;month}Month: \format[HTMLChars]{\month}\end{year;month}</code></p>
173
174     <p>which will print "Month: " plus the contents of the <code>month</code> field, but
175     only if also the <code>year</code> field is defined.</p>
176
177     <p><b>Note:</b> Use of the <code>\begin</code> and
178     <code>\end</code> commands is a key to creating layout files
179     that work well with a variety of entry types.</p>
180
181     <h3>Grouped output</h3>
182
183     <p>If you wish to separate your entries
184     into groups based on a certain field, use the grouped output
185     commands. Grouped output is very similar to conditional output,
186     except that the text in between is printed only if the field
187     referred in the curly braces has changed value.</p>
188
189     <p>For example, let's assume I wish to group by keyword. Before
190     exporting the file, make sure you have sorted your entries
191     based on keyword. Now use the following commands to group by
192     keyword:</p>
193
194     <p><code>\begingroup{keywords}New Category:
195     \format[HTMLChars]{\keywords}<br />
196      \endgroup{keywords}</code></p>
197
198     <h2>Sharing your work</h2>
199
200     <p>With external layout files, it's
201     fairly simple to share custom export formats between users. If
202     you write an export filter for a format not supported by
203     JabRef, or an improvement over an existing one, we encourage
204     you to post your work on our SourceForge.net page. The same
205     goes for formatter classes that you write. We'd be happy to
206     distribute a collection of submitted layout files, or to add to
207     the selection of standard export filters and formatters.</p>
208
209     <p>Starting with JabRef 2.4 you can also package your 
210         ExportFormat or LayoutFormatter as a plug-in. If you do so,
211         you can provide a single zip-file to other user to make use
212         of your ExportFormat. For an example download the JabRef
213         source release and have a look at the directory
214         <code>src/plugins/</code>. Don't hesitate to stop by the
215         forums on Sourceforge, since we don't have extensive documentation, yet.</p>
216
217
218     <h2>Built-in export formatters</h2>
219
220     <p>JabRef provides the following set of formatters:</p>
221
222     <ul>
223         <li><code>Authors</code> : this formatter provides formatting options for the author and editor fields; for detailed information, see below. It deprecates a range of dedicated formatters provided in versions of JabRef prior to 2.7.</li>
224
225         <li><code>CreateDocBookAuthors</code> : formats the author
226         field in DocBook style.</li>
227
228         <li><code>CreateDocBookEditors</code> : to be
229         documented.</li>
230
231         <li><code>CurrentDate</code> : outputs the current date.
232         With no argument, this formatter outputs the current date
233         and time in the format "yyyy.MM.dd hh:mm:ss z" (date, time
234         and time zone). By giving a different format string as
235         argument, the date format can be customized. E.g.
236         <code>\format[CurrentDate]{yyyy.MM.dd}</code> will give the
237         date only, e.g. 2005.11.30.</li>
238
239         <li><code>Default</code> : takes a single argument, which serves as a default value.
240         If the string to format is non-empty, it is output without changes. If it is empty,
241         the default value is output. For instance, <code>\format[Default(unknown)]{\year}</code>
242         will output the entry's year if set, and "unknown" if no year is set.</li>
243         
244         <li><code>DOIStrip</code> : strips any prefixes from the DOI string.</li>
245         <li><code>DOICheck</code> : provides the full url for a DOI link.</li>
246
247         <li><code>FileLink(filetype)</code> : if no argument is given, this formatter outputs
248         the first external file link encoded in the field. To work, the formatter must
249         be supplied with the contents of the "file" field.
250         <p>This formatter takes the name of an external file type as an optional argument,
251         specified in parentheses after the formatter name. For instance,
252         <code>\format[FileLink(pdf)]{\file}</code> specifies <code>pdf</code> as an
253         argument. When an argument is given, the formatter selects the first file
254         link of the specified type. In the example, the path to the first PDF link will
255         be output.</p></li>
256
257         <li><code>FirstPage</code> : returns the first page from the "pages" field, if set.
258             For instance, if the pages field is set to "345-360" or "345--360",
259             this formatter will return "345".</li>
260
261         <li><code>FormatPagesForHTML</code> : replaces "--" with "-".</li>
262
263         <li><code>FormatPagesForXML</code> : replaces "--" with an XML en-dash.</li>
264
265         <li><code>GetOpenOfficeType</code> : returns the number used by the OpenOffice.org
266         bibliography system (versions 1.x and 2.x) to denote the type of this entry.</li>
267
268         <li><code>HTMLChars</code> : replaces TeX-specific special
269         characters (e.g. {\^a} or {\"{o}}) with their HTML
270         representations, and translates LaTeX commands \emph, \textit,
271         \textbf into HTML equivalents.</li>
272
273         <li><code>HTMLParagraphs</code> : interprets two
274         consecutive newlines (e.g. \n \n) as the beginning of a new
275         paragraph and creates paragraph-html-tags accordingly.</li>
276
277         <li><code>IfPlural</code> : outputs its first argument if the input field looks
278         like an author list with two or more names, or its second argument otherwise.
279         E.g. <code>\format[IfPlural(Eds.,Ed.)]{\editor}</code> will output "Eds." if there
280         is more than one editor, and "Ed." if there is only one.</li>
281
282         <li><code>LastPage</code> : returns the last page from the "pages" field, if set.
283             For instance, if the pages field is set to "345-360" or "345--360",
284             this formatter will return "360".</li>
285
286         <li><code>Number</code> : outputs the 1-based sequence number of the current entry in the
287         current export. This formatter can be used to make a numbered list of entries. The
288         sequence number depends on the current entry's place in the current sort order, not on
289         the number of calls to this formatter.</li>
290
291         <li><code>RemoveBrackets</code> : removes all curly brackets "{" or "}".</li>
292
293         <li><code>RemoveBracketsAddComma</code> : to be documented.</li>
294
295         <li><code>RemoveLatexCommands</code> : removes LaTeX
296         commands like <code>\em</code>, <code>\textbf</code>, etc.
297         If used together with <code>HTMLChars</code> or
298         <code>XMLChars</code>, this formatter should be called
299         last.</li>
300
301         <li><code>RemoveTilde</code> : replaces the tilde character
302         used in LaTeX as a non-breakable space by a regular space.
303         Useful in combination with the NameFormatter discussed in
304         the next section.</li>
305
306         <li><code>RemoveWhitespace</code> : removes all whitespace characters.</li>
307
308         <li><code>Replace(regexp,replacewith)</code> : does a regular expression replacement.
309         To use this formatter, a two-part argument must be given. The parts are
310         separated by a comma. To indicate the comma character, use an escape
311         sequence: \,<br/>&nbsp;<br/>
312         The first part is the regular expression to search for. Remember that any commma
313         character must be preceded by a backslash, and consequently a literal backslash must
314         be written as a pair of backslashes. A description of Java regular expressions can be
315         found at:<br/>
316         &nbsp;http://java.sun.com/j2se/1.4.2/docs/api/java/util/regex/Pattern.html
317          <br/>&nbsp;<br/>
318         The second part is the text to replace all matches with.</li>
319
320         <li><code>RTFChars</code> : replaces TeX-specific special
321         characters (e.g. {\^a} or {\"{o}}) with their RTF
322         representations, and translates LaTeX commands \emph, \textit,
323         \textbf into RTF equivalents.</li>
324
325         <li><code>ToLowerCase</code> : turns all characters into
326         lower case.</li>
327
328         <li><code>ToUpperCase</code> : turns all characters into
329         upper case.</li>
330
331         <li><code>WrapContent</code> : This formatter outputs the input value after adding a
332         prefix and a postfix, as long as the input value is non-empty. If the input value
333         is empty, an empty string is output (the prefix and postfix are not output in this case).
334         The formatter requires an argument containing the prefix and postix separated
335         by a comma. To include the comma character in either, use an escape sequence
336         (\,).</li>
337
338         <li><code>WrapFileLinks</code> : See below.</li>
339
340         <li><code>XMLChars</code> : replaces TeX-specific special
341         characters (e.g. {\^a} or {\"{o}}) with their XML
342         representations.</li>
343
344     </ul>
345
346 <h3>The <code>Authors</code> formatter</h3>
347
348 <p>To accommodate for the numerous citation styles, the <code>Authors</code> formatter allows flexible control over the layout of the author list. The formatter takes a comma-separated list of options, by which the default values can be overridden. The following option/value pairs are currently available, where the default values are given in curly brackets.</p>
349 <dl>
350 <dt><code>AuthorSort = [ {FirstFirst} | LastFirst | LastFirstFirstFirst ]</code></dt>
351 <dd>specifies the order in which the author names are formatted.
352         <ul>
353                 <li><code>FirstFirst</code> : first names are followed by the surname.</li>
354                 <li><code>LastFirst</code> : the authors' surnames are followed by their first names, separated by a comma.</li>                
355                 <li><code>LastFirstFirstFirst</code> : the first author is formatted as LastFirst, the subsequent authors as FirstFirst.</li>
356         </ul>
357 </dd>
358
359 <dt><code>AuthorAbbr = [ FullName | LastName | {Initials} | InitialsNoSpace | FirstInitial | MiddleInitial ]</code></dt>
360 <dd>specifies how the author names are abbreviated.
361         <ul>
362                 <li><code>FullName</code> : shows full author names; first names are not abbreviated.</li>
363                 <li><code>LastName</code> : show only surnames, first names are removed.</li> 
364                 <li><code>Initials</code> : all first names are abbreviated.</li> 
365                 <li><code>InitialsNospace</code> : as Initials, with any spaces between initials removed.</li>
366                 <li><code>FirstInitial</code> : only first initial is shown.</li> 
367                 <li><code>MiddleInitial</code> : first name is shown, but all middle names are abbreviated.</li>
368         </ul>   
369 </dd>
370
371 <dt><code>AuthorPunc = [ {FullPunc} | NoPunc | NoComma | NoPeriod ]</code></dt>
372 <dd>specifies the punctuation used in the author list when <code>AuthorAbbr</code> is used
373         <ul>
374                 <li><code>FullPunc</code> : no changes are made to punctuation.</li>
375                 <li><code>NoPunc</code> : all full stops and commas are removed from the author name.</li>
376                 <li><code>NoComma</code> : all commas are removed from the author name.</li>
377                 <li><code>NoPeriod</code> : all full stops are removed from the author name.</li>
378         </ul>   
379 </dd>
380
381 <dt><code>AuthorSep = [ {Comma} | And | Colon | Semicolon | Sep=&lt;string&gt; ]</code></dt>
382 <dd>specifies the separator to be used between authors. Any separator can be specified, with the <code>Sep=&lt;string&gt;</code> option. Note that appropriate spaces need to be added around <code>string</code>.</dd> 
383
384 <dt><code>AuthorLastSep = [ Comma | {And} | Colon | Semicolon | Amp | Oxford | LastSep=&lt;string&gt; ]</code></dt>
385 <dd>specifies the last separator in the author list. Any separator can be specified, with the <code>LastSep=&lt;string&gt;</code> option. Note that appropriate spaces need to be added around <code>string</code>.</dd>
386
387 <dt><code>AuthorNumber = [ {inf} | &lt;integer&gt; ]</code></dt>
388 <dd>specifies the number of authors that are printed. If the number of authors exceeds the maximum specified, the authorlist is replaced by the first author, followed by <code>EtAlString</code>.</dd>
389
390 <dt><code>EtAlString = [ { et al.} | EtAl=&lt;string&gt; ]</code></dt>
391 <dd>specifies the string used to replace multiple authors. Any string can be given, using <code>EtAl=&lt;string&gt;</code></dd>
392
393 </dl>
394
395 <p>If an option is unspecified, the default value (shown in curly brackets above) is used. Therefore, only layout options that differ from the defaults need to be specified. The order in which the options are defined is (mostly) irrelevant. So, for example,</p>
396 <p><code>\format[Authors(Initials,Oxford)]{\author}</code></p>
397 <p>is equivalent to</p>
398 <p><code>\format[Authors(Oxford,Initials)]{\author}</code></p>
399 <p>As mentioned, the order in which the options are specified is irrelevant. There is one possibility for ambiguity, and that is if both <code>AuthorSep</code> and <code>AuthorLastSep</code> are given. In that case, the first applicable value encountered would be for <code>AuthorSep</code>, and the second for <code>AuthorLastSep</code>. It is good practise to specify both when changing the default, to avoid ambiguity.</p>
400
401 <h4>Examples</h4>
402 <p>Given the following authors, <i>"Joe James Doe and Mary Jane and Bruce Bar and Arthur Kay"</i> ,the <code>Authors</code> formatter will give the following results:</p>
403 <dl>
404 <dt><code>Authors()</code>, or equivalently, <code>Authors(FirstFirst,Initials,FullPunc,Comma,And,inf,EtAl= et al.)</code></dt>
405 <dd><pre>J. J. Doe, M. Jane, B. Bar and A. Kay</pre></dd>
406
407 <dt><code>Authors(LastFirstFirstFirst,MiddleInitial,Semicolon)</code></dt>
408 <dd><pre>Doe, Joe J.; Mary Jane; Bruce Bar and Arthur Kay</pre></dd>
409
410 <dt><code>Authors(LastFirst,InitialsNoSpace,NoPunc,Oxford)</code></dt>
411 <dd><pre>Doe JJ, Jane M, Bar B, and Kay A</pre></dd>
412
413 <dt><code>Authors(2,EtAl= and others)</code></dt>
414 <dd><pre>J. J. Doe and others</pre></dd>
415 </dl>
416 <p>Most commonly available citation formats should be possible with this formatter. For even more advanced options, consider using the Custom Formatters detailed below.</p>
417
418 <h3>The <code>WrapFileLinks</code> formatter</h3>
419
420 <p>This formatter iterates over all file links, or all file links of a specified type, outputting a format string given as the first argument. The format string can contain a number of escape sequences indicating file link information to be inserted into the string.</p>
421 <p>This formatter can take an optional second argument specifying the name of a file type. If specified, the iteration will only include those files with a file type matching the given name (case-insensitively). If specified as an empty argument, all file links will be included.</p>
422 <p> After the second argument, pairs of additional arguments can be added in order to specify regular expression replacements to be done upon the inserted link information before insertion into the output string. A non-paired argument will be ignored. In order to specify replacements without filtering on file types, use an empty second argument.</p>
423 <p>The escape sequences for embedding information are as follows:</p>
424 <ul>
425         <li><code>\i</code> : This inserts the iteration index (starting from 1), and can be useful if the output list of files should be enumerated.</li>
426         <li><code>\p</code> : This inserts the file path of the file link.</li>
427         <li><code>\f</code> : This inserts the name of the file link's type.</li>
428         <li><code>\x</code> : This inserts the file's extension, if any.</li>
429         <li><code>\d</code> : This inserts the file link's description, if any.</li>
430 </ul>
431 <p>For instance, an entry could contain a file link to the file "/home/john/report.pdf" of the "PDF" type with description "John's final report". Using the WrapFileLinks formatter with the following argument:</p>
432 <p><code>\format[WrapFileLinks(\i. \d (\p))]{\file}</code></p>
433 <p>would give the following output:</p>
434 <pre>
435     1. John's final report (/home/john/report.pdf)
436
437 </pre>
438 <p>If the entry contained a second file link to the file "/home/john/draft.txt" of the "Text file" type with description 'An early "draft"', the output would be as follows:</p>
439 <pre>
440     1. John's final report (/home/john/report.pdf)
441     2. An early "draft" (/home/john/draft.txt)
442
443 </pre>
444 <p>If the formatter was called with a second argument, the list would be filtered. For instance:</p>
445 <p><code>\format[WrapFileLinks(\i. \d (\p),,text file)]{\file}</code></p>
446 <p> would show only the text file:</p>
447 <pre>
448     1. An early "draft" (/home/john/draft.txt)
449
450 </pre>
451 <p>If we wanted this output to be part of an XML styled output, the quotes in the file description could cause problems. Adding two additional arguments to translate the quotes into XML characters solves this:</p>
452 <p><code>\format[WrapFileLinks(\i. \d (\p),,text file,",&amp;quot;)]{\file}</code></p>
453 <p>would give the following output:</p>
454 <pre>
455     1. An early &quot;draft&quot; (/home/john/draft.txt)
456
457 </pre>
458 <p>Additional pairs of replacements could be added.</p>
459
460
461     <h3>Custom formatters</h3>
462     <p>If none of the available formatters can do what you want to
463     achieve, you can add your own by implementing the
464     <code>net.sf.jabref.export.layout.LayoutFormatter</code>
465     interface. If you insert your class into the
466     <code>net.sf.jabref.export.layout.format</code> package, you
467     can call the formatter by its class name only, like with the
468     standard formatters. Otherwise, you must call the formatter by
469     its fully qualified name (including package name). In any case,
470     the formatter must be in your classpath when running
471     JabRef.</p>
472
473     <h2><a name="NameFormatter"
474        id="NameFormatter">Using Custom Name Formatters</a></h2>
475
476     <p>From JabRef 2.2, it is possible to define custom name
477     formatters using the bibtex-sty-file syntax. This allows
478     ultimate flexibility, but is a cumbersome to write</p>
479
480     <p>You can define your own formatter in the preference tab
481     "Name Formatter" using the following format and then use it
482     with the name given to it as any other formatter</p>
483     <code>&lt;case1&gt;@&lt;range11&gt;@&lt;format&gt;@&lt;range12&gt;@&lt;format&gt;@&lt;range13&gt;...@@<br />
484
485      &lt;case2&gt;@&lt;range21&gt;@... and so on.</code>
486
487     <p>This format first splits the task to format a list of author
488     into cases depending on how many authors there are (this is
489     since some formats differ depending on how many authors there
490     are). Each individual case is separated by @@ and contains
491     instructions on how to format each author in the case. These
492     instructions are separated by a @.</p>
493
494     <p>Cases are identified using integers (1, 2, 3, etc.) or the
495     character * (matches any number of authors) and will tell the
496     formatter to apply the following instructions if there are a
497     number of less or equal of authors given.</p>
498
499     <p>Ranges are either
500     <code>&lt;integer&gt;..&lt;integer&gt;</code>,
501     <code>&lt;integer&gt;</code> or the character <code>*</code>
502     using a 1 based index for indexing authors from the given list
503     of authors. Integer indexes can be negative to denote them to
504     start from the end of the list where -1 is the last author.</p>
505
506     <p>For instance with an authorlist of "Joe Doe and Mary Jane
507     and Bruce Bar and Arthur Kay":</p>
508
509     <ul>
510         <li>1..3 will affect Joe, Mary and Bruce</li>
511
512         <li>4..4 will affect Arthur</li>
513
514         <li>* will affect all of them</li>
515
516         <li>2..-1 will affect Mary, Bruce and Arthur</li>
517     </ul>
518
519     <p>The <code>&lt;format&gt;</code>-strings use the Bibtex
520     formatter format:</p>
521
522     <p>The four letters v, f, l, j indicate the name parts von,
523     first, last, jr which are used within curly braces. A single
524     letter v, f, l, j indicates that the name should be
525     abbreviated. If one of these letters or letter pairs is
526     encountered JabRef will output all the respective names
527     (possibly abbreviated), but the whole expression in curly
528     braces is only printed if the name part exists.</p>
529
530     <p>For instance if the format is "{ll} {vv {von Part}} {ff}"
531     and the names are "Mary Kay and John von Neumann", then JabRef
532     will output "Kay Mary" (with two space between last and first)
533     and "Neuman von von Part John".</p>
534
535     <p>I give two examples but would rather point you to the bibtex
536     documentation.</p>
537
538     <p>Small example: <code>"{ll}, {f.}"</code> will turn
539     <code>"Joe Doe"</code> into <code>"Doe, J."</code></p>
540
541     <p>Large example:</p>
542
543     <blockquote>
544         <p>To turn:</p>
545
546         <p><code>"Joe Doe and Mary Jane and Bruce Bar and Arthur
547         Kay"</code></p>
548
549         <p>into</p>
550
551         <p><code>"Doe, J., Jane, M., Bar, B. and Kay,
552         A."</code></p>
553
554         <p>you would use</p>
555
556         <p><code>1@*@{ll}, {f}.@@2@1@{ll}, {f}.@2@ and {ll},
557         {f}.@@*@1..-3@{ll}, {f}., @-2@{ll}, {f}.@-1@ and {ll},
558         {f}.</code></p>
559     </blockquote>
560
561     <p>If somebody would like to write a better tutorial about
562     this: Write a mail to one of the JabRef mailinglists!</p>
563
564
565 </body>
566 </html>