Difference between revisions of "User:Luigi.scarso/testpage"

From Wiki
Jump to navigation Jump to search
(test page for new publ module)
 
Line 1: Line 1:
= Test =
+
=1 The data­base=
 +
 
 +
The  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.

Revision as of 18:26, 15 January 2014

1 The data­base

The 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

bibtex8

).

    

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

bibtex

pro­gram that con­verts the data­base into some­thing more TEX friendly (a

.bbl

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.

    

In ConTEXt we no longer use the

bibtex

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.

    

A bibTEX file looks like this:

@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",
}


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

pages

have funny char­ac­ters such as the en­dash (typ­i­cally as

--

) 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.

    

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.

    

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.

\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


The split

\artauthor

fields are col­lapsed into a sin­gle

author

field as we deal with the split­ting later when it gets parsed in Lua . The

\artauthor

syn­tax is only kept around for back­ward com­pat­i­bil­ity with the pre­vi­ous use of bibTEX .

    

In the new setup we sup­port these vari­ants as well:

\startpublication[k=Hagen:Third,t=article]
\author{Hans Hagen}
\title{Who knows who?}
...
\stoppublication


and

\startpublication[tag=Hagen:Third,category=article]
\author{Hans Hagen}
\title{Who knows who?}
...
\stoppublication


and

\startpublication
\tag{Hagen:Third}
\category{article}
\author{Hans Hagen}
\title{Who knows who?}
...
\stoppublication


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:

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",
},
}


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.

<?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>


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).

    

So the user has a rather wide choice of for­mat­ting style for bib­li­og­ra­phy data­base files.