2017-02-20 3 views
1

Ich möchte Autorennamen durch @string Einträge in einer Bibtex-Datei definieren und sie bei der Analyse der Datei ersetzen.bibtex-ruby: Ersetzen Sie mehrere Zeichenfolgen im Feld "Autor"

@string { author1 = "J. Doe" } 
@string { author2 = "J. Smith" } 

So weit so gut. Der schwierige Teil kommt, wenn z. ein Artikeleintrag, der diese Abkürzungen verwenden soll. Ich habe versucht, verschiedene Kombinationen wie

author = {author1 and author2} 
author = "author1 and author2" 

aber die einzige Version, die Arbeit schien, war die folgende, wo ich drei Saiten verketten musste:

author = author1 # " and " # author2 

, die a) sieht umständlich und b) macht die Dinge eher komplizierter als einfacher, insbesondere für längere Autorenlisten. Kennt jemand einen besseren Weg, um Strings für den Austausch mehrerer Autoren in Bibtex-Dateien effektiv zu verwenden?

Wäre dies ein gültiger Funktionsantrag/Fehlerbericht bei bibtex-ruby oder fehle ich an einem guten Grund, diese Funktion in diesem Fall nicht zu verwenden?

+0

'@string {author1 = "J. Doe"}' - ist ein Block '@ string' Variable gesendet. Ist das sicher, was du meinst? –

+0

@AndreyDeineko Während es aussieht, könnte dies Ruby sein, ist es nicht. Es ist eine Bibtex-Erklärung. Überprüfen Sie das Etikett. :) – coreyward

Antwort

0

Ich habe das gleiche Problem und meine derzeit beste Lösung ist wie folgt. Definieren Sie einen weiteren @string, der " and " zu einem einzelnen Buchstaben z. "y" wie im Spanischen für "und"; Verwenden Sie dann #y# zwischen den Autorenzeichenfolgen. Es ist etwas weniger repetitive und hässlich

% define authors as strings 
@string{alice = "A. Alice"} 
@string{bob = "B.~B. Bob"} 
@string{cal = "C. Callum"} 

% define repetitive " and " string. I've used "y" as in the Spanish for "and" 
@string{y = " and "} 

@misc {citationkey, 
    author = alice #y# bob #y# cal, 
    title = "A title", 
    } 

Voila

Verwandte Themen