von MoeWe » Sa 25. Apr 2020, 15:52
Eine "einfache" Möglichkeit besteht darin, mittels einer .dbx-Datei ein neues Feld shortjournal zu deklarieren und das dann in Zitaten zu nutzen, wenn es vorhanden ist. Bei den Standard-Stilen ist das recht simpel.
\documentclass[ngerman]{article}
\usepackage[T1]{fontenc}
\usepackage{babel}
\usepackage{csquotes}
\begin{filecontents*}{shortjournal.dbx}
\ProvidesFile{shortjournal.dbx}[2020/04/25 short journal for articles]
\DeclareDatamodelFields[type=field,datatype=literal]{shortjournal}
\DeclareDatamodelEntryfields[article]{shortjournal}
\end{filecontents*}
\usepackage[style=verbose, backend=biber, datamodel=shortjournal]{biblatex}
\renewbibmacro*{journal}{%
\ifboolexpr{test {\ifcitation} and not test {\iffieldundef{shortjournal}}}
{\printtext[journaltitle]{\printfield[titlecase]{shortjournal}}}
{\ifboolexpr{
test {\iffieldundef{journaltitle}}
and
test {\iffieldundef{journalsubtitle}}
}
{}
{\printtext[journaltitle]{%
\printfield[titlecase]{journaltitle}%
\setunit{\subtitlepunct}%
\printfield[titlecase]{journalsubtitle}}}}}
\begin{filecontents}{\jobname.bib}
@article{appleby,
author = {Humphrey Appleby},
title = {On the Importance of the Civil Service},
date = {1980},
shortjournal = {AöR},
journal = {Archiv des öffentlichen Rechts},
volume = {21},
pages = {407-465},
}
\end{filecontents}
\addbibresource{\jobname.bib}
\addbibresource{biblatex-examples.bib}
\begin{document}
Lorem\autocite{appleby}
ipsum\autocite{sigfridsson}
\printbibliography
\end{document}
Ob das bei Dir auch so einfach ist, kann ich in Ermangelung eines Beispiels natürlich nicht beurteilen. Bitte füge bei Rückfragen zum Code ein Minimalbeispiel an.
Im echten Leben wird die .dbx-Datei natürlich irgendwohin gespeichert, wo LaTeX sie finden kann (im gleichen Verzeichnis wie die .tex-Hauptdatei geht eigentlich immer) und nicht jedes mal mit filecontents erzeugt. Mehr Details zum Thema "neue Felder definieren" gibt es bei
https://tex.stackexchange.com/q/163303/35864
Eine "einfache" Möglichkeit besteht darin, mittels einer [tt].dbx[/tt]-Datei ein neues Feld [tt]shortjournal[/tt] zu deklarieren und das dann in Zitaten zu nutzen, wenn es vorhanden ist. Bei den Standard-Stilen ist das recht simpel.
[code]\documentclass[ngerman]{article}
\usepackage[T1]{fontenc}
\usepackage{babel}
\usepackage{csquotes}
\begin{filecontents*}{shortjournal.dbx}
\ProvidesFile{shortjournal.dbx}[2020/04/25 short journal for articles]
\DeclareDatamodelFields[type=field,datatype=literal]{shortjournal}
\DeclareDatamodelEntryfields[article]{shortjournal}
\end{filecontents*}
\usepackage[style=verbose, backend=biber, datamodel=shortjournal]{biblatex}
\renewbibmacro*{journal}{%
\ifboolexpr{test {\ifcitation} and not test {\iffieldundef{shortjournal}}}
{\printtext[journaltitle]{\printfield[titlecase]{shortjournal}}}
{\ifboolexpr{
test {\iffieldundef{journaltitle}}
and
test {\iffieldundef{journalsubtitle}}
}
{}
{\printtext[journaltitle]{%
\printfield[titlecase]{journaltitle}%
\setunit{\subtitlepunct}%
\printfield[titlecase]{journalsubtitle}}}}}
\begin{filecontents}{\jobname.bib}
@article{appleby,
author = {Humphrey Appleby},
title = {On the Importance of the Civil Service},
date = {1980},
shortjournal = {AöR},
journal = {Archiv des öffentlichen Rechts},
volume = {21},
pages = {407-465},
}
\end{filecontents}
\addbibresource{\jobname.bib}
\addbibresource{biblatex-examples.bib}
\begin{document}
Lorem\autocite{appleby}
ipsum\autocite{sigfridsson}
\printbibliography
\end{document}[/code]
Ob das bei Dir auch so einfach ist, kann ich in Ermangelung eines Beispiels natürlich nicht beurteilen. Bitte füge bei Rückfragen zum Code ein Minimalbeispiel an.
Im echten Leben wird die [tt].dbx[/tt]-Datei natürlich irgendwohin gespeichert, wo LaTeX sie finden kann (im gleichen Verzeichnis wie die [tt].tex[/tt]-Hauptdatei geht eigentlich immer) und nicht jedes mal mit [tt]filecontents[/tt] erzeugt. Mehr Details zum Thema "neue Felder definieren" gibt es bei https://tex.stackexchange.com/q/163303/35864