Open main menu

Changes

no edit summary
= Test 1 The data­baseThe bibTEX for­mat is rather pop­u­lar in the TEX com­mu­nity and even with its short­com­ings it will stay around for a while. Many pub­li­ca­tion web­sites can ex­port and many tools are avail­able to work with this data­base for­mat. It is rather sim­ple and looks a bit like Lua ta­bles. Un­for­tu­nately the con­tent can be pol­luted with non-stan­dard­ized TEX com­mands which com­pli­cates pre- or post­pro­cess­ing out­side TEX . In that sense a bibTEX data­base is of­ten not coded neu­trally. Some lim­i­ta­tions, like the use of com­mands to en­code ac­cented char­ac­ters root in the ascii world and can be by­passed by us­ing utf in­stead (as han­dled some­what in LATEX through ex­ten­sions such as <pre>bibtex8</pre> ). <br/>The nor­mal way to deal with a bib­li­og­ra­phy is to re­fer to en­tries us­ing a unique tag or key. When a list of en­tries is type­set, this ref­er­ence can be used for link­ing pur­poses. The type­set list can be processed and sorted us­ing the <pre>bibtex</pre> pro­gram that con­verts the data­base into some­thing more TEX friendly (a <pre>.bbl</pre> file). I never used the pro­gram my­self (nor bib­li­ogra­phies) so I will not go into too much de­tail here, if only be­cause all I say can be wrong. <br/>In ConTEXt we no longer use the <pre>bibtex</pre> pro­gram: we just use data­base files and deal with the nec­es­sary ma­nip­u­la­tions di­rectly in ConTEXt . One or more such data­bases can be used and com­bined with ad­di­tional en­tries de­fined within the doc­u­ment. We can have sev­eral such datasets ac­tive at the same time. <br/>A bibTEX file looks like this: <pre detail='typing'>@Article{sometag,author = "An Author and Another One",title = "A hopefully meaningful title",journal = maps,volume = "25",number = "2",pages = "5--9",month = mar,year = "2013",ISSN = "1234-5678",}</pre><br/>Nor­mally a value is given be­tween quotes (or curly brack­ets) but sin­gle words are also OK (there is no real ben­e­fit in not us­ing quotes, so we ad­vise to al­ways use them). There can be many more fields and in­stead of strings one can use pre­de­fined short­cuts. The ti­tle for ex­am­ple quite of­ten con­tains TEX macros. Some fields, like <pre>pages</pre> have funny char­ac­ters such as the en­dash (typ­i­cally as <pre>--</pre> ) so we have a mix­ture of data and type­set­ting di­rec­tives. If you are cov­er­ing non--eng­lish ref­er­ences, you of­ten need char­ac­ters that are not in the ascii sub­set but ConTEXt is quite happy with utf . If your data­base file uses old-fash­ioned TEX ac­cent com­mands then these will be in­ter­nally con­verted au­to­mat­i­cally to utf . Com­mands (macros) are con­verted to an in­di­rect call, which is quite ro­bust. <br/>The bibTEX files are loaded in mem­ory as Lua ta­ble but can be con­verted to xml so that we can ac­cess them in a more flex­i­ble way, but that is a sub­ject for spe­cial­ists. <br/>In the old MkII setup we have two kinds of en­tries: the ones that come from the bibTEX run and user sup­plied ones. We no longer rely on bibTEX out­put but we do still sup­port the user sup­plied de­f­i­n­i­tions. These were in fact pre­pared in a way that suits the pro­cess­ing of bibTEX gen­er­ated en­tries. The next vari­ant re­flects the ConTEXt re­cod­ing of the old bibTEX out­put. <pre detail='typing'>\startpublication[k=Hagen:Second,t=article,a={Hans Hagen},y=2013,s=HH01]\artauthor[]{Hans}[H.]{}{Hagen}\arttitle{Who knows more?}\journal{MyJournal}\pubyear{2013}\month{8}\volume{1}\issue{3}\issn{1234-5678}\pages{123--126}\stoppublication</pre><br/>The split <pre>\artauthor</pre> fields are col­lapsed into a sin­gle <pre>author</pre> field as we deal with the split­ting later when it gets parsed in Lua . The <pre>\artauthor</pre> syn­tax is only kept around for back­ward com­pat­i­bil­ity with the pre­vi­ous use of bibTEX . <br/>In the new setup we sup­port these vari­ants as well: <pre detail='typing'>\startpublication[k=Hagen:Third,t=article]\author{Hans Hagen}\title{Who knows who?}...\stoppublication</pre><br/>and <pre detail='typing'>\startpublication[tag=Hagen:Third,category=article]\author{Hans Hagen}\title{Who knows who?}...\stoppublication</pre><br/>and <pre detail='typing'>\startpublication\tag{Hagen:Third}\category{article}\author{Hans Hagen}\title{Who knows who?}...\stoppublication</pre><br/>Be­cause in­ter­nally the en­tries are Lua ta­bles, we also sup­port load­ing of Lua based de­f­i­n­i­tions: <pre detail='typing'>return {["Hagen:First"] = {author = "Hans Hagen",category = "article",issn = "1234-5678",issue = "3",journal = "MyJournal",month = "8",pages = "123--126",tag = "Hagen:First",title = "Who knows nothing?",volume = "1",year = "2013",},}</pre><br/>Files set up like this can be loaded too. The fol­low­ing xml in­put is rather close to this, and is also ac­cepted as in­put. <pre detail='typing'><?xml version="2.0" standalone="yes" ?><bibtex><entry tag="Hagen:First" category="article"><field name="author">Hans Hagen</field><field name="category">article</field><field name="issn">1234-5678</field><field name="issue">3</field><field name="journal">MyJournal</field><field name="month">8</field><field name="pages">123--126</field><field name="tag">Hagen:First</field><field name="title">Who knows nothing?</field><field name="volume">1</field><field name="year">2013</field></entry></bibtex></pre><br/>Todo: Add some re­marks about load­ing End­Note and RIS for­mats, but first we need to com­plete the tag map­ping (on Alan’s plate). <br/>So the user has a rather wide choice of for­mat­ting style for bib­li­og­ra­phy data­base files.