Kurzeinträge im Literaturverzeichnis

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: Kurzeinträge im Literaturverzeichnis

Re: Kurzeinträge im Literaturverzeichnis

von MoeWe » Mo 25. Apr 2022, 21:20

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}

Re: Kurzeinträge im Literaturverzeichnis

von marco_polo » Mo 25. Apr 2022, 20:10

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

von MoeWe » Mo 25. Apr 2022, 17:38

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

von gast. » Mo 25. Apr 2022, 11:59

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.

Kurzeinträge im Literaturverzeichnis

von marco_polo » Mo 25. Apr 2022, 11:30

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}

Nach oben