michal-h21 / biblatex-iso690

ISO 690 style for biblatex.
LaTeX Project Public License v1.3c
93 stars 31 forks source link

Making givennamesfirst option work again #118

Closed wg030 closed 2 years ago

wg030 commented 2 years ago

I figured that the givennamesfirst option does not work correctly altough I could swear that everything was fine when testing it before I commited that PR. I can remember that it was tricky to make that work and that's the reason why I worked with global back then. Maybe something has changed interanlly so that this does not work anymore or maybe it never worked corretly, i don't know. Bascially the problem here is the order of exectution during the compilation process. When calling the package with

\usepackage[backend=biber, givennamesfirst=true]{biblatex}

the option givennamesfirst=true is not being executed before the lines 560 and 561

\DeclareNameAlias{default}{\mknamealias}%
\DeclareNameAlias{sortname}{\mksortnamealias}%

are executed, which means that theses lines are always executed with givennamesfirst=false as set as default option in line 132, no matter how you call the package. The incorrect values for default and sortname are then already saved and will not be changed anymore even if the package option givennamesfirst=true is being executed later on. Long story short, we need the \AtEndOfPackage hook here to delay that execution.

michal-h21 commented 2 years ago

Thanks! It seems to work now.

BTW, I found a presentation with changes in a new ISO 690 version: https://www.citakon.cz/prezentace/2022/Co-prinese-nova-norma-CSN-ISO-690.pptx

It is in Czech, but it contains a lot of examples. It seems that in a lot of areas, it is a step in the wrong direction again, as it requires a more explicit description of electronic resources, for example. Something that will be quite hard to do automatically.

wg030 commented 2 years ago

BTW, I found a presentation with changes in a new ISO 690 version: https://www.citakon.cz/prezentace/2022/Co-prinese-nova-norma-CSN-ISO-690.pptx

It is in Czech, but it contains a lot of examples. It seems that in a lot of areas, it is a step in the wrong direction again, as it requires a more explicit description of electronic resources, for example. Something that will be quite hard to do automatically.

Unfortunately I don't understand much here except for the examples. But yes, the new version seems to focus way more on electronic resources (which makes quite a lot of sense since the digitalization continues to rise). And indeed, I will be quite hard to do a lot of that stuff automatically, but I am ambitious here.

As a matter of fact while reading slowly through the new version I started coding along the way. While doing so it quickly turned out that modifiyng the current code that we have right now turned out to be less effective than starting from scratch using copy and paste and add new stuff. And believe me, it is quite a lot of new stuff that needs to be added if we want to stick closely to the new version of that norm. Nevertheless I think it is possible to make it. I am going to upload what I have done so far as soon as I have finished section 7 of the norm (the section where the data elemets are described). Although section 8 (the section where the resource categories are described in more detail) is another whopping 65 pages, which are likely to go way more into detail than section 7, I think we will have a good basis after section 7 already. You can be very excited about that update (I am definitley excited already) and I count on your support and experience to make this style go from the 2010 version of the norm to the new 2021 version.

Btw: I decided to reveal my full name on github and I already put it in my own package jlcode. So you might as well put it here now instead of my username 😀