Individuelle Sortierung der Einträge in article Thema ist als GELÖST markiert

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


ChemSim
Forum-Fortgeschrittener
Forum-Fortgeschrittener
Beiträge: 66
Registriert: Fr 14. Feb 2020, 14:13

Individuelle Sortierung der Einträge in article

Beitrag von ChemSim »

Hallo zusammen,

ich bin gerade dabei, den numeric-comp style von biblatex nach meinen Bedürfnissen anzupassen. Dies gelingt auch soweit ganz gut. Beim Typ article habe ich mit
\DeclareFieldFormat[article]{pages}{#1}
bereits den Zusatz "S." bei der Ausgabe der Seitenzahlen entfernt und mit
\renewbibmacro{in:}{%
  \ifentrytype{article}{}{\printtext{\bibstring{in}\intitlepunct}}}
auch den Zusatz "In:" vor dem Journal. Diese Änderungen klappen auch wunderbar.
\begin{filecontents}{literatur.bib}
@Article{Rudd1968,
  author  = {Rudd, Dale F.},
  journal = {AlChE J.},
  title   = {The synthesis of system designs: I. Elementary decomposition theory},
  year    = {1968},
  pages   = {343-349},
  volume  = {14},
  langid  = {english},
}

\end{filecontents}

\documentclass[parskip=half,12pt,listof=totoc]{scrartcl}
\usepackage[left=3cm,right=3cm,top=2.5cm,bottom=2cm]{geometry}
\usepackage[ngerman]{babel}

% === Literaturverzeichnis === %
\usepackage{csquotes}
\usepackage[hyphens]{url}
\usepackage[hidelinks]{hyperref}
\urlstyle{same}
\usepackage[backend=biber, citestyle=numeric-comp, giveninits=true, autolang=other]{biblatex}
\addbibresource{literatur.bib}

% kein "S." bei Verwendung von article
\DeclareFieldFormat[article]{pages}{#1}

% kein "In:" bei Verwendung von article
\renewbibmacro{in:}{%
  \ifentrytype{article}{}{\printtext{\bibstring{in}\intitlepunct}}}
  
\begin{document}
Lorem.\cite{Rudd1968}

\printbibliography

\end{document}
Nun möchte ich die Ausgabe weiter anpassen, sodass ich am Ende
\documentclass[parskip=half,12pt,listof=totoc]{scrartcl}
\begin{document}
D. F. Rudd, "The synthesis of system designs: I. Elementary decomposition theory", \textit{AlChE J.} \textbf{1968}, \textit{14}, 343--349.
\end{document}
erhalte. Ich möchte also die Klammern um die Jahreszahl 1968 entfernen und diese fett schreiben, das Volume 14 hinter die Jahreszahl und kursiv schreiben.

Gibt es da eine Möglichkeit?

Gruß
ChemSim

MoeWe
Forum-Meister
Forum-Meister
Beiträge: 801
Registriert: Fr 30. Aug 2019, 15:35
Kontaktdaten:

Re: Individuelle Sortierung der Einträge in article

Beitrag von MoeWe »

Ist die gewünschte Ausgabe nicht ziemlich genau das, was Dir chem-angew aus Deinem anderen Diskussionsfaden (viewtopic.php?p=120700#p120700) geben würde? (Ich übersehe hier ganz sicher etwas. Aber selbst wenn es nicht ganz dasselbe ist, scheint chem-angew näher an dem zu sein, was Du möchtest, als das, was Du zur Zeit hast.) Gibt es einen Grund, warum Du mit numeric-comp statt chem-angew arbeiten möchtest?

Die gezeigte Redefinition von in: basiert übrigens auf einer veralteten Version des Makros. Heutzutage ist es wie folgt definiert (biblatex.def, Z. 2928-2930)
\newbibmacro*{in:}{%
  \bibstring{in}%
  \printunit{\intitlepunct}}
Dann wäre Deine Anpassung
\renewbibmacro*{in:}{%
  \ifentrytype{article}
    {}
    {\bibstring{in}%
     \printunit{\intitlepunct}}}
Mit biblatex-ext kann man sich das übrigens direkt sparen. Da nimmt man dann style=ext-numeric-comp statt style=numeric-comp und nimmt die Option articlein=false dazu.

ChemSim
Forum-Fortgeschrittener
Forum-Fortgeschrittener
Beiträge: 66
Registriert: Fr 14. Feb 2020, 14:13

Re: Individuelle Sortierung der Einträge in article

Beitrag von ChemSim »

Hallo MoeWe,

das hast Du richtig erkannt, die gewünschte Ausgabe habe ich bereits mit dem chem-angew Stil erreicht, jedoch muss ich für ein Buchprojekt die Einträge article, book, patent und inreference anpassen. Wenn ich chem-angew verwende, passt das zwar für die article und book, jedoch nicht für die anderen. Ich dachte daher, dass es sinnvoller wäre, einen eher allgemeinen Stil wie numeric-comp zu nutzen, und diesen dann nach meinen Wünschen für die jeweiligen Einträge umzubasteln. Oder macht es mehr Sinn, basierend auf chem-angew die Anpassungen für patent und inreference vorzunehmen?

Deine weiteren Anmerkungen habe ich nun so umgesetzt:
\begin{filecontents}{literatur.bib}
@Article{Rudd1968,
  author  = {Rudd, Dale F.},
  journal = {AlChE J.},
  title   = {The synthesis of system designs: I. Elementary decomposition theory},
  year    = {1968},
  pages   = {343-349},
  volume  = {14},
  langid  = {english},
}

\end{filecontents}

\documentclass[parskip=half,12pt,listof=totoc]{scrartcl}
\usepackage[left=3cm,right=3cm,top=2.5cm,bottom=2cm]{geometry}
\usepackage[ngerman]{babel}

% === Literaturverzeichnis === %
\usepackage{csquotes}
\usepackage[hyphens]{url}
\usepackage[hidelinks]{hyperref}
\urlstyle{same}
\usepackage[backend=biber, style=ext-numeric-comp, giveninits=true, autolang=other, articlein=false]{biblatex}
\addbibresource{literatur.bib}

% kein "S." bei Verwendung von article
\DeclareFieldFormat[article]{pages}{#1}

\begin{document}
Lorem.\cite{Rudd1968}

\printbibliography

\end{document}

MoeWe
Forum-Meister
Forum-Meister
Beiträge: 801
Registriert: Fr 30. Aug 2019, 15:35
Kontaktdaten:

Re: Individuelle Sortierung der Einträge in article

Beitrag von MoeWe »

Grundsätzlich empfehle ich in der Tat, eher einen der Standardstile (oder biblatex-ext-Stile) als Grundlage für einen eigenen Stil zu nehmen, als einen der vielen auf CTAN oder anderswo erhältlichen und auf eine bestimmte Aufgabe zugeschnittenen Stile. Letztere sind nämlich nicht immer mit einem Aspekt auf Anpassbarkeit entwickelt worden.

Die biblatex-chem-Stile sind aber im Vergleich zu anderen Stilen nicht sehr komplex und eignen sich daher zum größten Teil auch recht gut als Basis für einen eigenen Stil.

Vielleicht inventarisierst Du mal, welche Änderungen mit chem-angew und welche mit ext-numeric-comp notwendig wären. Dann kannst Du vielleicht besser abschätzen, welchen der Stile Du als Basis nehmen möchtest. (Wenn Du die einzelnen Anpassungen gut beschreiben kannst und etwas Glück beim Googeln hast, findest Du vielleicht auch schon einige Ansätze.)

ChemSim
Forum-Fortgeschrittener
Forum-Fortgeschrittener
Beiträge: 66
Registriert: Fr 14. Feb 2020, 14:13

Re: Individuelle Sortierung der Einträge in article

Beitrag von ChemSim »

MoeWe hat geschrieben:
Mi 28. Dez 2022, 15:22
Die biblatex-chem-Stile sind aber im Vergleich zu anderen Stilen nicht sehr komplex und eignen sich daher zum größten Teil auch recht gut als Basis für einen eigenen Stil.
Ich habe hier mal ein Minimalbeispiel gebaut, welches meine Wünsche besser darstellen soll. Bei der Verwendung von chem-angew sind die Einträge article und book bereits so, wie ich es mir vorstelle. Da ich in der Arbeit jedoch noch auch inreference und patent verwende, müssen diese Einträge noch angepasst werden.

Für den Eintrag patent würde es für den Anfang schonmal reichen, den Titel und den Assignee anzuzeigen (das habe ich auch durch Googeln nicht herausgefunden, wie das geht). Für inreference fehlt ebenfalls der Titel.
\begin{filecontents}{literatur.bib}
@Article{Rudd1968,
  author  = {Rudd, Dale F.},
  journal = {AlChE J.},
  title   = {The synthesis of system designs: I. Elementary decomposition theory},
  year    = {1968},
  pages   = {343-349},
  volume  = {14},
}

@Book{Arpe2007,
  author    = {Arpe, Hans-Jürgen},
  publisher = {Wiley-VCH},
  title     = {Industrielle Organische Chemie -- Bedeutende Vor- und Zwischenprodukte},
  year      = {2007},
  address   = {Weinheim},
  edition   = {6},
}

@Patent{Petrosky1988,
  number   = {US 4922043A},
  year     = {1988},
  assignee = {Vulcan Material Company},
  author   = {J. T. Petrosky},
  title    = {Manufacture of methyl chloride by hydrochlorinating methanol, using a split methanol feed},
}

@InReference{Ohligschlaeger2019,
  author    = {André Ohligschläger and Katharina Menzel and Ten Kate, Antoon and Ruiz Martinez, Javier and Christoph Frömbgen and Josje Arts and Archie McCulloch and Manfred Rossberg and Wilhelm Lendle and Gerhard Pfleiderer and Adolf Tögel and Theodore R. Torkelson and Klaus K. Beutel},
  booktitle = {Ullmann's Encyclopedia of Industrial Chemistry},
  doi       = {10.1002/14356007.a06_233.pub4},
  title     = {Chloromethanes},
  year      = {2019},
}
\end{filecontents}

\documentclass[parskip=half,12pt,listof=totoc]{scrartcl}
\usepackage[left=3cm,right=3cm,top=2.5cm,bottom=2cm]{geometry}
\usepackage[ngerman]{babel}

% Literaturverzeichnis
\usepackage{csquotes}
\usepackage[backend=biber, style=chem-angew, articletitle=true]{biblatex}
\addbibresource{literatur.bib}

\begin{document}
Lorem.\cite{Rudd1968,Arpe2007,Petrosky1988,Ohligschlaeger2019}

\printbibliography

\end{document}
Hast du eine Idee, wie ich das anpassen kann?

Viele Grüße
ChemSim

ChemSim
Forum-Fortgeschrittener
Forum-Fortgeschrittener
Beiträge: 66
Registriert: Fr 14. Feb 2020, 14:13

Re: Individuelle Sortierung der Einträge in article

Beitrag von ChemSim »

EDIT:

Durch weiteres Googeln und rumprobieren habe ich zumindest für article eine gute Lösung gefunden.
\begin{filecontents}{literatur.bib}
@Article{Rudd1968,
  author  = {Rudd, Dale F.},
  journal = {AlChE J.},
  title   = {The synthesis of system designs: I. Elementary decomposition theory},
  year    = {1968},
  pages   = {343-349},
  volume  = {14},
}

@Book{Arpe2007,
  author    = {Arpe, Hans-Jürgen},
  publisher = {Wiley-VCH},
  title     = {Industrielle Organische Chemie -- Bedeutende Vor- und Zwischenprodukte},
  year      = {2007},
  address   = {Weinheim},
  edition   = {6},
}

@Patent{Petrosky1988,
  number   = {US 4922043A},
  year     = {1988},
  assignee = {Vulcan Material Company},
  author   = {J. T. Petrosky},
  title    = {Manufacture of methyl chloride by hydrochlorinating methanol, using a split methanol feed},
}

@InCollection{Ohligschlaeger2019,
  author    = {André Ohligschläger and Katharina Menzel and Ten Kate, Antoon and Ruiz Martinez, Javier and Christoph Frömbgen and Josje Arts and Archie McCulloch and Manfred Rossberg and Wilhelm Lendle and Gerhard Pfleiderer and Adolf Tögel and Theodore R. Torkelson and Klaus K. Beutel},
  booktitle = {Ullmann's Encyclopedia of Industrial Chemistry},
  publisher = {Wiley-VCH},
  title     = {Chloromethanes},
  year      = {2019},
  doi       = {10.1002/14356007.a06_233.pub4},
}
\end{filecontents}

\documentclass[parskip=half,12pt,listof=totoc]{scrartcl}
\usepackage[left=3cm,right=3cm,top=2.5cm,bottom=2cm]{geometry}
\usepackage[ngerman]{babel}

% Times New Roman Schrift (auch Mathe-Modus)
\usepackage{mathptmx}
\addtokomafont{disposition}{\rmfamily}

% Literaturverzeichnis
\usepackage{csquotes}
\usepackage[backend=biber, style=chem-angew, articletitle=true, chaptertitle=true, doi=true]{biblatex}
\addbibresource{literatur.bib}

\DeclareFieldFormat
  [inbook,inreference,inproceedings,patent,thesis,unpublished]
  {title}{#1\isdot}

\renewcommand*{\intitlepunct}{\addcolon\space}

\renewbibmacro*{in:}{%
  \setunit{\addcomma\space\bibsentence}%
  \bibstring{in}%
  \printunit{\intitlepunct}}
     
\begin{document}
Lorem.\cite{Rudd1968,Arpe2007,Petrosky1988,Ohligschlaeger2019}

\printbibliography

\end{document}

Die entsprechenden Anpassungen für patent fehlen mir leider noch ...

Viele Grüße
ChemSim

MoeWe
Forum-Meister
Forum-Meister
Beiträge: 801
Registriert: Fr 30. Aug 2019, 15:35
Kontaktdaten:

Re: Individuelle Sortierung der Einträge in article

Beitrag von MoeWe »

Ein Feld assignee kennt das Standard-biblatex-Datamodel nicht. Aber es gibt holder (das ist ein Namensfeld, also müssen Firmennamen mit Leerzeichen mit einem zusätzlichen paar geschweifter Klammern geschützt werden).

Wie und wo soll der Titel von @patent den gezeigt werden? Wie soll also Dein Beispieleintrag am Ende aussehen?

ChemSim
Forum-Fortgeschrittener
Forum-Fortgeschrittener
Beiträge: 66
Registriert: Fr 14. Feb 2020, 14:13

Re: Individuelle Sortierung der Einträge in article

Beitrag von ChemSim »

MoeWe hat geschrieben:
Do 29. Dez 2022, 09:28
Ein Feld assignee kennt das Standard-biblatex-Datamodel nicht. Aber es gibt holder (das ist ein Namensfeld, also müssen Firmennamen mit Leerzeichen mit einem zusätzlichen paar geschweifter Klammern geschützt werden).
Ah okay, ich benutze als Literaturverwaltungsprogramm standardmäßig JabRef und habe vergessen, auf biblatex umzustellen. Jetzt wird mir die Option assignee gar nicht mehr angezeigt, dafür holder. Hier also ein Minimalbeispiel nur mit @Patent:
\begin{filecontents}{literatur.bib}
@Patent{Petrosky1988,
  author = {J. T. Petrosky},
  date   = {1988},
  number = {US 4922043A},
  title  = {Manufacture of methyl chloride by hydrochlorinating methanol, using a split methanol feed},
  holder = {Vulcan Materials Company},
}

\end{filecontents}

\documentclass[parskip=half,12pt,listof=totoc]{scrartcl}
\usepackage[left=3cm,right=3cm,top=2.5cm,bottom=2cm]{geometry}
\usepackage[ngerman]{babel}

% Times New Roman Schrift (auch Mathe-Modus)
\usepackage{mathptmx}
\addtokomafont{disposition}{\rmfamily}

% Literaturverzeichnis
\usepackage{csquotes}
\usepackage[backend=biber, style=chem-angew, articletitle=true, chaptertitle=true, doi=true]{biblatex}
\addbibresource{literatur.bib}
    
\begin{document}
Lorem.\cite{Petrosky1988}

\printbibliography

\end{document}
MoeWe hat geschrieben:
Do 29. Dez 2022, 09:28
Wie und wo soll der Titel von @patent den gezeigt werden? Wie soll also Dein Beispieleintrag am Ende aussehen?
Am liebsten hätte ich es so:
\documentclass[parskip=half,12pt,listof=totoc]{scrartcl}
\usepackage[left=3cm,right=3cm,top=2.5cm,bottom=2cm]{geometry}
\usepackage[ngerman]{babel}

\begin{document}
Vulcan Materials Company, \textit{Manufacture of methyl chloride by hydrochlorinating methanol, using a split methanol feed}, US 4922043A, \textbf{1988} (J. T. Petrosky).
\end{document}

Viele Grüße
ChemSim

MoeWe
Forum-Meister
Forum-Meister
Beiträge: 801
Registriert: Fr 30. Aug 2019, 15:35
Kontaktdaten:

Re: Individuelle Sortierung der Einträge in article

Beitrag von MoeWe »

Für diese Änderungen müssen wir am driver für @patent etwas schrauben. Die Version von chem-angew findet sich in chem-angew.bbx, v1.1y, Z. 636-669. Zum Vergleich und zur Inspiration finden wir den entsprechenden driver der biblatex-Standard-Stile in standard.bbx (v3.18b, Z. 502-538).

Da chem-angew ein Stil ist, der mit sorting=none, nach Zitatreihenfolge sortiert, brauchen wir nicht über die Implikationen des Austausches von author und holder für die Sortierung nachzudenken.
\documentclass[parskip=half,12pt,listof=totoc]{scrartcl}
\usepackage[ngerman]{babel}

\usepackage{csquotes}
\usepackage[backend=biber, style=chem-angew, articletitle=true, chaptertitle=true, doi=true]{biblatex}

\newbibmacro*{holder}{%
  \printnames{holder}}

\DeclareNameWrapperFormat[patent]{author}{\mkbibparens{#1}}
\newbibmacro*{patentauthor}{%
  \setunit{\addspace}%
  \printnames{author}}

\DeclareBibliographyDriver{patent}{%
  \usebibmacro{bibindex}%
  \usebibmacro{begentry}%
  \usebibmacro{holder}%
  \setunit{\labelnamepunct}\newblock
  \usebibmacro{title}%
  \newunit\newblock
  \printfield{type}%
  \newunit
  \printfield{number}%
  \iflistundef{location}
    {}
    {\setunit*{\addspace}%
     \printtext[parens]{%
       \printlist[][-\value{listtotal}]{location}}}%
  \newunit\newblock
  \printfield{note}%
  \newunit\newblock
  \usebibmacro{date}%
  \newunit\newblock
  \usebibmacro{patentauthor}%
  \newunit\newblock
  \usebibmacro{doi+eprint+url}%
  \newunit\newblock
  \usebibmacro{addendum+pubstate}%
  \setunit{\bibpagerefpunct}\newblock
  \usebibmacro{pageref}%
  \newunit\newblock
  \iftoggle{bbx:related}
    {\usebibmacro{related:init}%
     \usebibmacro{related}}
    {}%
  \usebibmacro{finentry}%
}

\begin{filecontents}{\jobname.bib}
@Patent{Petrosky1988,
  author = {J. T. Petrosky},
  date   = {1988},
  number = {US 4922043A},
  title  = {Manufacture of methyl chloride by hydrochlorinating methanol, using a split methanol feed},
  holder = {{Vulcan Materials Company}},
}
\end{filecontents}
\addbibresource{\jobname.bib}
\addbibresource{biblatex-examples.bib}

\begin{document}
Lorem.\autocite{Petrosky1988}
ipsum\autocite{sigfridsson}
dolor\autocite{worman}
sit\autocite{geer}

\printbibliography
\end{document}
Zuletzt geändert von MoeWe am So 1. Jan 2023, 16:19, insgesamt 1-mal geändert.

ChemSim
Forum-Fortgeschrittener
Forum-Fortgeschrittener
Beiträge: 66
Registriert: Fr 14. Feb 2020, 14:13

Re: Individuelle Sortierung der Einträge in article

Beitrag von ChemSim »

Hallo MoeWe,

sorry für die verspätete Antwort. Ich möchte mich recht herzlich für Deine Hilfe bedanken. Nun sieht mein Literaturverzeichnis so aus, wie ich es mir vorgestellt habe.

Ich wünsche ein gutes neues Jahr 2023

Viele Grüße
ChemSim

Antworten