plk / biblatex

biblatex is a sophisticated bibliography system for LaTeX users. It has considerably more features than traditional bibtex and supports UTF-8
507 stars 115 forks source link

masters thesis translates to Magisterarbeit in German #774

Closed padalev closed 5 years ago

padalev commented 6 years ago

I have noticed while writing my own thesis that when using the "@mastersthesis" entrytype it translates to "Magisterarbeit" in German. But actually a masters thesis in German is just a Masterarbeit. A Magister is a completely different type of Studies which is quite uncommon nowadays. I'm quite fine with just using the "@thesis" type, but this can really come as a surprise when a master thesis is suddenly described as "Magisterarbeit". Solution: As I see it in the file german.lbx the line mathesis = {{Magisterarbeit}{Magisterarb\adddot}}, should be changed to mathesis = {{Masterarbeit}{Masterarb\adddot}},

moewew commented 6 years ago

Thank you for the report.

Interestingly, PL is German(-speaking?) and biblatex was released at a time where the whole Bologna process was already going (early initial release in 2006, v1.0 in 2010), so I guess he would have known about this...

I agree that certainly nowadays Masterarbeit is what you would expect. The question is if we can break backwards compatibility here. Usually we allow localisation files to change on the assumption that the new translations are stylistically superior while still maintaining the intended meaning (or at least being a good translation of the concept the string stands for). Here it is slightly different as you point out...

padalev commented 6 years ago

Yes. I have thought about that too. I think you might have to consider what is the bigger damage that can be done.

I you do not change it to a more modern translation you risk that people still use it accidentally in believe that it would translate to "Masterarbeit" without noticing.

If you change it you might have problems with people still believing it to translate to Magisterarbeit. Though there is no other option for a real "Masterarbeit" and also this change would only affect people that are updating there latex distribution while working on some document. Which is a risk, but I believe that future users that download a fresh latex distribution would rather expect the translation to be "Masterarbeit" Also the change obviously wouldn't affect already finished and/or published documents.

moewew commented 6 years ago

OK, we'll see what others have to say about this.

There probably is not going to be a new release in the immediate future anyway, so you (or anyone else bothered by this) should just use

\DefineBibliographyStrings{german}{
  mathesis = {Masterarbeit},
}

in the meantime.

In terms of damage, there are a few things that make the decision hard.

jspitz commented 6 years ago

I think it would introduce a severe compatibility problem. I have many bib databases consisting of @mathesis entries, and I certainly don't expect their output to change without my doing. If I cite something I have recorded as a "Magisterarbeit" (and I do cite them also post-Bologna), I expect that the entry will be correct. Masterarbeit would be incorrect.

moewew commented 6 years ago

@jspitz Thank you for confirming my fear.

As unfortunate and awkward or even wrong as it is from today's perspective that mathesis is "Magisterarbeit", I don't think we can change things now.

moewew commented 5 years ago

I'm closing this issue as won't fix for now. While our de facto policy seems to be that changes to localisation strings are sort of acceptable when they are about stylistic issues (which in itself is already problematic from a backwards compatibility perspective), I don't think we can change this particular string since it would significantly change the meaning. If it turns out that there are many people who think this should be addressed and the pressure mounts we will probably have to discuss this again and might (have to) come to a different conclusion, but for now I feel that we should stick to the status quo, as painful as it might be.

DanielMarcato commented 4 years ago

Just had this same issue and think Magisterarbeit is wrong and should be fixed. Regarding backwards compatibility I see the issue but think that when the entry is called masterthesis the correct translation should be used - it is in my opinion wrong to continue suffering because of an old mistake. Issues like this make using latex for non pro-users extremely difficult

jspitz commented 4 years ago

It's not a mistake. Before the academic reforms commonly called "Bologna Process", Magisterarbeit was the correct German term for what was known as "master thesis" in the Anglo world.

DanielMarcato commented 4 years ago

It's not a mistake. Before the academic reforms commonly called "Bologna Process", Magisterarbeit was the correct German term for what was known as "master thesis" in the Anglo world.

I don't know how things were translated 15 years ago but it is not true in todays standards. The correct translation for masterthesis is Masterarbeit. As OP said a Magisterarbeit is completely different to what a masterthesis is. Keeping this just causes people to be forced to adjust it manually (it's why I found this issue in the first place) - not every Latex user is able to do this. In my opinion the "correct" translation at the time of compiling should be used. If you have masterthesis entries in your bibliographies that you expect to be translated into Magisterarbeit and you compile them today you should be the one changing this manually and not new users.

jspitz commented 4 years ago

What has been a Magisterarbeit 15 years ago still is a Magisterarbeit and no Masterarbeit.

One of LaTeX's strengths is that does not change things behind your back.

DanielMarcato commented 4 years ago

True - but I assume the number of people compiling documents in todays standards to be vastly larger and these people expect a masterthesis to be translated as Masterarbeit (As I said I just had this exact problem and wondered why a Magisterarbeit is used as translation as it seems obviously wrong to me). I expect the number of compilations that intend to have masterthesis be translated with Magisterarbeit is miniscule.

This is just a comment by a standard user and you guys can obviously decide what the right thing to do is. I just wanted to let you know that this has caused frustration with friends of mine and did even puzzle me.

jspitz commented 4 years ago

With this argument you can completely throw any backwards compatibility attempt overboard. This might keep new users happy, but will frustrate long-term users.

The only way to get out of this situation here, IMHO, is to introduce another thesis type which is bound to the post-Bologna type of theses (in EU) and linked to mathesis by default. Or maybe a per-language option once this is implemented (#939), but this also needed to be opt-in.

moewew commented 4 years ago

I'm afraid there is no good solution here that will make everyone happy.

As mentioned above, currently I am in favour of keeping "Magisterarbeit" as unexpected, unfortunate (or maybe even wrong) it may be from today's perspective. My main motivation here is backwards compatibility. Admittedly, biblatex has had its fair share of backwards-compatibility-sensitive issues in the past (https://github.com/plk/biblatex/issues/372 comes to mind), but this was usually only related to style coding, user-level functionality (if there is such a thing) has remained quite stable (true, there were changes, but we try hard to ensure backwards compatibility there): A change from "Magisterarbeit" to "Masterarbeit" would not only mean that old documents produce semantically different results now (if you compile a document using biblatex from 15 years ago now, you may or may not encounter other issues as well, depending on how much you or the style you use ventured into lower-level terrain) it would also mean that .bib files that have been used and re-used for years would suddenly result in different output. I think it is fair to expect that users double check the output they get the first time they add an entry to their .bib file or use it with a new style (this is basically how you, @DanielMarcato, noticed the issue), but I think it is harder to argue that people like @jspitz who once convinced themselves that their entries produce the expected output should be anxiously checking for changes to such a fundamental change in meaning.

Bottom line: From today's perspective "Magisterarbeit" is a bad choice, but the backwards compatibility issues outweigh the upsides of the change for me at the moment.

It should be said again that the required change to get "Masterarbeit" is not very complex

\DefineBibliographyStrings{german}{
  mathesis = {Masterarbeit},
}

and might even be a nice introduction into learning some basics of biblatex customisation for those who encounter this issue.

gusbrs commented 4 years ago

This discussion drives me to make a suggestion I entreat for quite some time. It is true that it is not complex to change a bibstring in a single document with \DefineBibliographyStrings, but things can get more complicated in case we want to do the same globally, for all ones documents, e.g. in a biblatex config file or in a general settings file one somehow chooses to load. And here because \DefineBibliographyStrings overrides both the full and the abbreviated version of the string defined in \DeclareBibliographyStrings, and the later can only be used in localisation files. But we cannot simply override both forms of the string with a single one, irrespective of how abbreviate might be set in one or another document, or how style developers might choose to use those two forms (A style might choose to use the abbreviated form in some places, and long form somewhere else. In fact, biblatex grants this possibility currently with \biblstring and \bibsstring).

So, my suggestion would be that \DefineBibliographyStrings can also receive the two forms, as \DeclareBibliographyStrings. I suppose that, if given a single one, current behavior could, and for backwards compatibility should, be kept.

This would allow one to globally and reliably change a bibstring, in case they don't like the defaults. And would also make much more manageable to deal with backward incompatibility issues, in case a change is decided to be made upstream. (Suppose the change to "Masterarbeit" had been taken today, what would you have recommended Jürgen do? Keep a patched version of "german.lbx" in his texmf?). And I think it is sensible to assume that disputes over bibstrings are bound to come up every once in a while.

plk commented 4 years ago

I would be in favour of this - it was never clear to me why \DefineBibliographyStrings overrode both forms.

moewew commented 4 years ago

I always found it annoying that \DefineBibliographyStrings overrides both the long and the short form, but I guess in this particular case the canonical answer would be to define a new .lbx file and establish a language mapping.

\ProvidesFile{german-bologna.lbx}[2020/03/01]

\InheritBibliographyExtras{german}

\DeclareBibliographyStrings{%
  inherit          = {german},
  mathesis         = {{Masterarbeit}{Masterarbeit}},
}
\endinput

and then

\documentclass[ngerman]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{babel}
\usepackage{csquotes}

\usepackage[style=verbose, backend=biber]{biblatex}
\DeclareLanguageMapping{german}{german-bologna}

\addbibresource{biblatex-examples.bib}

\begin{document}
\cite{sigfridsson,loh,kant:kpv}
\printbibliography
\end{document}
moewew commented 4 years ago

Is there a safe way to test if we have one or two groups in \DefineBibliographyStrings? We absolutely can not break

\DefineBibliographyStrings{german}{
  mathesis = {Masterarbeit},
}

but we need to be able to tell it apart from

\DefineBibliographyStrings{german}{
  mathesis = {{Masterarbeit}{Masterarb\adddot}},
}
plk commented 4 years ago

Some way to counts tokens would presumably do it - if token count of \@firstofone was equal to 2? In the current case, it would always be 1.

moewew commented 4 years ago

The thing is that the key-value processing skips braces, so from the first case we get to see Masterarbeit and from the second we see {Masterarbeit}{Masterarb\adddot}. It appears quite tricky to do the right thing for all of the following cases

\DefineBibliographyStrings{british}{
  mathesis = {Masterarbeit},
}

\DefineBibliographyStrings{british}{
  mathesis = {\"a},
}

\DefineBibliographyStrings{british}{
  mathesis = {in},
}

\DefineBibliographyStrings{british}{
  mathesis = {{i}{n}},
}

\DefineBibliographyStrings{british}{
  mathesis = {{Masterarbeit}{Masterarbeit}},
}

Here is what I tried so far: Use \@gobbletwo to gobble two tokens and check if the result is empty. If the result is not empty we definitely have a single string. But now we need to distinguish the cases in, \"a and {Masterarbeit}{Masterarbeit} which all consist of two tokens. My first attempt was to detokenize the strings and apply \@gobbletwo, but that doesn't quite work since it can't deal with \"a properly (which is two tokens, but three detokenized tokens).

moewew commented 4 years ago

I'm sure it will make neither those who want to see 'Masterarbeit' nor those who need to stick with 'Magisterarbeit' happy, but what do you think about adding a warning in the .log file when mathesis is used in German? The warning would make people aware of the issue, but only if they need to be aware of it (i.e. if they print mathesis in German). (A great many people don't read warnings, but we would at least warn those who do.) Of course it would be possible to disable the warning (like the warnings we issue when the Hungarian language module is loaded).

What do you think? Is it worth it or does it just add noise for no good reason?

jspitz commented 4 years ago

What do you think? Is it worth it or does it just add noise for no good reason?

I'd lean towards the latter.

AndreasGocht commented 2 years ago

Probably a stupid question, but what do you do if you like to cite both in the same document? E.g. a "Masterarbeit" and a "Magisterarbeit"?

Best,

Andreas

jspitz commented 2 years ago

use @thesis with type = {Masterarbeit}.

AndreasGocht commented 2 years ago

thanks.

claell commented 1 year ago

Adding some thoughts to this admittedly old issue: If I understand correctly, in the past, mathesis wasn't used consistently? So depending on the language setting, the same entry would be either cited as "Magisterarbeit" or "Master's thesis"; both not being the same? I'd argue that this inconsistent past behavior is flawed in the first place. Even then, it was not correct to do that (correct me please in case this is wrong).

So in order to fix this, one would need an additional type, explicitly being for either the legacy "Magisterarbeiten", or for the "Master's theses". Since the old way already was wrong, I suggest adding an additional type for "Magisterarbeiten" and use mathesis only for real "Master's theses".

jspitz commented 1 year ago

I'd say that, previous to the "Bologna reform", the German equivalent to (English) Master's Thesis was Magisterarbeit. To the best of my knowledge, there hasn't been a "Masterarbeit" in Germany before this. And the proposed change would really break backwards compatibility. So I am still very much opposed to the proposal.

claell commented 1 year ago

But they were never the same, right? So also back then, it was a mistake to translate/use mathesis differently based on the location/language setting.

Imagine back then, a German author kept track of English Master's theses. In case they use English language (for example a scientific publication), they will be cited as Master's thesis; while the same titles from the same library would have been cited wrongly (!) as Magisterarbeit, in case the author used the German language (for example for a thesis). Same the other way round. Back then, a German Magisterarbeit would have been wrongly cited as "Master's thesis" in English publications, which had been pretty misleading, I suppose.

Again, please correct me in case I am wrong. Probably, the distinction (that has always been there, IMHO) got much more important after the introduction of Master's theses to Germany. But I think, the problem has always been there.

Note, that the proposed change would only break backwards compatibility for the German users. But okay, maybe we need to introduce two new types, then, to finally fix this problem? One for Master's theses and one for Magisterarbeiten, keeping the old (IMHO always broken) "hybrid" one for backwards compatibility.

I think we can agree that the current system is not working for the current usage, as it will lead to wrong citations based on the location/language, which should never happen and is IMHO even worse (because I see this as a bug) than caring about backwards compatibility.

claell commented 1 year ago

use @thesis with type = {Masterarbeit}.

This won't work nicely for multi-language usage, correct? So for English documents would also say "Masterarbeit".

jspitz commented 1 year ago

But they were never the same, right?

They have been the (most) analogous genre in the respective academic cultures.

So also back then, it was a mistake to translate/use mathesis differently based on the location/language setting.

Don't think so.

Imagine back then, a German author kept track of English Master's theses. In case they use English language (for example a scientific publication), they will be cited as Master's thesis; while the same titles from the same library would have been cited wrongly (!) as Magisterarbeit, in case the author used the German language (for example for a thesis). Same the other way round. Back then, a German Magisterarbeit would have been wrongly cited as "Master's thesis" in English publications, which had been pretty misleading, I suppose.

You can do the very same argument for "PhD thesis" vs. "Dissertation" or "Doktorarbeit", as the doctoral thesis in the German speaking world is significantly different from the PhD thesis (due to the different academic cultures where one has a second thesis, the Habilitation).

I think we can agree that the current system is not working for the current usage, as it will lead to wrong citations based on the location/language, which should never happen and is IMHO even worse (because I see this as a bug) than caring about backwards compatibility.

No, I don't agree with that. I don't see why "Masterarbeit" as translating some English "Master's Thesis" is so much more correct than "Magisterarbeit". Strictly speaking, you should probably not translate such genre names at all between different academic cultures. In any case, the change would break basically all previous records people have made in this category.

One feasible solution, I think, would be an option to switch between the two translations, with the current default as default and the possibility to opt-out to "Masterarbeit".

jspitz commented 1 year ago

use @thesis with type = {Masterarbeit}.

This won't work nicely for multi-language usage, correct? So for English documents would also say "Masterarbeit".

Correct. If you need localization, you need to adapt the bibstring in the style file or the preamble of your document:

\DefineBibliographyStrings{ngerman}{mathesis = {Masterarbeit}}

But this will overwrite all entries of that type. It would be good to have the possibility to make a copy of an existing bibstring (which inherits all definitions), and then be able to redefine a translation, something like:

\LetBibliographyString{mathesis-new}{mathesis}
\DefineBibliographyStrings{ngerman}{mathesis-new = {Masterarbeit}}

but this is not possible currently AFAICS.