Welcome to the TeXtalk! We have a very special guest for today: our friend Philip Kime, also known as PLK, our
expert. He’s the project leader of the
task force, together with Audrey and Joseph Wright, and a great Perl programmer. Get ready for this awesome interview!
- Paulo Cereda
- Dear friends, welcome to the TeXtalk! Our interviewee today is Philip Kime (PLK).
- PLK
- I think I should say a little bit perhaps about how I got involved as there are two important people to mention who aren’t here. I just want to say that that
biber
and
biblatexowe a great deal to two people who aren’t here – François Charette for the original
bibercode and Philipp Lehman for the incredible work he did on
biblatex. We all wish PL well, wherever he may be.
- Paulo
- Could you tell us a bit about yourself?
- PLK
- My background is in academia originally – Philosophy, then AI, then CogSci PhD and then out of academia and now an species of psycho-analyst living in Switzerland.
- Alan Munn
- So are you no longer an active LaTeX user, or do you still use it professionally?
- PLK
- Oh I am very active again now – I write everything with it again now.
I use LaTeX for a long time during masters/PhD years, then forgot it for years and then came back in 2007 and found
biblatex. I needed an APA (American Psychological Association) style but there wasn’t one…
So, I started to write one and found that some of the things it needed (auto-disambiguation of names lists mainly) couldn’t be done because of the bibtex backend. Then in 2009 I found
biberwhich was in Perl, a language I know quite well and like a lot and so I offered to help.
There was an explosion of development on
biberin 2009/2010 and when François had to bow out due to a busy life, I pretty much re-wrote all of it over 2010/2011.
Lehman and I were working quite closely during that time and it’s been very difficult with him gone as my TeX skills are miniscule compared to his. Thankfully we have Joseph W and Audrey B helping out with
biblatextoo.
- Joseph Wright
- Sounds like a lot of work! Would you say
biber
is ‘feature-complete’ yet, or are there significant things you still want to add?
(From your point of view: users always want more features)
- PLK
- There are two larger issues to look at with
biber
I think – one is multi-script support so that you can switch between scripts in the same entry for translated, romanised etc. versions of titles etc.
The other is related – a more flexible data format –
.bibis hard to extend, even though we have user-definable data models in
biblatex2.0/
biber1.0.
François was working on that a couple of years ago with his
biblatexmlXML data format and that looks promising but I haven’t done too much with it yet. It does support multi-script already but you have to decide on the script to use per-entry and you can’t mix and match within an entry using
biblatexmacros yet. That means major
.bblredesign.
- Joseph
- That’s quite challenging: I assume the plan is XML-based, but that approach is never going to be as accessible as
.bib
for the large number of users for whom it already works.
- PLK
- Right – which is why we also need a
.bib<->XML
converter for it to be interesting to anyone. That’s not so hard for
biberto do itself as it converts any data source into an internal model which is source neutral.
It needs some thought. I’ve tried a couple of prototypes but there are tricky issues with, as usual, names.
Anyway, I’d like the large amount of new features in 2.0/1.0 to settle in a bit first – there are a lot…
- Joseph
- Sounds like a good plan.
- PLK
- I really like the customisable labels feature – the auto-disambiguation schemes for these were a real swine to program though. I don’t know any other bibliography system with as sophisticated auto-disambiguation features as
biblatex
+
biber…
- Paulo
- could you tell us about some cool features of 2.0/1.0?
:)
- PLK
- So, customisable labels – Instead of the static labels in alphabetic styles for, say “Smith 1958” looking like “Smi98” or whatever, you can define a template so say what the labels look like.
Say you have “Smith and Jones, 1934”
->[SJ34] but also “Simons and Jacob, 1934”
->[SJ34],
bibercan auto-disambiguate these, just like with name lists.
There are several ways to disambiguate, for different tastes.
You can tell it to expand the name parts to the point of no ambiguity, to restrict how long the labels get, to make them unique pointers into the references or not etc. It’s quite sophisticated.
- Paulo
- It sounds really powerful.
:)
- PLK
- The
biblatex
manual has some nice examples of this.
- Joseph
- Are the new features things you need, or is this mainly driven by users?
- PLK
- Mainly users.
The name list uniqueness features (uniquelist option) was exactly what I needed for the APA style – it took several years from needing it to having in my APA
biblatexstyle – that was very satisfying.
The datamodel stuff in 2.0 is quite nice – it gets away from all those
usersa,
listacustom fields and types which make a
.bibfile look really arbitrary.
This is something I needed for APA style too but I think it’s generally very useful.
With the
biber“sourcemapping” feature, which lets you alter the bib data source on the fly without touching the actual files, this is quite powerful.
This mapping stuff had a
biblatexinterface added in 2.0.
- Paulo
- Sounds exciting!
- PLK
- Audrey did some great work putting the
biblatex
interface in for
biber‘s “related entries” feature.
Instead of people requesting endless new fields for “translated as” or “reprint of” etc. There is a now a fully localised interface for adding any “relation” to another entry you like.
- Marco Daniel
- It is very rarely that psycho-analysts are programmers. How do you become one?
- PLK
- A side-effect of the masters in AI and Cosgsci things. I only learnt Prolog and Lisp originally, naturally and when I realised how really silly it was to try to write useful utilities in Prolog, I forced myself to learn Perl…
I did have a working cassette inlay printing program, via LaTeX in Prolog which I used for years as a student…
biberbeing in Perl was a real stumbling block for wider acceptance originally until I worked out how to distribute it as a binary.
Without this, it’s really hard/impossible to get something into TeX Live in a maintainable manner.
- Paulo
- how do you get involved in the
biblatex/biber
project?
- PLK
- With
biber
originally, as I found a bug in a very early version in 2009 and reported it to François Charette.
After a while, it was clear that
biblatex/biberneeded a common release schedule as the features were closely related. So we spoke to Lehman and developed the XML
.bcfformat to replace the
.auxof bibtex and after that,
biblatex+
biberwere essentially one project.
- Marco
- You are one of the top users of
biblatex
. You are the maintainer of
biber+
biblatex. I think very often you are reading such tagged answers. Could you learn something at tex stackexchange? Or did you get any inspiration for your work? Or on the other site how often do you close your eyes
;-)?
- PLK
- I have to say the programming is quite a nice compensation for psychoanalytic work. It’s concrete, has a defined end.
Actually, I learn a great deal from the site – it is very frequent that I see an interesting question, follow it up and find some marvellous package/trick I will use.
It is quite remarkable really, I’ve been around the web since it existed (I remember the first picture causing a real stir).
So to find “yet another forum site” which really has such a superb signal/noise ratio is quite amazing.
I am constantly amazed with TikZ and
PStricks, for example.
To do what they can do without a huge, ugly beast of a drawing package is quite amazing.
It’s a bit like Perl for me – Perl has CPAN, TeX has CTAN. It’s so rare you need to write anything significant yourself, it’s very useful.
- Alan
- Although I’m sure this will change over time, one current drawback to
biblatex/biber
at the moment is the fact that most journals that accept LaTeX files won’t accept
biblatex. See e.g. Biblatex: submitting to a journal. One thing that would help this would be a way to have the bibliography incorporated after the fact into the LaTeX file. Is this something that might be possible?
- PLK
- Right, this is a good question. It’s hard at the moment as the
.bbl
is basically a TeX database instead of formatting macros. The formatting stuff comes much later on in the style and so you don’t have anything resembling a core TeX/LaTeX file you can send.
One possibility would be to have
biblatexdump another
.bbl-like thing just before finishing.
Something after all the style stuff has been resolved. But it’s more likely that journals will need to start using
biblatexeventually for some things – it has to be attractive once the initial hurdle is over …
- Paulo
- Joseph, Audrey and especially you are doing a wonderful job. How can someone volunteer to help? (/me is included)
- PLK
- Just mail us – I do get worried about
biber
more than
biblatex– there are a lot of good TeX people but in the long term, I really need someone who knows Perl to get familiar with the code as it’s really to dangerous to have a large user base and only one maintainer…
biberis a bit of a beast – there are some really complex things that it does and it takes a while to get familiar with what
biberdoes and what
biblatexdoes and why.
Though the XML
.bcffile has been really useful here –
biberonly reads the
.bcfand
biblatexonly reads the
.bblso their communication is very well defined.
One amusing feature which is actually quite useful if you every try it is the Graphviz output – if you have complex inheritance/XDATA/related entries/sets etc. you can opt to output GraphViz DOT format and then convert this to PDF, SVG or whatever so you can visualise the data relationships.
This was done as a proof of concept of
biber‘s modular input/output format design.
- Paulo
- Impressive!
- PLK
- For the future, I would also like to see more input formats recognised. I have been (as have many) trying to urge the Zotero people to put a citation key as a first class field in their database (I know, it sounds amazing, there isn’t one…) so that it would be easier to access Zotero data directly as a data source but so far, years later, nothing…
- Paulo
- I used the
biblatex/biber
combo for the first time in a document two months ago and immediately fell in love with it. What’s their secret?
:) - PLK
- Well, more and more and especially in version 2.0 of
biblatex
, all of the really nice features are
biberonly…
This isn’t a political thing, it’s just not possible to do them with bibtex as the data backend.
- Paulo
- Indeed.
:)
- PLK
- Unicode, of course, is a big thing these days and Perl is really good at Unicode – it’s a central part of the language and they take great pains to keep it very up to date.
The great
Unicode::Collatemodule is why
bibercan sort just about anything. In fact, it was partly at
biber‘s urging that the maintainer of that module added CLDR support which is essential to
bibernow. I notice that the Scandanavian contingent on T.SE use this.
Try sorting Swedish properly in just about about any other bibliography system – you have to have CLDR support really.
Well, I appreciate the chance to air some of the
biber/biblatexnews and history chaps.
- Paulo
- It’s an honour to hear from you.
:)
I see nowadays people going towards scripts implemented in Lua, probably because of LuaTeX and the language itself. Out of curiosity, did anyone ask for a Lua port of
biber?
:) - PLK
- Yes, someone did, a while ago. I thought about it for about a second… that’s too much work for me alone. I’d need to know that Lua can do Unicode and CLDR, XML and regular expressions at least as well as Perl before I would touch that topic…
Volunteers are most welcome – I have a nice test suite I run before every release…
- Paulo
- Could you name one of the most wanted features for
biber/biblatex
?
- PLK
- Multi-script support is really the only outstanding current request, so many features were added in 2.0…
- Paulo
- Do you have a favorite answer of yours in this site?
- PLK
- I have to say that I like How do I make my document look like it was written by a Cthulhu-worshipping madman? – it reminds me of all the HPL I read as a teenager and also shows some very clever solutions.
- Paulo
- Can you name something you really like in LaTeX? And is there something you dislike?
:)
- PLK
- LaTeX – I really like LaTeX tables –
booktabs
, dislike font control still – it can be such a pain.
- egreg
- What do you suggest for tackling advanced
biblatex/biber
?
- PLK
- I would recommend reading section 4.5 of the
biblatex
manual. It’s entitled “Customization” but it basically contains all of the more interesting 2.0 features with lots of examples.
I think the examples in there really give you a sense of some of the things which are possible.
- egreg
- Any idea about a book on
biblatex/biber
?
- PLK
- I think this would be great, especially to let academic publishers know what they could do with it. I can’t see me having the time for this in the near future though.
- Kannappan Sampath
- When did you start using (La)TeX? Did you use any other typesetting system before you started to use (La)TeX?
- PLK
- I started with LaTeX in 1992 as I remember, before that, it was a miserable haze of WordPerfect, well before any windowing systems existed on PCs…
- Joseph
- So 2.09?
- PLK
- Yes, 2.09. I remember the change to 2e quite well. It was all on old SunOS 4 workstations. I remember being quite excited by the
nfss
at the time… It made fonts… possible… And graphics were almost always done in monochrome using the venerable
xfigto
dvi… EPS was a real challenge.
- Kannappan
- So, can you please tell us about your time at academia?
- PLK
- Academia – now there’s a question. Well, in the end, I got tired of it and left because the context for philosophy in universities is, to my mind, fundamentally flawed. A “professional philosopher” is an absurd category, both conceptually and in many unfortunate examples which I came across.
I still teach but in a context which is somewhat less protected from “applied philosophy”, that is, life.
- Kannappan
- Can you please elaborate a bit more on your last assertion about professional philosophers? That you teach means (to me) you would be passionate about meeting youngsters. What is your message for youngsters?
- PLK
- My issue with professional philosophy is rather a topic, especially since one could argue that I’m not a thousand miles from such a thing now.
Teaching was the only important thing in it for me. That is phenomenally important. There is no message for all youngsters, only each one individually and that takes time and not the context of classroom philosophy (or classroom anything, when you really get down to it).
Teaching older people is also very important – the idea that education is mainly up until mid 20s or whatever is absurd to me. There are some things one is simply unable to learn at all until mid-life.
It could suddenly be quite silly – trying to talk to a room of 18 year-olds about, say morality when they barely know anything concretely about any kind of real moral dilemma and won’t for many years but by which time they will not consider for a moment learning about such things.
- Kannappan
- Thanks for your insightful comments. I am happy that you emphasise that education is really a continuum and that it takes longer to appreciate deeper aspects of life. And also emphasizing that each youngster is a distinct entity.
- Paulo
- Any hints for a Perl newbie?
:)
- PLK
- Perl – easier to answer (which is part of the attraction, naturally). The standard O’Reilly books are great, they give you all you need to start. It’s not a hard language, the problem is mainly to find some idioms you like and just stick with them since there are so many ways to do that same thing in Perl.
- Gonzalo Medina
- Do you think an analogous to
makebst
will be developed for
biblatex?
- PLK
- It’s more likely to be a document/book I think. The problem is that with
biblatex
– there are so many parameters, presenting any meaningful question/answer interface short of a full IDE would be meaningless.
A style design interface would be nice – perhaps the LyX people could help…
- Paulo
- I was thinking of some interface.
:)
- PLK
- yes, some sort of guided style creator perhaps – it would have to write
.bbx/.cbx/.dbx
files presumably.
- Joseph
- I think it would be useful to match
makebst
, i.e. to cover the needs of people moving from working BibTeX set ups.
- PLK
- It would be nice but it seems intractably hard to me?
- Joseph
- No, I think quite doable (but then I am a LaTeX kernel developer). It’s a question of time for me: I’m already busy.
- PLK
- Oh, for you, I don’t doubt it!
- Alan
- I’ve got another question. One thing I find frustrating about
biblatex
is that it’s not always clear what’s the right way to implement a particular formatting issue. Sometimes there seem to be solutions built-in, and other times you have to dig into the code. (Maybe this is just par for the LaTeX course, but I’m wondering if you have any advice for how to figure out these kinds of things.)
I’m speaking as someone who is both an end user and writing a style for my field.
- PLK
- You’re right, this is a problem. Currently, there is no other way than to dredge through the
biblatex
manual and see if some nice macro does what you want. Most things can be done in
\print{field,name,list}etc. formats with
DeclareFormatand I tend to find that this is a good place to put things but there is no consistency in this.
It’s up to style writers to provide package options which hide this from users. The default styles don’t do this much though because they need to be generic enough to be copied and hacked so there are not so many good exemplars. I would hope with more academic journals and publishers adopting
biblatex, some rigorous styles would be made which made all of the hacky looking options stuff into package options which gave a neater interface.
- Alan
- Yes, that’s definitely true. And I’ve managed to get most of the things I want done. Luckily we have some real experts here (including yourself) so it’s not hard to get answers when needed, also. I’m particularly impressed with Audrey’s knowledge of
biblatex
.
- PLK
- Yes, Audrey is quite amazing – really in-depth answers very swiftly. Probably the most advanced user I know.
If you are a style writer though,
biblatexdoes assume you will read and digest the entire manual… there has been some discussion recently here about a “Quick Start” guide for
biblatexwhich might address this sort of thing…
- Alan
- Sure, I certainly agree on that. For end users though, the documentation is a bit daunting. (And some of the default decisions (like using ‘In:’ for articles) are really odd.
- PLK
- It’s one of the reasons I invest some time in providing answers with examples now that 2.0/1.0 is out – there needs to be a critical mass of answers for some of these things in the short term.
- Alan
- Yes, that’s a big help. Also, most of us are not used to using the backend to do things, so I’m always very interested to see your answers that work that way.
- PLK
- Yes, this is something that a quick guide would do – it would make a bit clearer the division of labour between
biblatex
and
biber. The
bibermanual has a couple of diagrams showing what it actually does and when.
Don’t forget that Lehman was quite influenced by the requirements and defaults of German academics as there is a large user base there (for
biberreleases, the largest demographic of initial downloads from SF is always German Windows users…) and so things like “In:” I suspect reflect that.
- Alan
- Maybe so. It’s certainly never used in any English publication that I’m aware of.
- matth
- Just a couple of days ago I learned that Zotero defined a Citation Style Language (CSL) to describe citation styles. CSL is now also used by Mendeley. So if some time in the future a
biblatex
equivalent to makebst will be available, maybe it is possible that this makebst-equivalent can process CSL files.
- PLK
- This would be a good idea I think – it would be essentially a more structured input to the process than asking some questions.
- Paulo
- What do you recommend for a newbie eager to learn TeX, LaTeX and friends?
:)
- PLK
- I still think the original Lamport book is a good place to start.
- Paulo
- Thanks a million for this great interview!
:)
Stay tuned for the next episode of TeXtalk!