[pmwiki-users] Bibliographies
christian.ridderstrom at gmail.com
christian.ridderstrom at gmail.com
Tue Sep 12 11:56:41 CDT 2006
On Tue, 12 Sep 2006, Tom Backer Johnsen wrote:
> John Rankin wrote:
> > On Tuesday, 12 September 2006 7:38 AM, Tom Backer Johnsen <backer at psych.uib.no> wrote:
> >> christian.ridderstrom at gmail.com wrote:
> >>> On Mon, 11 Sep 2006, Tom Backer Johnsen wrote:
> >>>
> >>>>> - clicking the link displays the full reference, in the author's chosen
> >>>>> style
> >>> Hmm... when you say "displays the full reference".. Do you mean that the
> >>> browser goes to the corresponding place in the bibliography, or that some
> >>> kind of popup is shown with the full reference information?
> >> Does not really matter, at least to begin with.
> >
> > In my head, (:cite...:) generates a link of the form
> >
> > ... index.php?n=Group.BibTeXPage?ref=id?action=cite
> >
> > Click and you go to the BibTeXPage and see a nicely-formatted
> > version of the reference you cited, and only that reference.
>
> That would be nice, but not essential to begin with.
Perhaps he thinks this case is easier to solve?
> To be selfcentered, my BibTex file would be quite small to begin with,
> and would contain little outside what is needed for the project.
This would probably be true for me as well.
Some user cases (that doesn't actually say what should happen if you
click on "[1]", although they should):
-------------------------------------------------------------------------
Case 1. Single page example. Initially, I suspect that I'd simply use this
as a convenient way of adding a bibliography at the end of the current
page. In this case, the same page will contain (:cite:), the bibliography
database as well as the actual bibliography.
PageWithSimpleBib - everything in one page:
Bla bla bla (:cite key-1 :) bla bla
bla bla bla
<more text>
(:if false:)
@Misc{key-1, URI = {http://...} }
(:ifend:)
(:bibliographystyle unsrt :)
(:bibliography :)
Note that I assume the following default behaviour of (:bibliography:):
* (:bibliography:) results in a bibliography, i.e. a list of citations
* (:bibliography:) uses the current page as a bibliographic database
-------------------------------------------------------------------------
Case 2. Shared bibliography database. Eventually I get a lot of citations
and wish to keep most of the bibliographic data in a single page instead
of spread out. So in this case I am using the page
Site.BibliographyDatabase for this purpose. However, I also want to be
able to add a few citations (i.e. the details of the source) to the
current page because right now I don't feel like adding them to
Site.BibliographyDatabase. So I'd end up with:
PageWithAlmostSimpleBib - shared bibliography database:
Bla bla bla (:cite key-1 :) bla bla (:cite key-2 :)
bla bla bla (:cite unusual-key :)
<more text>
(:if false:)
@Misc{unusual-key, URI = {http://...} }
(:ifend:)
(:bibliographystyle unsrt :)
(:bibliography {$Name} Site.BibliographyDatabase:)
Site.BibliographyDatabase - home of most of the bibliography database:
@Misc{key-1, URI = {http://...} }
@Misc{key-2, URI = {http://...} }
Note that I'm not sure if (:bibliography:) by default always should look
in the current page for BibTeX data, so I explicitly name both the current
page and the page Site.BibliographyDatabase.
-------------------------------------------------------------------------
Case 3. Rendering the bibliography database. As I get more and more useful
citations in the bibliography database, I probably want to be able to see
the entire bibliography database. That could simply be done like this
inserting a few commands in the page with the database:
Site.BibliographyDatabase:
(:nocite *:)
(:if false:)
@Misc{key-1, URI = {http://...} }
@Misc{key-2, URI = {http://...} }
(:ifend:)
(:bibliographystyle unsrt :)
(:bibliography {$Name} :)
Note the (:nocite *:) which pulls all the citations from the database into
the bibliography.
-------------------------------------------------------------------------
Case 4: Shared bibliography between pages in a group. This example is
based on the idea that all the pages in a group together comprise an
article or perhaps even a book. For this reason, we want to let all the
pages in the group have a common *bibliography* (as well as the
bibliography database). Let's say that the pages with actual text are
called Page1, Page2, .. PageN. We could pretend that PageX corresponds to
section X. In addition, let's say we have a trail page called Pages that
list the pages comprising the book. The bibliography should be shown on a
page called Bibliography. These will be the important pages:
* Pages - the trail page
* Page1 - 1st page
* Page2 - 2nd page
* ...
* PageN - Nth page
* Bibliography - page with the bibliography
* Site.BibliographyDatabase - bibliography database (in another group,
although for a book it might make more sense to keep it here).
* GroupHeader - used to insert directives that are common
Note that sharing a bibliography means that "[1]" should refer to the same
source regardless of which page "[1]" appears on. In other words, the
number within the brackets may depend not only on the current page, but
also on the other pages that share the bibliography. In case it's unclear,
let me give an example: Let us assume we are ussing an unsorted
bibliography style, i.e. references should be numbered in the order that
they appear. However, this assumes that pages are ordered... In this
example it makes sense that the first reference on Page1 will be [1], the
second will be [2]. And if the last reference on Page1 is [n], then the
first reference on Page2 should be [n+1]. It should now be obvious that if
someone adds a reference to Page1, the first reference on Page2 might get
a new number.
Ok, moving along to the possible content on the pages... Let's use the
group header to define things common to all the pages, where I pretend
that the option "BibPage=Bibliography" keeps (:bibliography:) from
displaying itself as a bibliography. Instead, this will let the
(:cite:)-directives know where to find the bibliography and the
bibliography database.
GroupHeader:
(:bibliographystyle unsrt:)
(:bibliography Site.BibliographyDatabase BibPage=Bibliography :)
Pages:
Below is a list of related pages:
* [[Page 1]]
* [[Page 1]]
...
* [[Page N]]
I use the page "Pages" to define the pages that are kept together in this
collection. This page will referred to by the page with the bibliography.
Page1:
Bla bla bla (:cite key-1 :) and ... (:cite key-2 :)
Page2:
Bla bla bla bal (:cite key-2 :) and ... (:cite key-1 :)
...
PageN:
...
Bibliography:
(:bibliographystyle unsrt :)
(:bibliography Site.BibliographyDatabase trail=Pages :)
Site.BibliographyDatabase:
(:if false:)
@Misc{key-1, ... }
@Misc{key-2, ... }
(:ifend:)
I don't think I've got a good markup solution for this last case, nor am I
sure all the pages have all the information the directives need.
For instance, maybe it would be better to use an indirect scheme like this
instead:
-------------------------------------------------------------------------
Case 5: Shared bibliography between pages in a group, indirect definition
of bibliography database. This is a modified version of user case 4 (see
above).
I will pretend as before that the option "BibPage=Bibliography" to the
directive (:bibliography:) keeps the bibliography from being shown. The
purpose of (:bibliography:) is just to let the (:cite:)-directives know
where to find the bibliography. In addition, I now assume that the
(:cite:)-directives will go and "ask" the bibliography (i.e. the page
Bibliography in this case) about where to find the bibliography database.
Also note that the (:cite:)-directives need to ask not only about the
bibliography database, but also what the link text should be... and this
requires knowing what references have been used on the "previous" pages.
GroupHeader:
(:bibliographystyle unsrt:)
(:bibliography BibPage=Bibliography :)
Pages:
Below is a list of related pages:
* [[Page 1]]
* [[Page 1]]
...
* [[Page N]]
Page1:
Bla bla bla (:cite key-1 :) and ... (:cite key-2 :)
Page2:
Bla bla bla bal (:cite key-2 :) and ... (:cite key-1 :)
...
PageN:
...
Bibliography:
(:bibliographystyle unsrt :)
(:bibliography Site.BibliographyDatabase trail=Pages :)
Site.BibliographyDatabase:
(:if false:)
@Misc{key-1, ... }
@Misc{key-2, ... }
(:ifend:)
Bah... this is getting complicated, but at least I think we are getting
somewhere. And as John said before, we shouldn't try and implement all of
this at once.
/C
--
Christian Ridderström, +46-8-768 39 44 http://www.md.kth.se/~chr
More information about the pmwiki-users
mailing list