Autoren in Großbuchstaben

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


kannstmasehn
Forum-Century
Forum-Century
Beiträge: 165
Registriert: Mo 5. Mai 2014, 16:55

Autoren in Großbuchstaben

Beitrag von kannstmasehn »

Moin,

habe mal biber bei mir aktualisiert bzw. es auf einem neuen Rechner installiert und nun funktioniert mein alter Code nicht mehr. Ich möchte lediglich den Autorennamen in Großbuchstaben haben. Das hat bisher mit dem u.g. Code funktioniert. Hat sich da etwas geändert bei biber? Die Reihenfolge und Sortierung etc. passt. Wie bekomme ich das mit den Großbuchstaben hin? Danke!
\begin{filecontents}{\jobname.bib}
@BOOK{author1998,
  title = {titel des buches},
  year = {1998},
  author = {Wurst, Hans}
}

@BOOK{author2000,
  title = {titel des Werkes},
  year = {2000},
  author = {Bärbel, Klaus and Hans, Wurst and Fritz, Walt and Hund, Katze}
}

@BOOK{author2001,
  title = {titel des Werkes},
  year = {2000},
  author = {ABärbel, Klaus and Hans, Wurst and Fritz, Walt and Hund, Katze}
}
\end{filecontents}

\documentclass[a4paper]{scrartcl}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}

\usepackage[backend=biber,citestyle=numeric-comp,bibstyle=numeric-comp, sorting=none, bibwarn=true, bibencoding=utf8]{biblatex}
\usepackage[babel,german=quotes]{csquotes}
\DeclareNameFormat{author}{%
   \usebibmacro{name:last-first}{#1}{#3}{#5}{#7}%
   \usebibmacro{name:andothers}}
\addbibresource{\jobname}
\DefineBibliographyStrings{ngerman}{
   andothers = {{et\,al\adddot}},            
}  
\renewcommand*{\mkbibnamelast}[1]{\textsc{#1}}

\begin{document}

\textcite{author2001}
\cite{author1998} \\
\textcite{author2000} \\

\printbibliography
\end{document}

Viele Grüße

Benutzeravatar
Johannes_B
Moderator
Moderator
Beiträge: 5079
Registriert: Do 1. Nov 2012, 14:55
Kontaktdaten:

Beitrag von Johannes_B »

TeXwelt - Fragen und Antworten Schaut vorbei und stellt Fragen.
LaTeX-Vorlagen?

Der Weg zum Ziel: Ruhe bewahren und durchatmen, Beiträge und unterstützende Links aufmerksam lesen, Lösungsansätze verstehen und ggf. nachfragen.

kannstmasehn
Forum-Century
Forum-Century
Beiträge: 165
Registriert: Mo 5. Mai 2014, 16:55

Beitrag von kannstmasehn »

Gut, danke. Das beantwortet meine erste Frage. Die zweite ist dann die Durchführung.
\renewcommand*{\mkbibnamelast}[1]{\textsc{#1}} 
Dieser ursprüngliche Befehl muss ja nun angepasst werden. Aber ich steige da nicht so durch. Was muss ich ändern bzw. wie ist der Befehl, damit Vor- und Nachname in Großbuchstaben sowohl im Text, als auch in der Bibliographie erscheinen?

Danke sehr.

Benutzeravatar
Johannes_B
Moderator
Moderator
Beiträge: 5079
Registriert: Do 1. Nov 2012, 14:55
Kontaktdaten:

Beitrag von Johannes_B »

\begin{filecontents}{\jobname.bib}
	@BOOK{author1998,
		title = {titel des buches},
		year = {1998},
		author = {Wurst, Hans}
	}

	@BOOK{author2000,
		title = {titel des Werkes},
		year = {2000},
		author = {Bärbel, Klaus and Hans, Wurst and Fritz, Walt and Hund, Katze}
	}

	@BOOK{author2001,
		title = {titel des Werkes},
		year = {2000},
		author = {ABärbel, Klaus and Hans, Wurst and Fritz, Walt and Hund, Katze}
	}
\end{filecontents}

\documentclass[a4paper]{scrartcl}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}

\usepackage[backend=biber,citestyle=numeric-comp,bibstyle=numeric-comp, sorting=none, bibwarn=true, bibencoding=utf8]{biblatex}
\usepackage[babel,german=quotes]{csquotes}
\DeclareNameFormat{author}{%
	\nameparts{#1}
	\usebibmacro{name:family-given}{\namepartfamily}{\namepartgiven}{\namepartprefix}{\namepartsuffix}%
	\usebibmacro{name:andothers}}
	\addbibresource{\jobname}
	\DefineBibliographyStrings{ngerman}{
		andothers = {{et\,al\adddot}},            
	}  
	\renewcommand*{\mkbibnamefamily}[1]{\textsc{#1}}

	\begin{document}

	\textcite{author2001}
	\cite{author1998} \\
	\textcite{author2000} \\

	\printbibliography
	\end{document}

Falls das nicht stimmt, wird sich unser fliegender Gast sicher melden und den Fehler korrigieren.
TeXwelt - Fragen und Antworten Schaut vorbei und stellt Fragen.
LaTeX-Vorlagen?

Der Weg zum Ziel: Ruhe bewahren und durchatmen, Beiträge und unterstützende Links aufmerksam lesen, Lösungsansätze verstehen und ggf. nachfragen.

kannstmasehn
Forum-Century
Forum-Century
Beiträge: 165
Registriert: Mo 5. Mai 2014, 16:55

Beitrag von kannstmasehn »

Vielen Dank schonmal. Nah dran. Es werden jedoch lediglich die Nachnamen mit Großbuchstaben dargestellt und bei einem alphabetischen Zitierstil sind die Buchstaben der Quellenangaben auch nicht groß. Zusätzlich wäre eine Abkürzung des Vornamens zu "Wurst, H." sehr gut. Wie kann man das umsetzen, ohne großartig in der .bib-Datei die Vornamen zu kürzen?

Danke sehr.

Benutzeravatar
Johannes_B
Moderator
Moderator
Beiträge: 5079
Registriert: Do 1. Nov 2012, 14:55
Kontaktdaten:

Beitrag von Johannes_B »

Im Folgenden der Vergleich von altem biblatex (noch verfügbar im Online Editor) und aktuellem biblatex.

Overleaf:

Bild

biblatex 3.3;
Bild

Das ist exakt, was du vorher hattest und nicht nah dran.
Dateianhänge
kannstmahsehnOverleaf.png
kannstmahsehnOverleaf.png (75.85 KiB) 3300 mal betrachtet
kannstmasehn33.png
kannstmasehn33.png (33.89 KiB) 3297 mal betrachtet
TeXwelt - Fragen und Antworten Schaut vorbei und stellt Fragen.
LaTeX-Vorlagen?

Der Weg zum Ziel: Ruhe bewahren und durchatmen, Beiträge und unterstützende Links aufmerksam lesen, Lösungsansätze verstehen und ggf. nachfragen.

kannstmasehn
Forum-Century
Forum-Century
Beiträge: 165
Registriert: Mo 5. Mai 2014, 16:55

Beitrag von kannstmasehn »

Das ist richtig. Nur manchmal ändert sich etwas, so dass auch Quellenangaben verändert werden müssen ;)

Also:
1) Was ist einfacher? In der .bib alles händisch ändern oder gibt es eine einfache Möglichkeit die Vornamen abzukürzen? Wenn zweites, wie?

2) Großbuchstaben hätte ich auch gerne in den eckigen Klammern.

\begin{filecontents}{\jobname.bib}
   @BOOK{author1998,
      title = {titel des buches},
      year = {1998},
      author = {Wurst, Hans}
   }

   @BOOK{author2000,
      title = {titel des Werkes},
      year = {2000},
      author = {Bärbel, Klaus and Hans, Wurst and Fritz, Walt and Hund, Katze}
   }

   @BOOK{author2001,
      title = {titel des Werkes},
      year = {2003},
      author = {ABärbel, Klaus and Hans, Wurst and Fritz, Walt and Hund, Katze}
   }
\end{filecontents}

\documentclass[a4paper]{scrartcl}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}

\usepackage[backend=biber,citestyle=alphabetic,bibstyle=alphabetic, sorting=none, bibwarn=true, bibencoding=utf8]{biblatex}
\usepackage[babel,german=quotes]{csquotes}
\DeclareNameFormat{author}{%
   \nameparts{#1}
   \usebibmacro{name:family-given}{\namepartfamily}{\namepartgiven}{\namepartprefix}{\namepartsuffix}%
   \usebibmacro{name:andothers}}
   \addbibresource{\jobname}
   \DefineBibliographyStrings{ngerman}{
      andothers = {{et\,al\adddot}},            
   }  
   \renewcommand*{\mkbibnamefamily}[1]{\textsc{#1}}

   \begin{document}

   \textcite{author2001}
   \cite{author1998} \\
   \textcite{author2000} \\

   \printbibliography
   \end{document}

Benutzeravatar
Johannes_B
Moderator
Moderator
Beiträge: 5079
Registriert: Do 1. Nov 2012, 14:55
Kontaktdaten:

Beitrag von Johannes_B »

Füge an namepartgiven ein i an und es wird namepartgiveni.

\DeclareFieldFormat{labelalpha}{\textsc{#1}}
TeXwelt - Fragen und Antworten Schaut vorbei und stellt Fragen.
LaTeX-Vorlagen?

Der Weg zum Ziel: Ruhe bewahren und durchatmen, Beiträge und unterstützende Links aufmerksam lesen, Lösungsansätze verstehen und ggf. nachfragen.

kannstmasehn
Forum-Century
Forum-Century
Beiträge: 165
Registriert: Mo 5. Mai 2014, 16:55

Beitrag von kannstmasehn »

Passt, danke!
\begin{filecontents}{\jobname.bib}
   @BOOK{author1998,
      title = {titel des buches},
      year = {1998},
      author = {Wurst, Hans}
   }

   @BOOK{author2000,
      title = {titel des Werkes},
      year = {2000},
      author = {Bärbel, Klaus and Hans, Wurst and Fritz, Walt and Hund, Katze}
   }

   @BOOK{author2001,
      title = {titel des Werkes},
      year = {2003},
      author = {ABärbel, Klaus and Hans, Wurst and Fritz, Walt and Hund, Katze}
   }
\end{filecontents}

\documentclass[a4paper]{scrartcl}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}

\usepackage[backend=biber,citestyle=alphabetic,bibstyle=alphabetic, sorting=none, bibwarn=true, bibencoding=utf8]{biblatex}
\usepackage[babel,german=quotes]{csquotes}
\DeclareNameFormat{author}{%
   \nameparts{#1}
   \usebibmacro{name:family-given}{\namepartfamily}{\namepartgiveni}{\namepartprefix}{\namepartsuffix}%
   \usebibmacro{name:andothers}}
   \addbibresource{\jobname}
   \DefineBibliographyStrings{ngerman}{
      andothers = {{et\,al\adddot}},            
   }  
   \renewcommand*{\mkbibnamefamily}[1]{\textsc{#1}}
   \DeclareFieldFormat{labelalpha}{\textsc{#1}}

   \begin{document}

   \textcite{author2001}
   \cite{author1998} \\
   \textcite{author2000} \\

   \printbibliography
   \end{document}

Gast

Beitrag von Gast »

Du kannst Dir den Eingriff in \DeclareNameFormat wahrscheinlich ganz sparen. Entweder mit
\DeclareNameAlias{default}{family-given}
was alle Namen zu "Nachname, Vorname" ändert, oder mit
\DeclareNameAlias{author}{family-given}
\DeclareNameAlias{editor}{family-given}
\DeclareNameAlias{translator}{family-given}
um für andere Stile ganz sicher zu gehen, kannst Du auch noch \DeclareNameAlias{sortname}{family-given} hinzufügen, das sollte mit alphabetic aber nicht nötig sein (schaden kann es aber auch nicht).
Beachte dass der Code dann nicht nur das Format von Autoren, sondern auch das von Herausgebern ändert, wenn sie an der Stelle der Autoren stehen. Vergleiche das Ergebnis des Codes unten, wenn Du gaonkar zitierst, mit Deinem Code.
Bei Deinem Code fehlt außerdem ein % hinter dem \nameparts{#1}, was für ungewollte Leerzeichen sorgt.

Du bekommst die Initialen für die Vornamen dann mit der Option giveninits=true.

Mich wundert, dass Du sorting=none bei einem alphabetic-Stil benutzt, gibt das in der Bibliographie nicht ein heilloses Chaos, kannst Du das Referenzen vernünftig finden? Die bei style=alphabetic automatisch gewählte Sortierung anyt scheint mir irgendwie sinnvoller.

Statt citestyle=alphabetic,bibstyle=alphabetic ist style=alphabetic kürzer aber äquivalent.

Wenn wir bei Sachen sind, die ich sinnvoll finde, möchte ich Dir ans Herz legen, in der Bibliographie ein paar Namen mehr anzugeben. Ich finde es etwas unschön in der Bibliographie Namen mit "et al." unter den Tisch fallen zu lassen. Daher gibt es in dem Beispiel unten auch maxbibnames=999, auf die Zitate hat das keinen Einfluss.
\documentclass[a4paper]{scrartcl}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}

\usepackage[backend=biber, style=alphabetic, giveninits=true, maxbibnames=999]{biblatex}
\usepackage[babel,german=quotes]{csquotes}

\DeclareNameAlias{author}{family-given}
\DeclareNameAlias{editor}{family-given}
\DeclareNameAlias{translator}{family-given}
\DeclareNameAlias{sortname}{family-given}

\addbibresource{biblatex-examples.bib}

\DefineBibliographyStrings{ngerman}{
  andothers = {{et\,al\adddot}},            
}  
\renewcommand*{\mkbibnamefamily}[1]{\textsc{#1}}
\DeclareFieldFormat{labelalpha}{\textsc{#1}}

\begin{document}
  \textcite{sigfridsson,gaonkar}
  \cite{aksin}
  \textcite{geer}

  \printbibliography
\end{document}

Antworten