Titel wird kleingechrieben

Erstellung eines Literaturverzeichnisses mit BibTeX, Biber, BibLaTeX und Co.


MoonKid
Forum-Meister
Forum-Meister
Beiträge: 690
Registriert: Sa 30. Jun 2012, 11:56

Titel wird kleingechrieben

Beitrag von MoonKid »

Ich habe das Problem, das in meinem Literaturverzeichnis nur der Anfangsbuchstabe des Titels groß geschrieben wird und die restlichen Wörter alle klein. Das macht man im Englischen glaub ich so, oder?

Das ist die bib
@article{cabana_2008,
        title = {Selective Provision of Asthma Self-Management Tools to Families},
        volume = {121},
        issn = {0031-4005, 1098-4275},
        language = {en},
        number = {4},
        journal = {Pediatrics},
        author = {Cabana, Michael D. and Chaffin, D. Curt and Jarlsberg, Leah G. and Thyne, Shannon M. and Clark, Noreen M.},
        month = apr,
        year = {2008},
        pages = {e900--e905},
},

@book{polit_2004,
        edition = {1., Aufl.},
        title = {Lehrbuch Pflegeforschung: Methodik, Beurteilung und Anwendungen},
        isbn = {3456839375},
        shorttitle = {Lehrbuch Pflegeforschung},
        publisher = {Huber, Bern},
        author = {Polit, Denise F. and Beck, Cheryl Tatano and Hungler, Bernadette P.},
        month = apr,
        year = {2004}
}
Das ist das tex-file
\documentclass{scrartcl}

\usepackage{xltxtra}
\defaultfontfeatures{Mapping=tex-text}
\usepackage{polyglossia}
\setdefaultlanguage[spelling=new]{german}

% Bibliographie
\usepackage[
    backend=biber,
    style=apa,
    sortlocale=de_DE,
    natbib=true,
    url=false,
    doi=true,
    eprint=false
]{biblatex}
\addbibresource{x.bib}
\DeclareLanguageMapping{german}{german-apa}
            
\begin{document}
\cite{polit_2004} \\
\cite{cabana_2008} \\

\printbibliography
\end{document}
XeLaTeX, TeX Live, vim-latexsuite

Benutzeravatar
Stefan Kottwitz
Admin
Admin
Beiträge: 2759
Registriert: Di 8. Jul 2008, 00:39
Kontaktdaten:

Beitrag von Stefan Kottwitz »

Du könntest zusätzliche geschweifte Klammern verwenden, um den Titel zu schützen:
title = {{Lehrbuch Pflegeforschung: Methodik, Beurteilung und Anwendungen}},
Stefan

MoonKid
Forum-Meister
Forum-Meister
Beiträge: 690
Registriert: Sa 30. Jun 2012, 11:56

Beitrag von MoonKid »

Stefan hat geschrieben:Du könntest zusätzliche geschweifte Klammern verwenden, um den Titel zu schützen
Ok, das geht. Aber es ist ein böser Workaround.

Warum edreistet sich da überhaupt irgendein package die Daten zu verändern? In meinem Code ist alles eindeutig auf Deutsch eingestellt.

Wo ist die Ursache?
XeLaTeX, TeX Live, vim-latexsuite

Besserwisser

Beitrag von Besserwisser »

Du verwendest einen amerikanischen Literaturstil, nämlich den Stil für Publikationen der American Psychological Association. Der Stil erdreistet sich also nicht einfach, etwas zu ändern, sondern ändert ganz korrekt so, wie es den Vorschriften für diese Publikationen entspricht.

Wenn Du das nicht haben willst, dann solltest Du entweder den Stil nicht verwenden, oder die entsprechende Einstellung ändern.

Kleiner Einschub
In apa.bbx findet sich die Änderung explizit ab ca. Zeile 458 bei den FieldFormat-Deklarationen:
% (APA 6.29) General format of titles.
%            Ugly Chicago-style lowercasing of English titles

\DeclareFieldFormat{apacase}{\MakeSentenceCase*{#1}}

\DeclareFieldFormat{issuetitle}{#1\isdot}
\DeclareFieldFormat{title}{\iffieldequalstr{titleisdescription}{true}{\mkbibbrackets{#1}}{\mkbibemph{#1}\isdot}}
\DeclareFieldFormat{origtitle}{\mkbibemph{\MakeSentenceCase*{#1}}\isdot}
\DeclareFieldFormat[article]{title}{#1\isdot}
\DeclareFieldFormat[article]{origtitle}{\MakeSentenceCase*{#1}\isdot}
\DeclareFieldFormat[inbook]{title}{#1\isdot}
\DeclareFieldFormat[inbook]{origtitle}{\MakeSentenceCase*{#1}\isdot}
\DeclareFieldFormat[incollection]{title}{#1\isdot}
\DeclareFieldFormat[incollection]{origtitle}{\MakeSentenceCase*{#1}\isdot}
\DeclareFieldFormat[inproceedings]{title}{#1\isdot}
\DeclareFieldFormat[inproceedings]{origtitle}{\MakeSentenceCase*{#1}\isdot}
\DeclareFieldFormat[proceedings]{title}{#1\isdot}
\DeclareFieldFormat[proceedings]{origtitle}{\MakeSentenceCase*{#1}\isdot}
und später aber Zeile 496:
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% (APA 6.29)      Additional {main}title information in brackets (using)
%                 {MAIN}TITLEADDON field. Colon after maintitle.

\DeclareFieldFormat{titleaddon}{\mkbibbrackets{\MakeSentenceCase*{#1}}}
\DeclareFieldFormat{maintitleaddon}{\mkbibbrackets{\MakeSentenceCase*{#1}}}
\DeclareFieldFormat{booktitleaddon}{\mkbibbrackets{\MakeSentenceCase*{#1}}}
Man muss aber nicht alle FieldFormat-Deklarationen ändern, weder in der Dokumentpräambel noch durch eine eigene von apa.bbx abgeleitetete bbx-Datei.[/size]

Wenn man in der biblatex-Anleitung nachliest, erfährt man, dass \MakeSentenceCase* die hyphenation-Einstellung beachtet. Man könnte nun also einfach biblatex erzählen, dass es die Trennung nach deutschen Regeln machen soll und schon macht es auch die Case-Umwandlung nicht mehr:
\begin{filecontents*}{x.bib}
@article{cabana_2008,
        hyphenation= {german},
        title = {Selective Provision of Asthma Self-Management Tools to Families},
        volume = {121},
        issn = {0031-4005, 1098-4275},
        language = {en},
        number = {4},
        journal = {Pediatrics},
        author = {Cabana, Michael D. and Chaffin, D. Curt and Jarlsberg, Leah G. and Thyne, Shannon M. and Clark, Noreen M.},
        month = apr,
        year = {2008},
        pages = {e900--e905},
},

@book{polit_2004,
        hyphenation= {german},
        edition = {1., Aufl.},
        title = {Lehrbuch Pflegeforschung: Methodik, Beurteilung und Anwendungen},
        isbn = {3456839375},
        shorttitle = {Lehrbuch Pflegeforschung},
        publisher = {Huber, Bern},
        author = {Polit, Denise F. and Beck, Cheryl Tatano and Hungler, Bernadette P.},
        month = apr,
        year = {2004}
}
\end{filecontents*}
\documentclass{scrartcl}

\usepackage{xltxtra}
\defaultfontfeatures{Mapping=tex-text}
\usepackage{polyglossia}
\setdefaultlanguage[spelling=new]{german}

% Bibliographie
\usepackage[
    backend=biber,
    style=apa,
    sortlocale=de_DE,
    natbib=true,
    url=false,
    doi=true,
    eprint=false
]{biblatex}
\addbibresource{x.bib}
\DeclareLanguageMapping{german}{german-apa}
           
\begin{document}
\cite{polit_2004} \\
\cite{cabana_2008} \\

\printbibliography
\end{document}
Es wird ein latex-Lauf, ein biber-Lauf und noch ein latex-Lauf benötigt. Vor dem ersten latex-Lauf ist x.bib zu löschen!

Man kann aber auch sagen, dass je nach Sprache des Eintrags die korrekte Trennung verwendet werden soll und die Case-Änderung für alle Sprachen abschalten:
\begin{filecontents*}{x.bib}
@article{cabana_2008,
        hyphenation= {english},
        title = {Selective Provision of Asthma Self-Management Tools to Families},
        volume = {121},
        issn = {0031-4005, 1098-4275},
        language = {en},
        number = {4},
        journal = {Pediatrics},
        author = {Cabana, Michael D. and Chaffin, D. Curt and Jarlsberg, Leah G. and Thyne, Shannon M. and Clark, Noreen M.},
        month = apr,
        year = {2008},
        pages = {e900--e905},
},

@book{polit_2004,
        hyphenation= {german},
        edition = {1., Aufl.},
        title = {Lehrbuch Pflegeforschung: Methodik, Beurteilung und Anwendungen},
        isbn = {3456839375},
        shorttitle = {Lehrbuch Pflegeforschung},
        publisher = {Huber, Bern},
        author = {Polit, Denise F. and Beck, Cheryl Tatano and Hungler, Bernadette P.},
        month = apr,
        year = {2004}
}
\end{filecontents*}
\documentclass{scrartcl}

\usepackage{xltxtra}
\defaultfontfeatures{Mapping=tex-text}
\usepackage{polyglossia}
\setdefaultlanguage[spelling=new]{german}

% Bibliographie
\usepackage[
    backend=biber,
    style=apa,
    sortlocale=de_DE,
    natbib=true,
    url=false,
    doi=true,
    eprint=false
]{biblatex}
\addbibresource{x.bib}
\DeclareLanguageMapping{german}{german-apa}
\DeclareCaseLangs{}% Für keine Sprache Case-Änderungen.
           
\begin{document}
\cite{polit_2004} \\
\cite{cabana_2008} \\

\printbibliography
\end{document}
Es wird wieder ein latex-Lauf, ein biber-Lauf und noch ein latex-Lauf benötigt. Vor dem ersten latex-Lauf ist x.bib zu löschen!

Vor allem die zweite Lösung ist deutlich sauberer als die Verwendung einer zweiten Klammer. Immerhin kann man damit die Literaturdatenbank auch noch für Dokumente verwenden, bei denen die Case-Änderung entsprechend der Sprache des Eintrags sehr wohl erwünscht ist.

MoonKid
Forum-Meister
Forum-Meister
Beiträge: 690
Registriert: Sa 30. Jun 2012, 11:56

Beitrag von MoonKid »

Sorry, aber ich sehe gerade in deinem Code nicht wo du was geändert hast. ;)
Besserwisser hat geschrieben:Wenn man in der biblatex-Anleitung nachliest, erfährt man, dass \MakeSentenceCase* die hyphenation-Einstellung beachtet. Man könnte nun also einfach biblatex erzählen, dass es die Trennung nach deutschen Regeln machen soll und schon macht es auch die Case-Umwandlung nicht mehr:
Und wo in deinem Code hast du das gemacht?
Besserwisser hat geschrieben:Man kann aber auch sagen, dass je nach Sprache des Eintrags die korrekte Trennung verwendet werden soll und die Case-Änderung für alle Sprachen abschalten:
...
\DeclareCaseLangs{}% Für keine Sprache Case-Änderungen.
...
Es wird wieder ein latex-Lauf, ein biber-Lauf und noch ein latex-Lauf benötigt. Vor dem ersten latex-Lauf ist x.bib zu löschen!

Vor allem die zweite Lösung ist deutlich sauberer als die Verwendung einer zweiten Klammer.
Mhm... Ändert auch nix.
Ich habe alle output-files vorher gelöscht und entsprechend xetex-biber-xetex gemacht.
Warum sollte ich x.bib löschen, das ist doch meine lit-datenbank?

In x.bbl stehen die Titel übrigens korrekt drin, falls das relevant ist.
XeLaTeX, TeX Live, vim-latexsuite

Besserwisser

Beitrag von Besserwisser »

MoonKid hat geschrieben:Und wo in deinem Code hast du das gemacht?
Ich habe auf den hyphenation-Eintrag in der Erklärung hingewiesen. Wenn Du Deinen Code mit meinem vergleichen würdest, würdest Du feststellen, dass ich entsprechend meiner Erklärung hyphenation-Einträge gesetzt habe. Darüber hinaus habe ich in meinem zweiten Beispiel \DeclareCaseLangs entsprechend verwendet. Das hast Du sogar zitiert. Bitte etwas mehr Sorgfalt und etwas weniger Hektik!
MoonKid hat geschrieben:In x.bbl stehen die Titel übrigens korrekt drin, falls das relevant ist.
Nö. Denn die hyphenation-Einträge, auf die ich hingewiesen habe und die Du in der biblatex-Anleitung hättest nachlesen sollen, fehlen da offensichtlich. Also muss die neu mit biber aus der geänderten bib-Datei erzeugt werden, wie ich das angegeben habe. Im allgemeinen denke ich mir schon etwas dabei, wenn ich solche expliziten Angaben mache …
MoonKid hat geschrieben:Warum sollte ich x.bib löschen, das ist doch meine lit-datenbank?
Du solltet natürlich nicht Deine Original-Datenbank löschen. Mit Beispielen arbeitet man aber auch nicht im Arbeitsverzeichnis seines echten Dokuments, sondern in einem sauberen Testverzeichnis. Wenn die x.bbl nicht gelöscht wird, dann kann die filecontents-Umgebung die geänderte x.bbl nicht schreiben. Das ist ein Sicherheitsmechanismus, damit Dir eben nicht versehentlich Deine Original-Literaturdatenbank überschrieben wird. Ich hätte auch ganz frech als erste Zeile ein \RequirePackage{filecontents} einfügen können, um diesen Sicherheitsmechanismus abzuschalten und Dir das korrekte Vorgehen aufzuzwingen. Aber man ist ja nicht so … Wenn Du allerdings das korrekte Vorgehen verweigerst und glaubst, dass Du schlauer bist als die Helfer, dann macht es nicht nur keinen Spaß mehr, dann wird es auch zunehmend schwer, Dir zu helfen.

MoonKid
Forum-Meister
Forum-Meister
Beiträge: 690
Registriert: Sa 30. Jun 2012, 11:56

Beitrag von MoonKid »

Sorry, das war echt ein Verständnisproblem. Den bib-Teil deines Code-Vorschlags habe ich nicht gelesen.

In meinem environment sind bib-files dynamisch erzeugt, die fasse ich nicht an und lese sie (normalerweise) auch nicht.

Aber so geht es erstmal. Jetzt muss ich nur hoffen, dass meine Literaturverwaltung solche Zeilen erzeugen kann, sonst hab ich n Problem.

Danke.
XeLaTeX, TeX Live, vim-latexsuite

Besserwisser

Beitrag von Besserwisser »

MoonKid hat geschrieben:Den bib-Teil deines Code-Vorschlags habe ich nicht gelesen.
Daher meine Bitte, etwas weniger Hektik und etwas mehr Sorgfalt walten zu lassen. Solche Hinweise sind ernst gemeint. Die Vermutung, die dahinter steht, ist natürlich nur eine Vermutung, basiert aber auf langjähriger Erfahrung sowohl mit mir selbst als auch mit anderen.
MoonKid hat geschrieben:Jetzt muss ich nur hoffen, dass meine Literaturverwaltung solche Zeilen erzeugen kann, sonst hab ich n Problem.
Es sollte kein Problem sein, zwischen Literaturverwaltung und biber notfalls ein kleines Script (ich würde sed oder awk nehmen, Windows-Anwender bevorzugen eventuell ein PowerShell-Script) zu schieben, das zumindest einheitliche Einträge (siehe mein erstes Beispiel) erstellt. Die tatsächliche Sprache zu erkennen und wirklich passende Einträge (siehe mein zweites Beispiel) zu erzeugen, kann je nachdem, was die Literaturverwaltung leisten kann, natürlich beliebig schwer werden.

MoonKid
Forum-Meister
Forum-Meister
Beiträge: 690
Registriert: Sa 30. Jun 2012, 11:56

Beitrag von MoonKid »

Nochmal ne Frage zu APA.

Diese Titel
Selective Provision of Asthma Self-Management Tools to Families
soll laut APA im Literaturverzeichnis klein geschrieben werden? Hab ich das richtig verstanden?

Warum? ;)
XeLaTeX, TeX Live, vim-latexsuite

Antworten