Anzeige:
Ergebnis 1 bis 4 von 4

Thema: babelbib/babel - Sprachen-Aliase?

  1. #1
    Registrierter Benutzer
    Registriert seit
    13.12.2007
    Beiträge
    30

    babelbib/babel - Sprachen-Aliase?

    Hallo zusammen!

    Aus meiner mit mendeley erstellten Bibliographie entsteht beim LaTeXen folgende Fehlermeldung:
    Package babelbib Error: Language en in bibliography not loaded by babel \btxselectlanguage {en}
    babelbib: No \url command defined but field URL used(babelbib) in bibliography. .../content/articlehtml/1995/an/an9952002435}
    Das Problem ist der "language = {en},"-Eintrag, den ich nicht ändern kann (Datei wird immer wieder neu durch mendeley erzeugt).
    Jetzt sucht babelbib oder babel nach der entsprechenden Sprache und findet sie nicht.

    Gibt es eine Möglichkeit, Sprachenaliase zu vergeben (also en=english)?

    \documentclass[10pt,a4paper]{scrbook}
    \usepackage[ngerman,english]{babel}
    \usepackage[utf8]{inputenc}
    \usepackage[T1]{fontenc}
    \usepackage{babelbib}
    \begin{document}
    Hallo Welt!\cite{Threlfall1995}
    \bibliography{../../Literatur/Mendeley/library}{}
    \bibliographystyle{babplain}
    \end{document}
    Der Bibliographie-Eintrag sieht z.B. so aus:
    @article{Threlfall1995,
    annote = {Solvates: "This is probably related to the 'stuffing' effect of
    impurities described by Buerger.3"},
    author = {Threlfall, Terence L.},
    doi = {10.1039/an9952002435},
    file = {:Threlfall - 1995 - Analysis of organic polymorphs. A review.pdfdf},
    issn = {0003-2654},
    journal = {The Analyst},
    keywords = {solvatomorphism},
    language = {en},
    mendeley-tags = {solvatomorphism},
    month = jan,
    number = {10},
    pages = {2435},
    publisher = {The Royal Society of Chemistry},
    title = {{Analysis of organic polymorphs. A review}},
    url = {http://pubs.rsc.org/en/content/articlehtml/1995/an/an9952002435},
    volume = {120},
    year = {1995}
    }

  2. #2
    Registrierter Benutzer Avatar von rais
    Registriert seit
    18.07.2005
    Beiträge
    5.862
    Moin moin,
    Zitat Zitat von pheidrias Beitrag anzeigen
    Das Problem ist der "language = {en},"-Eintrag, den ich nicht ändern kann (Datei wird immer wieder neu durch mendeley erzeugt).
    Jetzt sucht babelbib oder babel nach der entsprechenden Sprache und findet sie nicht.

    Gibt es eine Möglichkeit, Sprachenaliase zu vergeben (also en=english)?
    Du könntest versuchen, \btxselectlanguage umzubiegen
    Code:
    \documentclass[10pt,a4paper]{scrbook}
    \usepackage[ngerman,english]{babel}
    \usepackage[utf8]{inputenc}
    \usepackage[T1]{fontenc}
    \usepackage{babelbib,url}
    \newcommand*\origbtxselectlanguage{}
    \let\origbtxselectlanguage\btxselectlanguage
    \newcommand*\tmplanga{}
    \newcommand*\tmplangb{}
    \renewcommand*\btxselectlanguage[1]{%
      \edef\tmplanga{#1}%
      \edef\tmplangb{en}%
      \ifx\tmplanga\tmplangb
        \typeout{en->english}%
        \origbtxselectlanguage{english}%
      \else
        \edef\tmplangb{de}%
        \ifx\tmplanga\tmplangb
          \typeout{de->german}%
          \origbtxselectlanguage{german}%ggf. ngerman
        \else
    %...hier ggf. weitere Sprachen abfangen
          \typeout{No redirect for `#1'}%
          \origbtxselectlanguage{#1}%
        \fi
      \fi
    }
    \begin{document}
    Hallo Welt!\cite{Threlfall1995}
    \bibliography{library}
    \bibliographystyle{babplain}
    \end{document}
    MfG
    Rainer
    There's nothing a good whack with a hammer won't fix!

  3. #3
    Registrierter Benutzer
    Registriert seit
    13.12.2007
    Beiträge
    30

    Thumbs up

    Super!

    Funktioniert einwandfrei!

    Ist das etwas aus dem Original rauskopiertes und erweitertes oder hast Du das mal eben so aus den Fingern gesaugt?

  4. #4
    Registrierter Benutzer Avatar von rais
    Registriert seit
    18.07.2005
    Beiträge
    5.862
    Zitat Zitat von pheidrias Beitrag anzeigen
    Ist das etwas aus dem Original rauskopiertes und erweitertes oder hast Du das mal eben so aus den Fingern gesaugt?
    nö,nur erweitert:
    Von den bab*-Stilen wird das language-Feld als \btxselectlanguage in die .bbl geschrieben.
    Code:
    \let\origbtxselectlanguage\btxselectlanguage
    legt eine Kopie des (vom babelbib definierten) \btxselectlanguage-Befehls an und nennt diese Kopie \origbtxselectlanguage.
    In der Redefinition von \btxselectlanguage teste ich lediglich auf "de" bzw. "en" und rufe entsprechend \origbtxselectlanguage -- also die unveränderte Kopie des Befehls -- mit "german" bzw. "english" auf. Wenn weder "de" noch "en" übergeben wurde, rufe ich das Original mit dem unveränderten Parameter auf
    a) da weiter oben in der .bbl ein \btxselectlanguage mit \btxfallbacklanguage aufgerufen wird
    b) für den Fall, daß Du gemischte .bib-Dateien verwenden willst und die teilweise bereits angepasst hast.
    Bei beiden Szenarien musste diese Erweiterung transparent zu `normalen' language-Einträgen sein.

    MfG
    Rainer
    There's nothing a good whack with a hammer won't fix!

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •