Anzeige:
Ergebnis 1 bis 4 von 4

Thema: BibTeX-Fehlermeldung: 1 is an integer literal, not a string, for entry blablabla

  1. #1
    Registrierter Benutzer
    Registriert seit
    11.11.2011
    Beiträge
    8

    Exclamation BibTeX-Fehlermeldung: 1 is an integer literal, not a string, for entry blablabla

    Hallo zusammen,

    Ich spiele derzeit an einem eigenen Bibstyle mit Internetquellen (@ELECTRONIC) und habe mir dafür eine kleine Funktion geschrieben, welche einen String nach gewissen Zeichen durchsucht und diese ersetzt. Ziel ist es, eine URL so auszugeben, dass LaTeX nicht meckert. Z. B. wegen "_". Also "_" durch "\_" ersetzen.

    Alles funktioniert prima. Das Ergebnis stimmt. Aber BibTeX gibt haufenweise Fehlermeldungen aus. Ich bin mir sicher, dass bei jedem Aufruf von substring$ ein Fehler entsteht. Dabei scheint BibTeX ein Problem damit zu haben, dass meine Substrings die Länge 1 haben.

    Wie unterbindet man diese Fehlermeldungen? Immerhin macht BibTeX ja das richtige... Oder hat jemand eine bessere Funktion zum Ersetzen? text.length$ kann ja auch zu Problemen führen!

    Code:
    STRINGS { str.to.replace replacement }
    INTEGERS { string.length }
    FUNCTION { string.replace }
    {
      'replacement :=
      'str.to.replace :=
      duplicate$ text.length$ 'string.length :=
      #1 'i :=
      { i #1 + string.length < }
      { 
        duplicate$ i #1 substring$ str.to.replace = 
        { 
          duplicate$ i #1 - text.prefix$ 
          replacement *
          swap$ i #1 + string.length substring$ *
          duplicate$ text.length$ 'string.length :=
          i replacement text.length$ + str.to.replace text.length$ - 'i :=
        }
        'skip$
        if$
        i #1 + 'i :=
      }
      while$
    }
    Code:
    FUNCTION {output.url}
    {
      url duplicate$
      empty$ not
      {
        duplicate$ "http://" swap$ #7 text.prefix$ =
        { duplicate$ text.length$ #7 - #8 swap$ substring$ }
        'skip$
        if$
    
    % Sonderzeichen ersetzen
        "_" "\_" string.replace
        "&" "\&" string.replace
        "#" "\#" string.replace
        "$" "\$" string.replace
    
    %Umbrüche einfügen
        "/" "/" quote$ quote$ * * string.replace
    
        "\small \texttt{" swap$ *
        "}\normalsize " * write$
      }
      'pop$
      if$
    }
    Bin für jeden Input dankbar!

  2. #2
    Registrierter Benutzer
    Registriert seit
    27.11.2007
    Beiträge
    375
    Hallo,

    einfach ein \url um die URL im bib-File?

    Code:
    url = {\url{http://www.google.de}}
    Christian.
    Ubuntu 16.04 -- TeX Live 2015 -- Emacs (AUCTeX, RefTeX)

  3. #3
    Registrierter Benutzer
    Registriert seit
    11.11.2011
    Beiträge
    8
    Hallo Christian,

    Danke für deine Antwort. Dein Ansatz hilft natürlich. Er bekämpft aber letztlich nur das Symptom nicht die Ursache!

    Hoffe auf weiteren Input!
    Geändert von dreizehn28 (21-11-2011 um 12:41 Uhr)

  4. #4
    Registrierter Benutzer
    Registriert seit
    11.11.2011
    Beiträge
    8
    Problem hat sich erledigt. Das Problem entstand, anders als erwartet, gar nicht beim überarbeiten des urls, sondern beim filtern eines Datums. Der obige Code kann also problemlos verwendet werden! =)
    Es bleibt die Inkonsistenz bei der Verwendung von text.length$.

Lesezeichen

Berechtigungen

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