Dear devels,

I am starting to look into biblatex support, with a long term project of
perhaps writing the required code or (what's more likely, given my poor
knowledge of C++) helping put together some general desiderata and
detailing the associated work.

My understanding of the problem is the following:

>From a user's perspective, a minimally satisfactory support of biblatex
requires the following:

1. A biblatex dialog similar to the current bibtex's dialog, where users
can enter:
    a. the list of files (not necessarily in bibtex format) containing the
references
    b. the citation style to be used in-text
    c. the reference style to be used in the references section
    d. a list of additional biblatex's specific calling parameters

    This dialog box would insert in the document's preamble a call to
biblatex (with
     the parameters at (d) passed verbatim)  plus a
    series of \addbibresource commands (one per reference file)
    Additionally, it would insert a \printbibliography command at the
cursor location
    (when it was opened), similarly to the current bibtex's dialog

2. A mechanism to insert citations in the text that takes advantage of
biblatex's more extensive set of citation commands (e.g. citeauthor,
citetitle, etc.)

1+2 would mimick LyX-bibtex's current behavior for biblatex. A natural way
to approach the biblatex issue would then be to replicate bibtex's
machinery and change what's needed

Now, as a question to the developers: where is the magic for 1 and 2
happening in LyX's codebase (for bibtex, I mean)?

Warning: I am somewhat familiar with Qt 4, but only as used from python
through pyqt. My knowledge of C++ is rudimentary as best---please be
gentle! My fumbling search through the code has reached the following
preliminary conclusions:

a. frontends/qt4/GuiBibtex.cpp defines the Bibtex dialog's class with all
the required signal/slot connections and associated methods.

b.  I don't quite understand where and how the widget itself is defined. I
am used to either define widget programmatically by creating (and possibly
nesting) layouts and then adding the widgets manually, or by creating them
by hand with QT Designer and then importing them into code. I can't see
either method used here. My ignorance of C++ is certainly to blame and
input would be welcome.

I still have no clear idea of:

c.  where and how is the bibtex widget called.

d. where is the machinery that's needed to insert citations into LyX.
    Is it the src/insets/InsetBibtex.cpp class? (of which I confess I have
a very
    dim understanding)?

e. how the various cite commands are inserted in the insert inset pop-up
list.


Comments appreciated.

Cheers,

Stefano


-- 
__________________________________________________
Stefano Franchi

stefano.fran...@gmail.com <stef...@tamu.edu>
http://stefano.cleinias.org

Reply via email to