Hallo! Könnte man den den im Dokument besonders markierten Kram irgendwie auslagern? Am besten in die dbx-Datei (siehe unten). Gibt es dazu eine Möglichkeit?

main.tex

Open in Online-Editor
% arara: pdflatex
% arara: biber
% arara: pdflatex
% arara: pdflatex

\documentclass[parskip=half-,toc=flat,
fontsize=9pt,DIV = 9, paper=a5,pagesize,headings=normal]{scrartcl}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel}
\usepackage[autostyle]{csquotes}
\usepackage[datamodel=ufischer,defernumbers
]{biblatex}
\addbibresource{MeineAdressen.bib}

% Diesen Kram %%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%

\DeclareBibliographyDriver{adresse}{%
\printnames{name}\setunit{\addcomma\addspace}%
\printfield{strasse}\setunit{\addcomma\addspace}%
\printfield{plz}\setunit{\addspace}\printfield{ort}%
\usebibmacro{finentry}}

\DeclareNameFormat[adresse]{anrede}{#1}

\DeclareCiteCommand{\citeanrede}{}{%
\iffieldequalstr{gender}{sm}
{\printtext{Herr}}{\printtext{Frau}}%
\setunit{\addspace}\printnames[anrede]{name}}
{}{}

\DeclareCiteCommand{\citeadresse}{}{%
\printtext{\par\noindent}%
\iffieldequalstr{gender}{sm}{\printtext{Herrn}}{\printtext{Frau}}%
\setunit{~}\printnames{name}%
\setunit{\\}\printfield{strasse}%
\setunit{\\}\printfield{plz}\setunit{\addspace}\printfield{ort}}
{}{}

%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%
% Diesen Kram %%%%%%%%%%%%%%

\begin{document}
\citeadresse{max}
\citeadresse{eva}

\bigskip
Lieber \citeanrede{max}, liebe \citeanrede{eva},

schaut euch doch mal \cite{dante} an und
lest \cite{input1}

\printbibliography[type=adresse,title=Verteilerliste]
\printbibliography[nottype=adresse,resetnumbers]
\end{document}

ufischer.dbx

Open in Online-Editor
\DeclareDatamodelEntrytypes{adresse}

\DeclareDatamodelFields[type=list,
datatype=name]
{name}

\DeclareDatamodelFields[type=field,
datatype=literal]
{strasse,ort,plz}

\DeclareDatamodelEntryfields[adresse]{%
name,strasse,ort,plz,gender}

MeineAdressen.bib

Open in Online-Editor
@adresse{max,
 name    ={Muster, Max},
 strasse ={Im Versuchsweg 10},
 ort     ={Testgelände},
 plz     ={X01234},
 gender  ={sm}
 }

@adresse{eva,
 name    ={Muster, Eva},
 strasse ={Im Versuchsweg 10},
 ort     ={Testgelände},
 plz     ={X01234},
 gender  ={sf}
 }

gefragt 19 Nov '15, 11:39

cis's gravatar image

cis
9.5k75452491
Akzeptiert-Rate: 29%

bearbeitet 19 Nov '15, 11:40

Du kannst das in eine neue bbx schreiben.

(19 Nov '15, 11:41) Johannes

Oh nein, das ist ja schrecklich, dann habe ich am Schluß 4 Millionen Datendateien (und dann weiß ich weider nicht, wo ich da alle abspeichern muss). Mhhh, geht dann wohl nicht anders.

(19 Nov '15, 11:44) cis

Ok, wie findet Tex dann die Datei ufischer.bbx

\usepackage[ style=ufischer, datamodel=ufischer, defernumbers, ]{biblatex}

ist scheints falsch :(

(19 Nov '15, 11:54) cis
1

Kleiner Überblick über die Dateiendungen der Deklarationsdateien bei biblatex:

  • dbx=Datenbankmodeldeklaration (biblatex-Anleitung, Abschnitt 4.5.3)
  • bbx=Literaturverzeichnisstildeklaraton (biblatex-Anleitung, Abschnitt 4.2.1)
  • cbx=Literaturzitierstildeklaration (biblatex-Anleitung, Abschnitt 4.3.1)

Sie alle werden via Option geladen. Zum einen via Option style, aber auch über individuelle Optionen. Näheres dazu ist der biblatex-Anleitung zu entnehmen.

(19 Nov '15, 11:58) saputello

Ja, danke. Dann wahrscheinlich doch wie oben \usepackage[style=ufischer,...]{biblatex} oder vielleicht \RequireBibliographyStyle{ufischer.bbx}

Dann kommt ! Package biblatex Error: Style 'ufischer.bbx' not found.

Wahrscheinlich muss man die Datei erstmal auffindbar machen. Da hab ich grad keine Ahnung, wie das geht. Das ist vermutlich i'was Grundsätzliches, und das steht auch nicht im biblatex-Handbuch.

(19 Nov '15, 12:13) cis

@cis LaTeX ist es relativ schnurz ob es eine Klassen-, Paket, -bbx-Datei finden sool/muss. Die gehören alle an bestimmte Plätze. http://texwelt.de/wissen/fragen/4887/wie-kann-ich-klassen-oder-pakete-verwenden-die-nur-als-einzelne-datei-bereitgestellt-werden

(19 Nov '15, 12:23) Johannes
1

Ich weiß ja nicht wie @Ulrike das sieht, aber ich würde dir empfehlen für deine eigenen Dateien auch deinen eigenen Namen zu verwenden und nicht den von Ulrike.

(19 Nov '15, 12:24) Johannes

@cis: Wenn Du style=foo angibst, dann werden foo.cbx, foo.bbx benötigt und wenn vorhanden auch foo.dbx geladen. Wenn Du also nur eine foo.dbx hast, aber keine foo.bbx, dann ist style nicht die richtige Option. Siehe dazu die bereits oben genannten Abschnitte der aktuellen biblatex-Anleitung. Dass Ulrike es begrüßen würde, wenn Du Dateien weniger direkt nach ihr benennen würdest, hat sie ja bereits erwähnt. ;-)

(19 Nov '15, 12:39) saputello

Ok, danke - ich versuchs.

Und wenn ich's nicht nach ihr bennene, dann wird moniert, dass einfach ihre Dateien unter meinem Namen verwende. Unterm Strich ist eh alles falsch, was man macht. Das war schon immer so und wird auch immer so sein.

(19 Nov '15, 12:51) cis

OK, bbx auffindbar gemacht. Und was muss in der cbx stehen?

(19 Nov '15, 13:27) cis

@cis: Hast Du den oben genannten Abschnitt zu cbx-Dateien in der Anleitung denn noch immer nicht gelesen?

(19 Nov '15, 13:39) saputello

Der Code ist öffentlich und den darfst du abschreiben, verwenden, verändern wie es dir gefällt. Ich würde dir empfehlen einen neuen Namen zu benutzen, denn wenn jeder "seine" Version ufischer nennt, kommen alle durcheinander.

(19 Nov '15, 14:16) Ulrike Fischer

Du kannst innerhalb der Datei ein Kommentar mit Link zum Artikel bzw. den Beispieldateien bereit stellen. Das ist üblich. Den Dateinamen unter allen Umständen zu behalten allerdings weit weniger.

(19 Nov '15, 14:18) Johannes

@saputello Ne, bis jetzt nur den Teil zu bbx - aber, um ehrlich zu sein, ist mir das zu hoch. Kann man nicht eine vorhandene cbx Datei verwenden? Falls ja, wie wird die aufgerufen?

(19 Nov '15, 15:01) cis

Wie schon mehrfach erwähnt: All die oben aufgeführten Dateien werden über Optionen geladen. Eine einzelne cbx-Datei über citestyle, zusammen mit einer gleichnamigen bbx-Datei und ggf. einer dbx-Datei auch über style. Lies das bitte endlich in der Anleitung nach! Und natürlich kann man sich an vorhandenen cbx-Dateien orientieren. Zusammen mit der Anleitung kann man da eine Menge über das korrekte Vorgehen lernen. Am besten nimmt man eine der cbx-Dateien, die bei biblatex dabei sind. Die passen garantiert zur verwendeten biblatex-Version.

(19 Nov '15, 16:27) saputello

Letzten Endes steht in der cbx die Zitierweise, also das was mit cite eingefügt wird. Das hast du oben schon in dem Block. Der bibdriver muss in die bbx. Also hast du eigentlich schon alles.

(19 Nov '15, 16:40) Johannes

Also kann allein aufgrund der Anleitung keine cbx-Datei selber schreiben. Wenn Du das seit den 80ern o.ä. machst, ist es klar, dass Du das kannst - ich mache es seit wenigen Jahren. Empathie...

Ich dachte, das muss so aussehen:
\usepackage[ style=ufischer, %ufischer.bbx citestyle=alphabetic, %alphabetic.cbx datamodel=ufischer, %ufischer.dbx defernumbers, ]{biblatex}

Das liefert ! Package biblatex Error: Bibliography macro 'finentry' undefined.

(20 Nov '15, 09:32) cis

Aja, da kommt gerade Fehler beim Aufbau einer Datenbankverbindung - mal sehen, ob die Seiten bald wieder gehen.

(21 Nov '15, 14:01) cis
1

@cis Die Seiten sind wieder verfügbar, @Stefan hat sich darum gekümmert. Danke Stefan :-)

(21 Nov '15, 15:59) Johannes
Ergebnis 5 von 20 show 15 more comments

Sagen wir, Du willst den Stil adressen nennen. Dann könnte adressen.dbx (datamodel) so aussehen:

Open in Online-Editor
\DeclareDatamodelEntrytypes{adresse}

\DeclareDatamodelFields[type=list,
datatype=name]
{name}

\DeclareDatamodelFields[type=field,
datatype=literal]
{strasse,ort,plz}

\DeclareDatamodelEntryfields[adresse]{%
name,strasse,ort,plz,gender}

Die entsprechende Datei adressen.bbx (Bibliograpieausgabe …)

Open in Online-Editor
\RequireBibliographyStyle{numeric}

\DeclareBibliographyDriver{adresse}{%
\printnames{name}\setunit{\addcomma\addspace}%
\printfield{strasse}\setunit{\addcomma\addspace}%
\printfield{plz}\setunit{\addspace}\printfield{ort}%
\usebibmacro{finentry}}

\DeclareNameFormat[adresse]{anrede}{#1}

und zu guter Letzt die passende Datei adressen.cbx (Zitierbefehle…):

Open in Online-Editor
\RequireCitationStyle{numeric}

\DeclareCiteCommand{\citeanrede}{}{%
\iffieldequalstr{gender}{sm}
{\printtext{Herr}}{\printtext{Frau}}%
\setunit{\addspace}\printnames[anrede]{name}}
{}{}

\DeclareCiteCommand{\citeadresse}{}{%
\printtext{\par\noindent}%
\iffieldequalstr{gender}{sm}{\printtext{Herrn}}{\printtext{Frau}}%
\setunit{~}\printnames{name}%
\setunit{\\}\printfield{strasse}%
\setunit{\\}\printfield{plz}\setunit{\addspace}\printfield{ort}}
{}{}

Speichert man die Dateien alle an einem Ort ab, wo sie gefunden werden können (im Arbeitsverzeichnis des Dokuments oder im lokalen TeX-Baum (bei mir wäre das /usr/local/texlive/texmf-local/tex/latex/local/adressen/) – dann aber nicht vergessen, die Datenbank mit mktexlsr aufzufrischen), dann kann man das so verwenden:

Open in Online-Editor
% arara: pdflatex
% arara: biber
% arara: pdflatex
% arara: pdflatex
\documentclass[parskip=half-,toc=flat,
fontsize=9pt,DIV = 9, paper=a5,pagesize,headings=normal]{scrartcl}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel}
\usepackage[autostyle]{csquotes}
\usepackage[style=adressen,defernumbers]{biblatex}
\addbibresource{MeineAdressen.bib}
\addbibresource{biblatex-examples.bib}

\begin{document}
\citeadresse{max}
\citeadresse{eva}

\bigskip
Lieber \citeanrede{max}, liebe \citeanrede{eva},

schaut euch doch mal \cite{companion} und \cite{knuth:ct:a} an.

\printbibliography[type=adresse,title=Verteilerliste]
\printbibliography[nottype=adresse,resetnumbers]
\end{document}

Soweit ich weiß, ist es übrigens nicht möglich, mehere Stile parallel zu verwenden. D.h. eine eventuelle zusätzliche Bibliograpie wird dann mit dem gleichen Stil gesetzt.


Alternativ könnte man auch den Inhalt der bbx- und cbx-Dateien in eine sty-Datei stecken, sagen wir adressen.sty. Die wird dann zusammen mit der dbx-Datei am gleichen Ort abgespeichert, wo man die bbx- und cbx-Dateien auch gespeichert hätte.

adressen.sty:

Open in Online-Editor
\RequirePackage[datamodel=adressen]{biblatex}
\ExecuteBibliographyOptions{defernumbers}

\DeclareBibliographyDriver{adresse}{%
\printnames{name}\setunit{\addcomma\addspace}%
\printfield{strasse}\setunit{\addcomma\addspace}%
\printfield{plz}\setunit{\addspace}\printfield{ort}%
\usebibmacro{finentry}}

\DeclareNameFormat[adresse]{anrede}{#1}

\DeclareCiteCommand{\citeanrede}{}{%
\iffieldequalstr{gender}{sm}
{\printtext{Herr}}{\printtext{Frau}}%
\setunit{\addspace}\printnames[anrede]{name}}
{}{}

\DeclareCiteCommand{\citeadresse}{}{%
\printtext{\par\noindent}%
\iffieldequalstr{gender}{sm}{\printtext{Herrn}}{\printtext{Frau}}%
\setunit{~}\printnames{name}%
\setunit{\\}\printfield{strasse}%
\setunit{\\}\printfield{plz}\setunit{\addspace}\printfield{ort}}
{}{}

Verwendet werden kann sie dann so:

Open in Online-Editor
% arara: pdflatex
% arara: biber
% arara: pdflatex
% arara: pdflatex

\documentclass[parskip=half-,toc=flat,
fontsize=9pt,DIV = 9, paper=a5,pagesize,headings=normal]{scrartcl}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel}
\usepackage[autostyle]{csquotes}

\usepackage{adressen}
\addbibresource{MeineAdressen.bib}
\addbibresource{biblatex-examples.bib}

\begin{document}
\citeadresse{max}
\citeadresse{eva}

\bigskip
Lieber \citeanrede{max}, liebe \citeanrede{eva},

schaut euch doch mal \cite{companion} und \cite{knuth:ct:a} an.

\printbibliography[type=adresse,title=Verteilerliste]
\printbibliography[nottype=adresse,resetnumbers]
\end{document}
Permanenter link

beantwortet 21 Nov '15, 19:17

cgnieder's gravatar image

cgnieder
22.1k243463
Akzeptiert-Rate: 60%

bearbeitet 23 Nov '15, 11:55

Du bist mein Held! (Aber das ist ja leider nichts Neues :()) Ich ziehe es mir nachher ausführlich rein - hätte nämlich evtl. weitereführende Ideen, die ich umsetzen wollte. Gerade scheiter ich halt noch an irgendwelchen Lapalien.

(21 Nov '15, 19:53) cis
1

biblatex ist ein weites Feld und wirklich nicht so leicht zu bezwingen. Viel in der Doku lesen, viel ausprobieren, oft scheitern ;-( Solang man sich davon aber nicht unterkriegen lässt, macht man Fortschritte ;-)

(21 Nov '15, 20:39) Johannes

Ahhja, "Soweit ich weiß, ist es übrigens nicht möglich, mehere Stile parallel zu verwenden. D.h. eine eventuelle zusätzliche Bibliograpie wird dann mit dem gleichen Stil gesetzt." - das ist jetzt interessant, danach wollte ich nämlich mal forschen.

(21 Nov '15, 20:40) cis
1

@cis Die Sache mit dem Stil ist der Grund, warum ich die Adressentreiber nicht in bbx und cbx-Dateien stecken würde, sondern in irgendeine sty-Datei.

(21 Nov '15, 21:29) Ulrike Fischer

Da muss ich Ulrike sogar zustimmen und merke das mein obiger Ratschlag eher wenig sinnvoll war, wie so oft wenn man nur schnell kommentiert. Am einfachsten wäre es den Block in eine normale tex-Datei zu schreiben und mit \input zu laden.

(21 Nov '15, 21:38) Johannes

@Johannes: Das ist wohl wahr mit dem lebenslangen biblatex-Lernen. Ja gut Version mit dem imput hab ich mir auch gedacht, wäre aber etwas LowLevel, finde ich. Wir wollen ja eine bestmögliche Lösung.

@Ulrike Fischer: Ja, das mit der sty wäre gut, kann ich aber gerade nicht. Ich würde z.B. auch gerne die Adressen mit [A1],[A2], ... o.ä.nummerieren; die Bib dagegen mit [1],[2], ... - aber das liefert ja scheints ganz neue Probleme.

(21 Nov '15, 21:51) cis

@cis Stichwort prefixnumbers

(21 Nov '15, 21:58) Johannes

@cis ich hab noch ein Beispiel mit sty-Datei hinzugefügt

(23 Nov '15, 11:56) cgnieder
Ergebnis 5 von 8 show 3 more comments
Deine Antwort
Vorschau umschalten

Folgen dieser Frage

Per E-Mail:

Wenn sie sich anmelden, kommen Sie für alle Updates hier in Frage

Per RSS:

Antworten

Antworten und Kommentare

Markdown-Grundlagen

  • *kursiv* oder _kursiv_
  • **Fett** oder __Fett__
  • Link:[Text](http://url.com/ "Titel")
  • Bild?![alt Text](/path/img.jpg "Titel")
  • nummerierte Liste: 1. Foo 2. Bar
  • zum Hinzufügen ein Zeilenumbruchs fügen Sie einfach zwei Leerzeichen an die Stelle an der die neue Linie sein soll.
  • grundlegende HTML-Tags werden ebenfalls unterstützt

Frage-Themen:

×220
×20

gestellte Frage: 19 Nov '15, 11:39

Frage wurde gesehen: 6,939 Mal

zuletzt geändert: 23 Nov '15, 11:56