Anpassungen beim Driver Patent

Antwort erstellen


Diese Frage dient dazu, das automatisierte Versenden von Formularen durch Spam-Bots zu verhindern.
Smilies
:D :) :( :o :shock: :? 8) :lol: :-x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen:

BBCode ist eingeschaltet
[img] ist eingeschaltet
[flash] ist ausgeschaltet
[url] ist eingeschaltet
Smilies sind eingeschaltet

Die letzten Beiträge des Themas

Ich habe die Datenschutzerklärung gelesen und bin damit einverstanden.

   

Wenn du eine Datei oder mehrere Dateien anhängen möchtest, gib die Details unten ein.

Ansicht erweitern Die letzten Beiträge des Themas: Anpassungen beim Driver Patent

Re: Anpassungen beim Driver Patent

von ChemSim » So 27. Aug 2023, 09:30

Hallo MoeWe,

vielen Dank für Deine Antwort und die elegantere Lösung. Ich habe es direkt in meinem Dokument übernommen. :D

Viele Grüße
ChemSim

Re: Anpassungen beim Driver Patent

von MoeWe » So 27. Aug 2023, 07:33

Schöner ist es, wenn \mkbibemph auch in \DeclareFieldFormat steht. Dann muss es nämlich nicht auf \usebibmacro{title} angewendet werden. Die direkte Nutzung von \mkbibemph und ähnlicher Befehle mit Argumenten wie \usebibmacro... hat nämlich den Nachteil, dass sie mit biblatexs Zeichensetzungsbefehlen nicht so gut zusammenarbeitet und - viel wichtiger - nicht sehen kann, ob vielleicht gar nichts ausgegeben wird. Das ist bei \mkbibemph und dem title jetzt weniger sichtbar und weniger wahrscheinlich. Bei einem Befehl wie \mkbibquote oder \mkbibparens und einem Feld, das auch mal fehlen kann sehr relevant: Dann steht da nämlich im schlimmsten Fall leere Anführungszeichen oder dergleichen.
\documentclass[parskip=half,12pt,listof=totoc]{scrbook}
\usepackage[ngerman,english]{babel}
\usepackage{csquotes}
\usepackage[
  style=chem-angew,
  backend=biber,
  chaptertitle=true,
  url=false, doi=false,
  autocite=superscript,
]{biblatex}

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

\DeclareFieldFormat[patent]{title}{\mkbibemph{#1}}

\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}

\begin{document}
Lorem.\autocite{Petrosky1988}

\printbibliography
\end{document}

Re: Anpassungen beim Driver Patent

von ChemSim » Sa 26. Aug 2023, 20:50

Ich habe gerade selber die Lösung gefunden:

Für Leute, die das gleiche Ergebnis anstreben, hier nochmal der gesamte Code:
\documentclass[parskip=half,12pt,listof=totoc]{scrbook}
\usepackage[ngerman,english]{babel}

% Literaturverzeichnis
\usepackage[autocite=superscript, chaptertitle=true, url=false, doi=false, backend=biber, style=chem-angew]{biblatex}
\usepackage{csquotes}

% Anpassungen am driver @patent

\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
  {\mkbibemph{\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}%
}

\DeclareFieldFormat[patent]{title}{#1}

\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}

\begin{document}
Lorem.\autocite{Petrosky1988}

\printbibliography

\end{document}
Durch Anpassen zu
 {\mkbibemph{\usebibmacro{title}}}%
und hinzufügen von
\DeclareFieldFormat[patent]{title}{#1}
habe ich das gewünschte Ergebnis erhalten.

Viele Grüße
ChemSim

Anpassungen beim Driver Patent

von ChemSim » Sa 26. Aug 2023, 20:20

Hallo zusammen,

ich habe für mein Dokument den driver für @patent umgeschrieben und erhalte dabei das folgende Ergebnis:
\documentclass[parskip=half,12pt,listof=totoc]{scrbook}
\usepackage[ngerman,english]{babel}

% Literaturverzeichnis
\usepackage[autocite=superscript, chaptertitle=true, url=false, doi=false, backend=biber, style=chem-angew]{biblatex}
\usepackage{csquotes}

% Anpassungen am driver @patent

\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}

\begin{document}
Lorem.\autocite{Petrosky1988}

\printbibliography

\end{document}
Nun möchte ich ändern, dass der title nicht in Anführungszeichen steht, sondern kursiv ausgegeben wird. Wie kann ich das lösen?

Viele Grüße
ChemSim

Nach oben