Kurzeinträge im Literaturverzeichnis Thema ist als GELÖST markiert

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


marco_polo
Forum-Anfänger
Forum-Anfänger
Beiträge: 29
Registriert: So 11. Jul 2021, 18:48

Kurzeinträge im Literaturverzeichnis

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

gast.

Re: Kurzeinträge im Literaturverzeichnis

Beitrag 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.

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

Re: Kurzeinträge im Literaturverzeichnis

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

marco_polo
Forum-Anfänger
Forum-Anfänger
Beiträge: 29
Registriert: So 11. Jul 2021, 18:48

Re: Kurzeinträge im Literaturverzeichnis

Beitrag 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}}
		{}}
}

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

Re: Kurzeinträge im Literaturverzeichnis

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

joe360
Forum-Newbie
Forum-Newbie
Beiträge: 1
Registriert: Mi 12. Feb 2025, 00:57

Re: Kurzeinträge im Literaturverzeichnis

Beitrag von joe360 »

Hi Leute,

hatte jetzt ähnliches Problem, erstmal Danke an MoeWe.
Ich schreibe in der article class, Latex in overleafe.
Und nutze \usepackage[style=apa,backend=biber,sortcites,url=true,uniquename=false]{biblatex}.

Damit im Text keine eckige Klammer ist und im Lit.Verzeichnis die Klammer beim Shortauthor da ist, habe ich den Code (trial/error) angepasst. (Dash und Formatierung ebenfalls entfernt).
Code:
%% Code1 für LitVerzeichnis
\makeatletter
\DeclareNameWrapperFormat{shortauthor}{%
\ifbibliography % Prüft ob das Literaturverzeichnis kompiliert wird -->
{\mkbibparens{#1}} % --> Falls ja, setze runde Klammern um den shortauthor -->
{#1} % --> Falls nicht (d.h. im Text), setze den shortauthor im Text ohne Klammer, da sonst %%eine Eckige Klammer entsteht, wegen doppelklammer: 1(XY, 2020) / 2((XY),2020) --> %%([XY],2020) wir wollen im Text Nr. 1
}

\renewbibmacro*{author}{%
\ifboolexpr{
test \ifuseauthor
and
not test {\ifnameundef{author}}
}
{\usebibmacro{bbx:dashcheck}
{\printnames{author}%
\setunit{\addspace}%
\printnames{shortauthor}%
\setunit{\printdelim{authortypedelim}}%
\usebibmacro{bbx:savehash}}%
\usebibmacro{authorstrg}}
{\global\undef\bbx@lasthash}}
\makeatother
%% Code2 für in Text
\makeatletter
\def\cbx@apa@ifnamesaved{\@firstoftwo}
\makeatother

Gigi99
Forum-Newbie
Forum-Newbie
Beiträge: 1
Registriert: Di 18. Feb 2025, 00:12

Re: Kurzeinträge im Literaturverzeichnis

Beitrag von Gigi99 »

Klingt nach einer guten Anpassung, um das Zitierformat für APA anzupassen. Es ist immer cool, wenn man das LaTeX so hinbekommt, dass es genau den eigenen Anforderungen entspricht. Besonders die Handhabung von Klammern im Text und Literaturverzeichnis scheint hier gut gelöst zu sein. Wenn es funktioniert, dann hast du wohl die richtige Lösung gefunden

Antworten