* Bibliography, unicode strings, @ELECTRONIC, sorting and bibtex
@ 2012-09-18 10:28 Marco Patzer
2012-09-18 11:41 ` Schmitz Thomas A.
0 siblings, 1 reply; 9+ messages in thread
From: Marco Patzer @ 2012-09-18 10:28 UTC (permalink / raw)
To: context
Hi,
I have some questions regarding the bibliography.
1)
The style files bibl-ams.tex, bibl-ssa.tex, etc contain strings like
``, ~. This does not make sense to me. The `` ends up like that in
the output and the tilde might interfere with the \asciimode
setting. Wouldn't it be better to use the proper Unicode glyphs
(U+201C, U+00A0, etc.) nowadays? I assume the files are old MkII
files and not being updated since. Example:
\setupbibtex [database=sample]
\setuppublications [alternative=ssa]
\starttext
\cite[hh2010a]
\cite[Eijkhout1991]
\cite[hh2010]
\placepublications [criterium=cite]
\stoptext
2)
The @ELECTRONIC type does not work (already mentioned in the wiki).
It does not show up in the references list. I guess no one bothered
adding them and it's up to me to add the corresponding entries.
Maybe someone has already prepared a working file for the APA style?
3)
How to sort the bibliography by author? According to the bib manual
I expected this to work:
\setupbibtex [database=sample]
\setuppublications [alternative=apa, criterium=cite, sort=author]
\starttext
\cite[hh2010a]
\cite[Eijkhout1991]
\placepublications
\stoptext
4)
\completepublications produces an empty page. Is that intended?
\setupbibtex [database=sample]
\setuppublications [alternative=ssa, criterium=cite]
\starttext
\cite[hh2010a]
\completepublications
\stoptext
5) (side question)
What is BibTeX used for in ConTeXt? As far as I can see, it reads
the .bib database and generates a .bbl file which then is read in by
ConTeXt. Why do we need an external tool for this? Why does ConTeXt
not read in the .bib database and directly save it as a Lua table?
Marco
___________________________________________________________________________________
If your question is of interest to others as well, please add an entry to the Wiki!
maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context
webpage : http://www.pragma-ade.nl / http://tex.aanhet.net
archive : http://foundry.supelec.fr/projects/contextrev/
wiki : http://contextgarden.net
___________________________________________________________________________________
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Bibliography, unicode strings, @ELECTRONIC, sorting and bibtex
2012-09-18 10:28 Bibliography, unicode strings, @ELECTRONIC, sorting and bibtex Marco Patzer
@ 2012-09-18 11:41 ` Schmitz Thomas A.
2012-09-18 12:25 ` Marco Patzer
2012-09-18 15:15 ` Alan BRASLAU
0 siblings, 2 replies; 9+ messages in thread
From: Schmitz Thomas A. @ 2012-09-18 11:41 UTC (permalink / raw)
To: mailing list for ConTeXt users
On Sep 18, 2012, at 12:28 PM, Marco Patzer <homerow@lavabit.com> wrote:
> Hi,
>
> I have some questions regarding the bibliography.
>
> 1)
> The style files bibl-ams.tex, bibl-ssa.tex, etc contain strings like
> ``, ~. This does not make sense to me. The `` ends up like that in
> the output and the tilde might interfere with the \asciimode
> setting. Wouldn't it be better to use the proper Unicode glyphs
> (U+201C, U+00A0, etc.) nowadays? I assume the files are old MkII
> files and not being updated since. Example:
>
> \setupbibtex [database=sample]
> \setuppublications [alternative=ssa]
> \starttext
> \cite[hh2010a]
> \cite[Eijkhout1991]
> \cite[hh2010]
> \placepublications [criterium=cite]
> \stoptext
>
You're right, this is old code that needs to be fixed. The problem is that users of bibtex in ConTeXt are a minority, and users of such precooked styles a tiny minority - I use bibtex quite often, but wouldn't know how to fix these styles and have never used them. So if you're sure about what to do, fix them and send Hans a patch.
> 2)
> The @ELECTRONIC type does not work (already mentioned in the wiki).
> It does not show up in the references list. I guess no one bothered
> adding them and it's up to me to add the corresponding entries.
>
> Maybe someone has already prepared a working file for the APA style?
Possible. I have @ELECTRONIC definitions in my own private style files, but have never used APA.
>
> 3)
> How to sort the bibliography by author? According to the bib manual
> I expected this to work:
>
> \setupbibtex [database=sample]
> \setuppublications [alternative=apa, criterium=cite, sort=author]
You haven't read carefully enough, it's sorttype=author
> \starttext
> \cite[hh2010a]
> \cite[Eijkhout1991]
> \placepublications
> \stoptext
>
> 4)
> \completepublications produces an empty page. Is that intended?
>
> \setupbibtex [database=sample]
> \setuppublications [alternative=ssa, criterium=cite]
> \starttext
> \cite[hh2010a]
> \completepublications
> \stoptext
>
http://archive.contextgarden.net/message/20110923.091734.6b388a11.en.html
> 5) (side question)
> What is BibTeX used for in ConTeXt? As far as I can see, it reads
> the .bib database and generates a .bbl file which then is read in by
> ConTeXt. Why do we need an external tool for this? Why does ConTeXt
> not read in the .bib database and directly save it as a Lua table?
Because nobody has coded that part yet? This may not be as easy as you make it sound because quite a few heuristics go into parsing bibtex files (e.g., look at the way in which bibtex divides names into first name, last name, von-part, jr-part). Over the years, I have read and heard many complaints about bibtex and many announcements that something infinitely better is just around the corner, to be delivered in all its glory "real soon now." For the time being, I don't see any real replacement, but I may be wrong.
Thomas
___________________________________________________________________________________
If your question is of interest to others as well, please add an entry to the Wiki!
maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context
webpage : http://www.pragma-ade.nl / http://tex.aanhet.net
archive : http://foundry.supelec.fr/projects/contextrev/
wiki : http://contextgarden.net
___________________________________________________________________________________
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Bibliography, unicode strings, @ELECTRONIC, sorting and bibtex
2012-09-18 11:41 ` Schmitz Thomas A.
@ 2012-09-18 12:25 ` Marco Patzer
2012-09-18 13:28 ` Philipp Gesang
2012-09-18 13:48 ` Schmitz Thomas A.
2012-09-18 15:15 ` Alan BRASLAU
1 sibling, 2 replies; 9+ messages in thread
From: Marco Patzer @ 2012-09-18 12:25 UTC (permalink / raw)
To: ntg-context
2012-09-18 "Schmitz Thomas A." <thomas.schmitz@uni-bonn.de>:
Hi Thomas
> The problem is that users of bibtex in ConTeXt are a minority, and
> users of such precooked styles a tiny minority
With a handful of up-to-date working common citation styles
citations would be much more easy. But I get your point.
> I use bibtex quite often, but wouldn't know how to fix these
> styles and have never used them. So if you're sure about what to
> do, fix them and send Hans a patch.
Frankly, I'm no expert in those things. The bibliographies I created
so far were quick and dirty, I didn't have the time to create proper
styles or repair the shipped ones. I will see what I can do to at
least improve the existing ones after the current project is done.
> > Maybe someone has already prepared a working file for the APA
> > style?
>
> Possible. I have @ELECTRONIC definitions in my own private style
> files, but have never used APA.
Same here.
> > \setuppublications [alternative=apa, criterium=cite, sort=author]
>
> You haven't read carefully enough, it's sorttype=author
This doesn't work, either:
\setupbibtex [database=sample]
\setuppublications [alternative=apa, criterium=cite, sorttype=author]
\starttext
\cite[hh2010a]
\cite[Eijkhout1991]
\placepublications
\stoptext
> > \completepublications produces an empty page. Is that intended?
> >
> http://archive.contextgarden.net/message/20110923.091734.6b388a11.en.html
Using criterium=text fixed it.
> > What is BibTeX used for in ConTeXt? As far as I can see, it reads
> > the .bib database and generates a .bbl file which then is read in by
> > ConTeXt. Why do we need an external tool for this? Why does ConTeXt
> > not read in the .bib database and directly save it as a Lua table?
>
> Because nobody has coded that part yet? This may not be as easy as
> you make it sound because quite a few heuristics go into parsing
> bibtex files (e.g., look at the way in which bibtex divides names
> into first name, last name, von-part, jr-part).
I'm aware of that. So it basically boils down to the fact that
bibliographies are not popular among ConTeXt users (including Hans)
and therefore much functionality is not properly implemented or
cared for. And BibTeX is used since it understands the semantics of
bib files, although a pure ConTeXt/Lua solution would be possible.
Without BibTeX this functionality would be missing since no one is
willing to implement a parser for .bib databases.
If I only had time…
Marco
___________________________________________________________________________________
If your question is of interest to others as well, please add an entry to the Wiki!
maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context
webpage : http://www.pragma-ade.nl / http://tex.aanhet.net
archive : http://foundry.supelec.fr/projects/contextrev/
wiki : http://contextgarden.net
___________________________________________________________________________________
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Bibliography, unicode strings, @ELECTRONIC, sorting and bibtex
2012-09-18 12:25 ` Marco Patzer
@ 2012-09-18 13:28 ` Philipp Gesang
2012-09-18 14:19 ` Marco Patzer
2012-09-18 13:48 ` Schmitz Thomas A.
1 sibling, 1 reply; 9+ messages in thread
From: Philipp Gesang @ 2012-09-18 13:28 UTC (permalink / raw)
To: mailing list for ConTeXt users
[-- Attachment #1.1: Type: text/plain, Size: 3522 bytes --]
Hi all,
···<date: 2012-09-18, Tuesday>···<from: Marco Patzer>···
> 2012-09-18 "Schmitz Thomas A." <thomas.schmitz@uni-bonn.de>:
>
> > > What is BibTeX used for in ConTeXt? As far as I can see, it reads
> > > the .bib database and generates a .bbl file which then is read in by
> > > ConTeXt. Why do we need an external tool for this? Why does ConTeXt
> > > not read in the .bib database and directly save it as a Lua table?
> >
> > Because nobody has coded that part yet? This may not be as easy as
> > you make it sound because quite a few heuristics go into parsing
> > bibtex files (e.g., look at the way in which bibtex divides names
> > into first name, last name, von-part, jr-part).
>
> I'm aware of that. So it basically boils down to the fact that
> bibliographies are not popular among ConTeXt users (including Hans)
> and therefore much functionality is not properly implemented or
> cared for.
tl;dr: It’s not unpopular, it’s a Hard Problem™.
I guess that is so because bibliographies and citation rules are
a hard problem to solve generally. As a recent thread on this
list revealed, most of us are content to instead solve the much
easier problem of creating some bib functionality themselves,
tailored to their own needs.[0] A given cite/bib ruleset is easy
to implement (as long as you don’t put too much weight on
sorting) -- we have Lua, after all. Developing a framework for
bibliographies, where everything needs to be adjustable and
parameterized (by non-technical people) on demand while remaining
stable over a long time, is however a totally different matter.
Just have a look at the biber/biblatex codebase and decide
yourself. (Now try to imagine the same without Perl and XML to
get the style bonus ;-) )
Context, as opposed to LaTeX, lacks the consistent formatting
requirements by journals and editors, simply because they don’t
usually accept it as an input format.
[0] http://www.mail-archive.com/ntg-context@ntg.nl/msg62855.html
> And BibTeX is used since it understands the semantics of
> bib files, although a pure ConTeXt/Lua solution would be possible.
> Without BibTeX this functionality would be missing since no one is
> willing to implement a parser for .bib databases.
Context happens to have such a parser, written in Lua. Probably
the best one around:
·······································································
\starttext
\startluacode
local db = bibtex.new()
bibtex.load(db, "filename.bib")
table.print(db)
\stopluacode
\stoptext
·······································································
Regards
Philipp
>
> If I only had time…
>
>
> Marco
>
> ___________________________________________________________________________________
> If your question is of interest to others as well, please add an entry to the Wiki!
>
> maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context
> webpage : http://www.pragma-ade.nl / http://tex.aanhet.net
> archive : http://foundry.supelec.fr/projects/contextrev/
> wiki : http://contextgarden.net
> ___________________________________________________________________________________
--
() ascii ribbon campaign - against html e-mail
/\ www.asciiribbon.org - against proprietary attachments
[-- Attachment #1.2: Type: application/pgp-signature, Size: 198 bytes --]
[-- Attachment #2: Type: text/plain, Size: 485 bytes --]
___________________________________________________________________________________
If your question is of interest to others as well, please add an entry to the Wiki!
maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context
webpage : http://www.pragma-ade.nl / http://tex.aanhet.net
archive : http://foundry.supelec.fr/projects/contextrev/
wiki : http://contextgarden.net
___________________________________________________________________________________
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Bibliography, unicode strings, @ELECTRONIC, sorting and bibtex
2012-09-18 12:25 ` Marco Patzer
2012-09-18 13:28 ` Philipp Gesang
@ 2012-09-18 13:48 ` Schmitz Thomas A.
2012-09-18 14:11 ` Marco Patzer
1 sibling, 1 reply; 9+ messages in thread
From: Schmitz Thomas A. @ 2012-09-18 13:48 UTC (permalink / raw)
To: mailing list for ConTeXt users
On Sep 18, 2012, at 2:25 PM, Marco Patzer <homerow@lavabit.com> wrote:
>
> This doesn't work, either:
>
> \setupbibtex [database=sample]
> \setuppublications [alternative=apa, criterium=cite, sorttype=author]
> \starttext
> \cite[hh2010a]
> \cite[Eijkhout1991]
> \placepublications
> \stoptext
>
This works for me, I get Eijkhout sorted before Hagen.
>
> I'm aware of that. So it basically boils down to the fact that
> bibliographies are not popular among ConTeXt users (including Hans)
> and therefore much functionality is not properly implemented or
> cared for. And BibTeX is used since it understands the semantics of
> bib files, although a pure ConTeXt/Lua solution would be possible.
> Without BibTeX this functionality would be missing since no one is
> willing to implement a parser for .bib databases.
>
> If I only had time…
Yes, had we but world enough and time… Anyway, Hans began playing with transforming bibtex to xml and loading this. There is no user interface yet, but if you want to see what's possible, have a look at bibl-bib.lua and bibl-tst.lua
Thomas
___________________________________________________________________________________
If your question is of interest to others as well, please add an entry to the Wiki!
maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context
webpage : http://www.pragma-ade.nl / http://tex.aanhet.net
archive : http://foundry.supelec.fr/projects/contextrev/
wiki : http://contextgarden.net
___________________________________________________________________________________
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Bibliography, unicode strings, @ELECTRONIC, sorting and bibtex
2012-09-18 13:48 ` Schmitz Thomas A.
@ 2012-09-18 14:11 ` Marco Patzer
0 siblings, 0 replies; 9+ messages in thread
From: Marco Patzer @ 2012-09-18 14:11 UTC (permalink / raw)
To: ntg-context
[-- Attachment #1: Type: text/plain, Size: 906 bytes --]
2012-09-18 "Schmitz Thomas A." <thomas.schmitz@uni-bonn.de>:
Hi Thomas
> On Sep 18, 2012, at 2:25 PM, Marco Patzer <homerow@lavabit.com> wrote:
> >
> > This doesn't work, either:
> >
> > \setupbibtex [database=sample]
> > \setuppublications [alternative=apa, criterium=cite, sorttype=author]
> > \starttext
> > \cite[hh2010a]
> > \cite[Eijkhout1991]
> > \placepublications
> > \stoptext
> >
> This works for me, I get Eijkhout sorted before Hagen.
I deleted all temp files, but still get “Hagen” before “Eijkhout”.
My test file is attached.
> > If I only had time…
>
> Yes, had we but world enough and time… Anyway, Hans began playing
> with transforming bibtex to xml and loading this. There is no user
> interface yet, but if you want to see what's possible, have a look
> at bibl-bib.lua and bibl-tst.lua
Thanks, I will have a look.
Marco
[-- Attachment #2: sample.bib --]
[-- Type: text/x-bibtex, Size: 730 bytes --]
@STRING{hh = {Hans Hagen}}
@ELECTRONIC{hh2010,
author = hh,
year = {2010},
title = {Metafun. \CONTEXT\ mkiv},
url = {http://www.pragma-ade.nl/general/manuals/metafun-s.pdf},
}
@ARTICLE{hh2010a,
author = hh,
title = {The Font Name Mess},
journal = {MAPS},
year = {2010},
volume = {40},
pages = {2-8},
keywords = {context},
}
@ARTICLE{hh2010b,
author = hh,
title = {Grouping in Hybrid Environments},
journal = {MAPS},
year = {2010},
volume = {40},
pages = {67-71},
keywords = {context},
}
@BOOK{Eijkhout1991,
title = {\TeX\ by Topic. A \TeX nician's Reference},
publisher = {Addison-Wesley},
year = {1991},
author = {Victor Eijkhout},
address = {London},
keywords = {general},
}
[-- Attachment #3: t.pdf --]
[-- Type: application/pdf, Size: 13609 bytes --]
[-- Attachment #4: t.tex --]
[-- Type: text/x-tex, Size: 202 bytes --]
\setupbibtex [database=sample]
\setuppublications [alternative=apa, criterium=cite, sorttype=author]
\starttext
\cite[hh2010a]
\cite[Eijkhout1991]
\placepublications
\contextversion
\stoptext
[-- Attachment #5: Type: text/plain, Size: 485 bytes --]
___________________________________________________________________________________
If your question is of interest to others as well, please add an entry to the Wiki!
maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context
webpage : http://www.pragma-ade.nl / http://tex.aanhet.net
archive : http://foundry.supelec.fr/projects/contextrev/
wiki : http://contextgarden.net
___________________________________________________________________________________
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Bibliography, unicode strings, @ELECTRONIC, sorting and bibtex
2012-09-18 13:28 ` Philipp Gesang
@ 2012-09-18 14:19 ` Marco Patzer
2012-09-18 15:34 ` Philipp Gesang
0 siblings, 1 reply; 9+ messages in thread
From: Marco Patzer @ 2012-09-18 14:19 UTC (permalink / raw)
To: ntg-context
2012-09-18 Philipp Gesang <gesang@stud.uni-heidelberg.de>:
> [0] http://www.mail-archive.com/ntg-context@ntg.nl/msg62855.html
Thanks for the link. Since I usually don't deal much with
different bibliography styles I tend to skip those threads.
> > And BibTeX is used since it understands the semantics of
> > bib files, although a pure ConTeXt/Lua solution would be possible.
> > Without BibTeX this functionality would be missing since no one is
> > willing to implement a parser for .bib databases.
>
> Context happens to have such a parser, written in Lua. Probably
> the best one around:
>
> ·······································································
> \starttext
> \startluacode
> local db = bibtex.new()
> bibtex.load(db, "filename.bib")
> table.print(db)
> \stopluacode
> \stoptext
Interesting, I didn't know that. But the values are only parsed, not
interpreted. That means the only thing left for BibTeX is to do is
to interpret the ugly “author” field?
Marco
___________________________________________________________________________________
If your question is of interest to others as well, please add an entry to the Wiki!
maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context
webpage : http://www.pragma-ade.nl / http://tex.aanhet.net
archive : http://foundry.supelec.fr/projects/contextrev/
wiki : http://contextgarden.net
___________________________________________________________________________________
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Bibliography, unicode strings, @ELECTRONIC, sorting and bibtex
2012-09-18 11:41 ` Schmitz Thomas A.
2012-09-18 12:25 ` Marco Patzer
@ 2012-09-18 15:15 ` Alan BRASLAU
1 sibling, 0 replies; 9+ messages in thread
From: Alan BRASLAU @ 2012-09-18 15:15 UTC (permalink / raw)
To: mailing list for ConTeXt users
On Tue, 18 Sep 2012 13:41:56 +0200
Schmitz Thomas A. <thomas.schmitz@uni-bonn.de> wrote:
>
> On Sep 18, 2012, at 12:28 PM, Marco Patzer <homerow@lavabit.com>
> wrote:
>
> > 5) (side question)
> > What is BibTeX used for in ConTeXt? As far as I can see, it reads
> > the .bib database and generates a .bbl file which then is read in by
> > ConTeXt. Why do we need an external tool for this? Why does ConTeXt
> > not read in the .bib database and directly save it as a Lua table?
>
> Because nobody has coded that part yet? This may not be as easy as
> you make it sound because quite a few heuristics go into parsing
> bibtex files (e.g., look at the way in which bibtex divides names
> into first name, last name, von-part, jr-part). Over the years, I
> have read and heard many complaints about bibtex and many
> announcements that something infinitely better is just around the
> corner, to be delivered in all its glory "real soon now." For the
> time being, I don't see any real replacement, but I may be wrong.
Do not forget that there are many databases and tools that more or less
know how to deal with bibtex files. And many web sites can output
bibtex data, more or less correctly.
Of course, one could also consider using other "standards", such as
EndNote... but we would not want to do that, would we?
Alan
___________________________________________________________________________________
If your question is of interest to others as well, please add an entry to the Wiki!
maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context
webpage : http://www.pragma-ade.nl / http://tex.aanhet.net
archive : http://foundry.supelec.fr/projects/contextrev/
wiki : http://contextgarden.net
___________________________________________________________________________________
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Bibliography, unicode strings, @ELECTRONIC, sorting and bibtex
2012-09-18 14:19 ` Marco Patzer
@ 2012-09-18 15:34 ` Philipp Gesang
0 siblings, 0 replies; 9+ messages in thread
From: Philipp Gesang @ 2012-09-18 15:34 UTC (permalink / raw)
To: mailing list for ConTeXt users
[-- Attachment #1.1: Type: text/plain, Size: 7288 bytes --]
···<date: 2012-09-18, Tuesday>···<from: Marco Patzer>···
> 2012-09-18 Philipp Gesang <gesang@stud.uni-heidelberg.de>:
>
> > [0] http://www.mail-archive.com/ntg-context@ntg.nl/msg62855.html
>
> Thanks for the link. Since I usually don't deal much with
> different bibliography styles I tend to skip those threads.
>
> > > And BibTeX is used since it understands the semantics of
> > > bib files, although a pure ConTeXt/Lua solution would be possible.
> > > Without BibTeX this functionality would be missing since no one is
> > > willing to implement a parser for .bib databases.
> >
> > Context happens to have such a parser, written in Lua. Probably
> > the best one around:
> >
> > ·······································································
> > \starttext
> > \startluacode
> > local db = bibtex.new()
> > bibtex.load(db, "filename.bib")
> > table.print(db)
> > \stopluacode
> > \stoptext
>
> Interesting, I didn't know that. But the values are only parsed, not
> interpreted. That means the only thing left for BibTeX is to do is
> to interpret the ugly “author” field?
From my bibliography (this assumes authors are separated by
“ and ”; *warning*: ashamingly ugly code ahead):
·······································································
-- adapted from Roberto
-- www.inf.puc-rio.br/~roberto/lpeg.html
function citator.split (s, sep)
if type(sep) == "string" then
sep = P(sep)
end
local elem = C((1 - sep)^0)
local p = Ct(elem * (sep * elem)^0)
return lpegmatch(p, s)
end
local split = citator.split
-- Return a list of authors' names from a string separated by "and".
local _p_spaces = S" \n\t\v"^1
local _p_and = _p_spaces * P"and" * _p_spaces
function citator.get_author_list (rawaut)
if not stringfind(rawaut, "and") then return { rawaut } end
return split(rawaut, _p_and)
end
local get_author_list = citator.get_author_list
do
local wl = P{
[1] = "words",
left = P"{", right = P"}",
space = P" ", tabs = S"\v\t",
eol = P"\n", whitespace = V"space" + V"tabs" + V"eol",
inbrace = V"left" * (1 - V"right")^1 * V"right",
other = (1 - V"inbrace" - V"whitespace")^1,
elm = V"inbrace" + V"other",
words = Ct((V"whitespace"^0 * C(V"elm"))^0)
}
-- Takes a string and splits it into words, returning a list of words.
function citator.get_word_list(s)
return lpegmatch(wl, s)
end
end
local get_word_list = citator.get_word_list
-- from http://osdir.com/ml/lua@bazar2.conectiva.com.br/2009-12/msg00910.html
do
local space = S" \t\v\n"
local nospace = 1 - space
local ptrim = space^0 * C((space^0 * nospace^1)^0)
function citator.strip (s)
return lpegmatch(ptrim, s)
end
end
-- Return the formatted author field for one author string.
function citator.reverse_one_author (rawaut, form)
local listaut = get_word_list(rawaut)
local formaut, tmpaut = "", {}
if (#listaut > 1) then
for i,j in next, listaut do
listaut[i] = citator.strip(j)
end
lastname = listaut[#listaut] .. ","
tableremove(listaut, #listaut)
tmpaut[#tmpaut+1] = lastname
for i,j in next, listaut do tmpaut[#tmpaut+1] = j end
for i,j in next, tmpaut do formaut = formaut .. " " .. j end
else
formaut = listaut[1]
end
return formaut
end
local reverse_one_author = citator.reverse_one_author
-- Take a string of authors' names rawaut and return a list that is built
-- according to the global citator.cite_inv_author.
-- <string> ‘resultformat’: if it has the value ‘string’ then the function will
-- return a string instead of a table.
function citator.format_author_list (rawaut, resultformat)
warn("author list", rawaut)
local max = citator.compress_authors -- <int>, default=3
local authorlist = get_author_list(rawaut)
local cnt = 1
local tmplist = {}
local citestyle = citator.styles[citator.cite_style] or fancy2
local etal = citestyle.cite_etal_string
repeat
if cnt == 1 then
if citator.cite_author_form == "allinv" or
citator.cite_author_form == "firstinv" then
tmplist[#tmplist+1] = reverse_one_author(authorlist[cnt])
warn("num: "..cnt, authorlist[cnt])
else -- don’t reverse anything
tmplist[#tmplist+1] = authorlist[cnt]
end
elseif cnt > max then
tmplist[#tmplist+1] = etal
break
else
warn("num: "..cnt, authorlist[cnt])
if citator.cite_author_form == "allinv" then
tmplist[#tmplist+1] = reverse_one_author(authorlist[cnt])
elseif citator.cite_author_form == "firstinv" then
tmplist[#tmplist+1] = citestyle.cite_author_separator
tmplist[#tmplist+1] = authorlist[cnt]
else
tmplist[#tmplist+1] = citestyle.cite_author_separator
tmplist[#tmplist+1] = authorlist[cnt]
end
end
cnt = cnt + 1
until authorlist[cnt] == nil
warn(#tmplist, tmplist[1])
if resultformat == "string" then
return tableconcat(tmplist)
end
return tmplist
end
local format_author_list = citator.format_author_list
·······································································
As you can see, all I have to offer is spaghetti :P And the
formatting rules for names (the fields author, bookauthor,
translator, editor, bookeditor, commentator, etc. pp.) are by no
means everything that bibtex handles.
The hard part is the formatting of entries according to cite
style (apa etc.) and method (short, number, full). Then strings
(ibidem, et. al) need to respect i18n. Sorting of the bib has to
take place on a certain set of fields in a certain order
depending on whether the entry has an author field or only an
editor or both ... and then there is the problem with names in
general:
http://www.kalzumeus.com/2010/06/17/falsehoods-programmers-believe-about-names/
I don’t want to be spreading pessimism, but these problems are
easily understimated.
Philipp
>
>
> Marco
>
> ___________________________________________________________________________________
> If your question is of interest to others as well, please add an entry to the Wiki!
>
> maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context
> webpage : http://www.pragma-ade.nl / http://tex.aanhet.net
> archive : http://foundry.supelec.fr/projects/contextrev/
> wiki : http://contextgarden.net
> ___________________________________________________________________________________
--
() ascii ribbon campaign - against html e-mail
/\ www.asciiribbon.org - against proprietary attachments
[-- Attachment #1.2: Type: application/pgp-signature, Size: 198 bytes --]
[-- Attachment #2: Type: text/plain, Size: 485 bytes --]
___________________________________________________________________________________
If your question is of interest to others as well, please add an entry to the Wiki!
maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context
webpage : http://www.pragma-ade.nl / http://tex.aanhet.net
archive : http://foundry.supelec.fr/projects/contextrev/
wiki : http://contextgarden.net
___________________________________________________________________________________
^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2012-09-18 15:34 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-09-18 10:28 Bibliography, unicode strings, @ELECTRONIC, sorting and bibtex Marco Patzer
2012-09-18 11:41 ` Schmitz Thomas A.
2012-09-18 12:25 ` Marco Patzer
2012-09-18 13:28 ` Philipp Gesang
2012-09-18 14:19 ` Marco Patzer
2012-09-18 15:34 ` Philipp Gesang
2012-09-18 13:48 ` Schmitz Thomas A.
2012-09-18 14:11 ` Marco Patzer
2012-09-18 15:15 ` Alan BRASLAU
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).