Seite 1 von 1

Kurzeinträge im Literaturverzeichnis

Verfasst: Mo 25. Apr 2022, 11:30
von marco_polo
Sehr geehrte Community,

wie kann ich die Shorteinträge wie Shorteditor oder Shortauthor auch im Literaturverzeichnis angeben, damit deutlich ist, dass sich der Shorteintrag auf diese Referenz bezieht. Im Idealfall in der Form: Shorteditor (Editor) ... bzw. Shortauthor (Author) ....

MWE:
\documentclass[a4paper,11pt,ngerman]{scrartcl}
%\listfiles
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
	@BOOK{Institut2022,
		editor = {{Institut mit einem sehr langen Namen}},
		shorteditor = {Institut},
		title = {{Titel}},
		address = {Berlin},
		year = {2022},
		}
	@BOOK{Mustermann2022,
		author = {Mustermann, Max},
		shortauthor = {MM},
		title = {Titel},
		address = {Berlin},
		year = {2022},
	}
\end{filecontents}
\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{babel,csquotes}

\usepackage[
style=verbose-trad3,
citepages=separate,
]{biblatex}
\bibliography{\jobname}

\renewcommand*{\mkbibnamelast}[1]{\textsc{#1}} 
\defbibheading{bibliography}{%
	\section*{Literaturverzeichnis}} 

%opening


\begin{document}
Ich zitiere etwas.\autocite[15]{Institut2022}	Hier zitiere ich etwas anderes.\autocite[234]{Mustermann2022}
Hier wuerde ich gerne dass \enquote{Institut 2022} zitiert wird.\autocite[15]{Institut2022} Hier mal wieder etwas mit einem Shortauthor.\autocite[234]{Mustermann2022}
Im Literaturverzeichnis sollte dann \enquote{Shorteditor (editor)} bzw. \enquote{Shortauthor (author)} angegeben werden.
	
	\printbibliography
\end{document}

Re: Kurzeinträge im Literaturverzeichnis

Verfasst: Mo 25. Apr 2022, 11:59
von gast.
Man kann beispielsweise das biblatex macro zur Ausgabe des Autors entsprechend erweitern:
\renewbibmacro*{author}{%
  \ifboolexpr{
    test \ifuseauthor
    and
    not test {\ifnameundef{author}}
  }
    {\usebibmacro{bbx:dashcheck}
       {\bibnamedash}
       {\printnames{author}%
        \ifboolexpr{test {\ifnameundef{shortauthor}}}{}{\space
        \mkbibparens{\printnames{shortauthor}}}%
        \setunit{\printdelim{authortypedelim}}%
        \usebibmacro{bbx:savehash}}%
     \usebibmacro{authorstrg}}
    {\global\undef\bbx@lasthash}}
Die Originaldefinition habe ich aus authortitle.bbx genommen und dann
        \ifboolexpr{test {\ifnameundef{shortauthor}}}{}{\space
        \mkbibparens{\printnames{shortauthor}}}%
nach der Ausgabe der Autorennamen eingefügt. Man kann an der Stelle natürlich auch zusätzlich irgendwelche Automatismen für den Fall einfügen, dass shortauthor undefiniert ist, beispielsweise dann automatische die Initialien des ersten Autors verwenden o. ä. Näheres zu entsprechenden Namensformaten etc. ist der biblatex-Anleitung zu entnehmen.

Re: Kurzeinträge im Literaturverzeichnis

Verfasst: Mo 25. Apr 2022, 17:38
von MoeWe
Wenn man mit field formats bzw. wrapper formats sowie dem punctuation buffer arbeitet, kann man sich in den meisten Fällen \ifnameundef und Co. sparen. Etwas idiomatischer wäre daher
\documentclass[a4paper,11pt,ngerman]{scrartcl}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{babel,csquotes}

\usepackage[
  style=verbose-trad3,
  citepages=separate,
]{biblatex}

\renewcommand*{\mkbibnamefamily}[1]{\textsc{#1}}

\makeatletter
\DeclareNameWrapperFormat{shortauthor}{\mkbibparens{#1}}
\renewbibmacro*{author}{%
  \ifboolexpr{
    test \ifuseauthor
    and
    not test {\ifnameundef{author}}
  }
    {\usebibmacro{bbx:dashcheck}
       {\bibnamedash}
       {\printnames{author}%
        \setunit{\addspace}%
        \printnames{shortauthor}%
        \setunit{\printdelim{authortypedelim}}%
        \usebibmacro{bbx:savehash}}%
     \usebibmacro{authorstrg}}
    {\global\undef\bbx@lasthash}}

\DeclareNameWrapperFormat{shorteditor}{\mkbibparens{#1}}
\renewbibmacro*{bbx:editor}[1]{%
  \ifboolexpr{
    test \ifuseeditor
    and
    not test {\ifnameundef{editor}}
  }
    {\usebibmacro{bbx:dashcheck}
       {\bibnamedash}
       {\printnames{editor}%
        \setunit{\addspace}%
        \printnames{shorteditor}%
        \setunit{\printdelim{editortypedelim}}%
        \usebibmacro{bbx:savehash}}%
     \usebibmacro{#1}%
     \clearname{editor}}
    {\global\undef\bbx@lasthash}}
\makeatother

\begin{filecontents}{\jobname.bib}
@book{Institut2022,
  editor      = {{Institut mit einem sehr langen Namen}},
  shorteditor = {Institut},
  title       = {Titel},
  address     = {Berlin},
  year        = {2022},
}
@book{Mustermann2022,
  author      = {Mustermann, Max},
  shortauthor = {MM},
  title       = {Titel},
  address     = {Berlin},
  year        = {2022},
}
\end{filecontents}
\addbibresource{\jobname.bib}

\begin{document}
Ich zitiere etwas.\autocite[15]{Institut2022}
Hier zitiere ich etwas anderes.\autocite[234]{Mustermann2022}
Hier wuerde ich gerne dass \enquote{Institut 2022} zitiert wird.\autocite[15]{Institut2022}
Hier mal wieder etwas mit einem Shortauthor.\autocite[234]{Mustermann2022}
Im Literaturverzeichnis sollte dann \enquote{Shorteditor (editor)}
bzw. \enquote{Shortauthor (author)} angegeben werden.

\printbibliography
\end{document}

Re: Kurzeinträge im Literaturverzeichnis

Verfasst: Mo 25. Apr 2022, 20:10
von marco_polo
Danke, das funktioniert schon mal super. Jetzt musste ich bei der Einarbeitung in mein Dokument feststellen, dass der Code mit dem folgenden Code kollidiert, der hinter dem Herausgeber in Klammern (Hrsg.) ausgeben soll. Wie bekomme ich es verknüpft, dass dahinter immer noch (Hrsg.) steht?
\IGNORE{
	\renewbibmacro*{editor+others}{%
		\ifnameundef{editor}
		{}
		{\ifnamesequal{author}{editor}
			{\bibnamedash}
			{\printnames{editor}}%
			\addspace
			\mkbibparens{\usebibmacro{editorstrg}}%
			\clearname{editor}}
		{}}
}

Re: Kurzeinträge im Literaturverzeichnis

Verfasst: Mo 25. Apr 2022, 21:20
von MoeWe
Das bekommst Du hin, indem Du auch für diese Aufgabe die passenden field formats nimmst, anstatt die Zeichensetzung direkt im Bibmakro vorzunehmen.


Im Vergleich zu meinem vorherigen Minimalbeispiel brauchen wir nur vier Zeilen mehr
\documentclass[a4paper,11pt,ngerman]{scrartcl}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{babel,csquotes}

\usepackage[
  style=verbose-trad3,
  citepages=separate,
]{biblatex}

\renewcommand*{\mkbibnamefamily}[1]{\textsc{#1}}

\DeclareFieldFormat{editortype}{\mkbibparens{#1}}
\DeclareDelimFormat{editortypedelim}{\addspace}

\DeclareFieldAlias{translatortype}{editortype}
\DeclareDelimAlias{translatortypedelim}{editortypedelim}

\makeatletter
\DeclareNameWrapperFormat{shortauthor}{\mkbibparens{#1}}
\renewbibmacro*{author}{%
  \ifboolexpr{
    test \ifuseauthor
    and
    not test {\ifnameundef{author}}
  }
    {\usebibmacro{bbx:dashcheck}
       {\bibnamedash}
       {\printnames{author}%
        \setunit{\addspace}%
        \printnames{shortauthor}%
        \setunit{\printdelim{authortypedelim}}%
        \usebibmacro{bbx:savehash}}%
     \usebibmacro{authorstrg}}
    {\global\undef\bbx@lasthash}}

\DeclareNameWrapperFormat{shorteditor}{\mkbibparens{#1}}
\renewbibmacro*{bbx:editor}[1]{%
  \ifboolexpr{
    test \ifuseeditor
    and
    not test {\ifnameundef{editor}}
  }
    {\usebibmacro{bbx:dashcheck}
       {\bibnamedash}
       {\printnames{editor}%
        \setunit{\addspace}%
        \printnames{shorteditor}%
        \setunit{\printdelim{editortypedelim}}%
        \usebibmacro{bbx:savehash}}%
     \usebibmacro{#1}%
     \clearname{editor}}
    {\global\undef\bbx@lasthash}}
\makeatother

\begin{filecontents}{\jobname.bib}
@book{Institut2022,
  editor      = {{Institut mit einem sehr langen Namen}},
  shorteditor = {Institut},
  title       = {Titel},
  address     = {Berlin},
  year        = {2022},
}
@book{Mustermann2022,
  author      = {Mustermann, Max},
  shortauthor = {MM},
  title       = {Titel},
  address     = {Berlin},
  year        = {2022},
}
\end{filecontents}
\addbibresource{\jobname.bib}

\begin{document}
Ich zitiere etwas.\autocite[15]{Institut2022}
Hier zitiere ich etwas anderes.\autocite[234]{Mustermann2022}
Hier wuerde ich gerne dass \enquote{Institut 2022} zitiert wird.\autocite[15]{Institut2022}
Hier mal wieder etwas mit einem Shortauthor.\autocite[234]{Mustermann2022}
Im Literaturverzeichnis sollte dann \enquote{Shorteditor (editor)}
bzw. \enquote{Shortauthor (author)} angegeben werden.

\printbibliography
\end{document}