Jurabib-Defintion überschreiben

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


peerceval
Forum-Newbie
Forum-Newbie
Beiträge: 2
Registriert: Mo 3. Okt 2016, 12:46
Wohnort: Frankfurt

Jurabib-Defintion überschreiben

Beitrag von peerceval »

Frage:

Wie und wo kann ich auf Latex-Ebene eine im Jurabibpaket enthaltene
TeX-Definition so überladen / überschreiben, dass meine
Wunschkonfiguration zieht und nicht die originale Definition.

Erläuterung:

Ich hab - aufsetzend auf jurabib - ein am altphilologischen Arbeitsstil
aufgesetzte Zitierform erstellt. Das klappt dank der ausgezeichneten
jurabib-Vorarbeiten auch sehr gut, allerdings mit einer Ausnahme:

Die Angaben zu einem Artikel aus einer Sammlung/Buch... (in den
Fußnoten und im Literaturverzeichnis) sollen durch ein "in:" von den
Angaben der Sammlung getrennt. Laut jurabib Handbuch soll die
Redefinition der beiden Kommandos

\renewcommand*{\bibbtsep}{in:\ }
\renewcommand*{\bibjtsep}{in:\ }

dies bewirken. In vielen Fällen tut es das auch. Nur in einem nicht:
Wenn der Artikel per crossref mit der Sammlung verbunden ist, erscheint
das Kürzel "In"

Nun gibt es eine unschöne(!) Lösung: Ich kann das jurabibfile selbst
ändern. Dort gibt es in (in der englischen und der deutsche)
Sprachdefinition die Zeile

\def\inname{\ifjboxford in:\else\ifjbchicago in\else In\fi\fi}%

Ändere ich dort das "In" in "in:" sieht alles toll aus. Nur ist es
natürlich nicht gut das Jurabibpaket selbst zu ändern.

Meine Idee, diese Zeile in meine jurabib-Configurationsdatei zu nehmen
klappt dagegen nicht. Es hilft auch nicht die Zeile in Latexdatei vor
oder nach dem Laden des Paketes einzufügen. Ich kann den Inhalt einfach
nicht überschreiben. Gleiches gilt für das Latexanweisung newcommand.

Jetzt meine Frage:

Wie kann ich auf Latex-Ebene eine im Jurabibpaket enthaltene TeX-
Definition so überladen / überschreiben, dass meine Wunschkonfiguration
zieht und nicht die originale Definition.

Hier das Minimalbeispiel:
%

% minimal example  file
%

\documentclass[
  DIV=calc,
  BCOR=5mm,
  11pt,
  headings=small,
  oneside,
  abstract=true,
  toc=bib]{scrbook}

%%% (1) general configurations %%%
\usepackage[utf8]{inputenc}

%%% (2) language specific configurations %%%
\usepackage[]{a4,ngerman}
\usepackage[english,ngerman]{babel}
\selectlanguage{ngerman}

% jurabib configuration
\usepackage[see]{jurabib}
\bibliographystyle{jurabib}
\input{mexJbibCfg}

% folgende Zeilen sollten sich auswirken, tun es aber nicht:
\def\inname{\ifjboxford in:\else\ifjbchicago in:\else in:\fi\fi}%
\def\incollinname{\ifjboxford in:\else\ifjbchicago in:\else in:\fi\fi}%
% Ändert man die Pendants unter 
% /usr/share/texlive/texmf-dist/tex/latex/jurabib/dejbbib.ldf
% wird - wie gewünscht aus 'In Sowa' korrekt 'in: Sowa'

%integrate nomenclature
\input{mexNclCfg}

% Hyperlinks
\usepackage{hyperref}
\hypersetup{
  bookmarks=true,
  breaklinks=true,
  colorlinks=true,
  citecolor=blue,draft=false}

\begin{document}

%% use all entries of the bliography
\nocite{*}

\printnomenclature

% insert the bibliographical data here
\bibliography{mex}

\end{document}



Einen vollständigen Set aller Dateien inklusive PDF-Resultatfile habe ich angehängt.

Danke für die HIlfe im Voraus!

herzlichst P.
Dateianhänge
mex.tex
das obige Minimalbeispiel
(1.12 KiB) 263-mal heruntergeladen
mex.bib
die Bibliothek mit 2 Sammlungen und 2 artikeln, aus jeder Slg je einer
(3.09 KiB) 248-mal heruntergeladen
mexJbibCfg.tex
Reconfiguration der Juribkonfiguration entsprechend Jurabib Handbuch
(4.19 KiB) 349-mal heruntergeladen
mexNclCfg.tex
(1.15 KiB) 292-mal heruntergeladen
mex-0.1.pdf
zeigt das Problem an zwei verschiedenen Beispielen
(47.4 KiB) 227-mal heruntergeladen
To finish first, first you must finish!

Gast

Beitrag von Gast »

Crosspost mit der vereinsinternen Mailingliste dante-ev, was den Nachteil hat, dass ein Großteil der Leser hier, die dortigen Lösungsvorschläge nicht sehen!

Gast

Beitrag von Gast »

Ich hab Dein Beispiel mal versucht, in eine Datei zusammenzufassen. Da funktioniert alles ganz wunderbar.

(Achtung! Eine eventuell vorhandene .bib-Datei mit demselben Namen wir ohne Wartung überschrieben.)
\documentclass[
  DIV=calc,
  BCOR=5mm,
  11pt,
  headings=small,
  oneside,
  abstract=true,
  toc=bib]{scrbook}

\usepackage[utf8]{inputenc}

\usepackage[]{a4,ngerman}
\usepackage[english,ngerman]{babel}
\selectlanguage{ngerman}

\usepackage[see]{jurabib}
\bibliographystyle{jurabib}
\jurabibsetup{citefull=first}



\renewcommand*{\jbbtasep}{\ u.\ }
\renewcommand*{\jbbfsasep}{,\ }
\renewcommand*{\jbbstasep}{\ u.\ }
\renewcommand*{\jbbtesep}{\ u.\ }
\renewcommand*{\jbbfsesep}{,\ }
\renewcommand*{\jbbstesep}{\ u.\ }


\renewcommand*{\bibbtasep}{\ u.\ }
\renewcommand*{\bibbfsasep}{,\ } 
\renewcommand*{\bibbstasep}{\ u.\ }
\renewcommand*{\bibbtesep}{\ u.\ }
\renewcommand*{\bibbfsesep}{,\ }
\renewcommand*{\bibbstesep}{\ u.\ }

\jurabibsetup{authorformat=firstnotreversed}
\jurabibsetup{authorformat=italic}

\jurabibsetup{titleformat={all,colonsep}}

\jurabibsetup{commabeforerest}

\jurabibsetup{ibidem=strict}
\AddTo\bibsgerman{
  \renewcommand*{\ibidemname}{Ds.,\ a.a.O.}
  \renewcommand*{\ibidemmidname}{ds.,\ a.a.O.}
}
\renewcommand*{\samepageibidemname}{Ds.,\ ebda.}
\renewcommand*{\samepageibidemmidname}{ds.,\ ebda.}

\renewcommand*{\bibjtsep}{in:}
\renewcommand*{\bibbtsep}{in:}

\renewcommand*{\bibansep}{:\ }
\renewcommand*{\bibatsep}{;\ }
\renewcommand*{\bibbdsep}{,\ }

\jurabibsetup{pages=format}

\jurabibsetup{bibformat=compress}
\setlength{\jbbibhang}{1em}

\jurabibsetup{biblikecite}

\jurabibsetup{annote}
\renewcommand*{\jbannoteformat}[1]{{ \itshape #1 }}

\AddTo\bibsgerman{\renewcommand*{\urldatecomment}{Referenzdownload: }}

\renewcommand*{\bibaldelim}{(}
\renewcommand*{\bibardelim}{)}

\DeclareRobustCommand{\numberandseries}[2]{%
\unskip\unskip%,
\space\bibsnfont{(=~#2}%
\ifthenelse{\equal{#1}{}}{)}{, [Bd./Nr.]~#1)}%
}%


\usepackage{filecontents}
\begin{filecontents*}{\jobname.bib}
@Inproceedings{Hays1985a,
  Title                    = {Some Problems and Non-Problems in Representation Theory},
  Author                   = {Patrick J. Hays},
  Pages                    = {3-22},
  Shorttitle               = {Some Problems and Non-Problems in Representation Theory, 1985},
  Year                     = {1985},
  Crossref                 = {Brachman1985a},
}

@Inproceedings{Woods1991a,
  Title                    = {Understanding Subsumption. A Framework for Progress},
  Author                   = {W. A. Woods},
  Pages                    = {45 - 94},
  Shorttitle               = {Understanding Subsumption, 1991},
  Year                     = {1991},
  Crossref                 = {Sowa1991a},
}

@Proceedings{Brachman1985a,
  Title                    = {Readings In Knowledge Representation},
  Shorttitle               = {Readings In Knowledge Representation, 1985},
  Year                     = {1985},

  Address                  = {San Mateo, California},
  Booktitle                = {Readings In Knowledge Representation},
  Editor                   = {Ronald J. Brachman and Hector J, Levesque},
  ISBN                     = {0-934613-01-X},
  Publisher                = {Morgan Kaufmann},
}

@Proceedings{Sowa1991a,
  Title                    = {Principles Of Semantic Networks. Explorations in the Representation of Knowledge},
  Shorttitle               = {Principles Of Semantic Networks, 1991},
  Year                     = {1991},

  Address                  = {San Mateo, California},
  Booktitle                = {Principles Of Semantic Networks. Explorations in the Representation of Knowledge},
  Editor                   = {John F. Sowa},
  ISBN                     = {1-55860-088-4},
  Publisher                = {Morgan Kaufmann},
}
\end{filecontents*}

\begin{document}
\nocite{*}

\bibliography{\jobname}
\end{document}
Bin mir übrigens nicht sicher, ob es so clever ist, überall ein "\ " hinter zu haben.

peerceval
Forum-Newbie
Forum-Newbie
Beiträge: 2
Registriert: Mo 3. Okt 2016, 12:46
Wohnort: Frankfurt

Beitrag von peerceval »

Danke für die Mühe! Es ist richtig, auch diese eine Datei kompiliert. Das Problem ist darin noch enthalten: die Artikel sind mit einem In: von der Slg abgetrennt, nicht mit einem in:

Eine Lösung dafür stammt von Markus Kohm. Man muss die folgenden Zeilen nach der JBIB-Konfigdatei einfügen (oder in sie integrieren) einfügen
%
\usepackage{xpatch}
\AfterFile{dejbbib.ldf}{%
  \xapptocmd{\bibsgerman}{%
     \def\inname{\ifjboxford in:\else\ifjbchicago in:\else in:\fi\fi}%
    \def\incollinname{\ifjboxford in:\else\ifjbchicago in:\else in:\fi\fi}%
  }{}{}%
 
Herzlichen Dank für all die Hilfe.
P.
To finish first, first you must finish!

Gast

Beitrag von Gast »

OK, möglicherweise habe ich das Problem nicht ganz durchblickt. Aber, wenn ich das Beispiel von mir oben laufen lasse, sehe ich in zwei der Beispieleinträge "in:" und nicht "In:". Wenn ich \renewcommand*{\bibbtsep}{ggggg} schreibe, bekomme ich "ggggg".

Wie dem auch sei. Der Code, der bei dir zu funktionieren scheint, kann etwas verkürzt werden. Die \defs sollten zu
\def\inname{in:}%
\def\incollinname{in:}%
äquivalent sein.

Antworten