所以我有这个问题,当我使用
\usepackage[backend=biber, autocite=inline, bibstyle=alphabetic, citestyle=alphabetic]{biblatex}
我得到的\footnote{\cite{somebook}}
输出是:
但我希望它像这样:
所以应该是:
作者、年份、简称、页码
我当然可以说
\footnote{Vgl. \citeauthor{book}, \citeyear{book}, \cite{book} p. xxx}
但我希望有一种更优雅的方式?
此外,并非每个条目(来自互联网的条目)都有年份,我通过注释解决了这个问题。
我的配置如下:
% !TEX root = master.tex
% LANGUAGE SETTINGS AND FONT ENCODING
%
\usepackage[ngerman]{babel} % German language
\usepackage[utf8]{inputenc}
\usepackage[german=quotes]{csquotes} % correct quotes using \enquote{}
\usepackage[T1]{fontenc}
\usepackage[left=4cm, right=2cm, top=4cm, bottom=2cm]{geometry}
\usepackage{blindtext}
\usepackage{float}
%\usepackage[english]{babel} % For english language
%\usepackage{csquotes} % Richtiges Setzen der Anführungszeichen mit \enquote{}
% Zwei eigene Befehle zum Setzen von Autor und Titel. Ausserdem werden die PDF-Informationen richtig gesetzt.
\newcommand{\TitelDerArbeit}[1]{\def\DerTitelDerArbeit{#1}\hypersetup{pdftitle={#1}}}
\newcommand{\AutorDerArbeit}[1]{\def\DerAutorDerArbeit{#1}\hypersetup{pdfauthor={#1}}}
\newcommand{\Firma}[1]{\def\DerNameDerFirma{#1}}
\newcommand{\Kurs}[1]{\def\DieKursbezeichnung{#1}}
% Correct superscripts
\usepackage{fnpct}
% CALCULATIONS
%
\usepackage{calc} % Used for extra space below footsepline
% BIBLIOGRAPHY SETTINGS
%
% Uncomment the next three lines for author-year-style with footnotes (Chicago)
%\usepackage[backend=biber, autocite=footnote, style=authortitle, dashed=false]{biblatex}%vorher authoryear
%Use Author-Year-Cites with footnotes
%\AdaptNoteOpt\footcite\multfootcite %will add separators if footcite is called multiple consecutive times
%\AdaptNoteOpt\autocite\multautocite % will add separators if autocite is called multiple consecutive times
% Uncomment the next line for IEEE-style
%\usepackage[backend=biber, autocite=inline, style=ieee]{biblatex} % Use IEEE-Style (e.g. [1])
% Uncomment the next line for apa-style
%\usepackage[backend=biber, autocite=inline, style=apa]{biblatex} % Use apa-Style
% Uncomment the next line for alphabetic style
\usepackage[backend=biber, autocite=inline, bibstyle=alphabetic, citestyle=alphabetic]{biblatex}
%\renewcommand*{\nameyeardelim}{\addcomma\space}
% Use alphabetic style: alphabetic (e.g. [TGK12])
% Don't fall back on other year fields if there is no year, use
% "nodate" string
\DeclareLabeldate{%
\field{pubstate}
\field{date}
\literal{o. D.}
}
% Uncomment the next two lines vor Harvard-Style
%\usepackage[backend=biber, style=apa]{biblatex}
%\DeclareLanguageMapping{german}{german-apa}
\DefineBibliographyStrings{ngerman}{ %Change u.a. to et al. (german only!)
andothers = {{et\,al\adddot}},
}
%%%für die Umbrüche der URLs im Literaturverzeichnis
\apptocmd{\UrlBreaks}{\do\f\do\m}{}{}
\setcounter{biburllcpenalty}{9000}% Kleinbuchstaben
\setcounter{biburlucpenalty}{9000}% Großbuchstaben
\setlength{\bibparsep}{\parskip} %add some space between biblatex entries in the bibliography
\addbibresource{bibliography.bib} %Add file bibliography.bib as biblatex resource
% FOOTNOTES
%
% Count footnotes over chapters
\usepackage{chngcntr}
\counterwithout{footnote}{chapter}
\usepackage{tablefootnote} %damit Fußnoten in Tabellen richtig angezeigt werden
% ACRONYMS
%%%
%%% WICHTIG: Installieren Sie das neueste Acronyms-Paket!!!
%%%
\makeatletter
\usepackage[printonlyused, withpage]{acronym}
\@ifpackagelater{acronym}{2015/03/20}
{%
\renewcommand*{\aclabelfont}[1]{\textbf{\textsf{\acsfont{#1}}}}
}%
{%
}%
\makeatother
%Figure
\renewcaptionname{ngerman}{\figurename}{Abbildung}
\renewcommand*\listoflofentryname{\figurename}
\BeforeStartingTOC[lof]{\renewcommand*\autodot{:}}
%Table
\renewcommand*\listoflotentryname{\tablename}
\BeforeStartingTOC[lot]{\renewcommand*\autodot{:}}
% LISTINGS
\usepackage[final]{listings} %Format Listings properly
\usepackage{color} %für das Styling in anderen Farben
\usepackage{scrhack}
\renewcommand{\lstlistingname}{Quelltext}
\renewcommand{\lstlistlistingname}{Quelltextverzeichnis}
\newcommand\listoflolentryname\lstlistingname
\BeforeStartingTOC[lol]{\renewcommand*\autodot{:}}
\lstset{numbers=left,
numberstyle=\tiny,
captionpos=b,
basicstyle=\ttfamily\small,
escapeinside={(*@}{@*)},
literate= %für die Umlaute in Listings
{Ö}{{\"O}}1
{Ä}{{\"A}}1
{Ü}{{\"U}}1
{ß}{{\ss}}1
{ö}{{\"o}}1
{ü}{{\"u}}1
{ä}{{\"a}}1
{~}{{\textasciitilde}}1
}
\definecolor{codegreen}{rgb}{0,0.6,0}
\lstdefinestyle{stylePython}{
backgroundcolor=\color{white},
belowcaptionskip=1\baselineskip,
breaklines=true,
frame=L,
xleftmargin=\parindent,
language=Python,
showstringspaces=false,
basicstyle=\footnotesize\ttfamily,
commentstyle=\color{codegreen},
keywordstyle=\color{blue},
identifierstyle=\color{black},
stringstyle=\color{red},
numberstyle=\tiny\color{blue},
morekeywords={with, as}
}
% EXTRA PACKAGES
\usepackage{graphicx} % use various graphics formats
\usepackage[german]{varioref} % nicer references \vref
\usepackage{caption} %better Captions
\usepackage{booktabs} %nicer Tabs
\usepackage{array}
%\newcolumntype{P}[1]{>{\raggedright\arraybackslash}p{#1}}
\usepackage{setspace} %für Zeilenabstand
% ALGORITHMS
\usepackage{algorithm}
\usepackage{algpseudocode}
\renewcommand{\listalgorithmname}{Algorithmenverzeichnis }
\floatname{algorithm}{Algorithmus}
% FONT SELECTION: Entweder Latin Modern oder Times / Helvetica
\usepackage{lmodern} %Latin modern font
%\usepackage{mathptmx} %Helvetica / Times New Roman fonts (2 lines)
%\usepackage[scaled=.92]{helvet} %Helvetica / Times New Roman fonts (2 lines)
%PAGE HEADER / FOOTER
%Warning: There are some redefinitions throughout the master.tex-file! DON'T CHANGE THESE REDEFINITIONS!
\RequirePackage[automark,headsepline]{scrpage2}
\pagestyle{scrheadings}
\renewcommand*{\pnumfont}{\upshape\sffamily}
\renewcommand*{\headfont}{\upshape\sffamily}
\renewcommand*{\footfont}{\upshape\sffamily}
\renewcommand{\chaptermarkformat}{}
\RedeclareSectionCommand[beforeskip=0pt]{chapter}
\clearscrheadfoot
%\ifoot[\rule{0pt}{\ht\strutbox+\dp\strutbox}Anton Zinn]{\rule{0pt}{\ht\strutbox+\dp\strutbox}Anton Zinn}
\ohead[\rule{0pt}{\ht\strutbox+\dp\strutbox}\pagemark]{\rule{0pt}{\ht\strutbox+\dp\strutbox}\pagemark}
% HYPERREF
%
\usepackage[
hidelinks=true % keine roten Markierungen bei Links
]{hyperref} %am Ende laden, ansonsten kommt es zu Fehlern
\makeatletter %damit Weiterleitung ins Glossar auf richtige Zeile erfolgt
\newcommand{\linkdest}[1]{\Hy@raisedlink{\hypertarget{#1}{}}}
\makeatother
mastertex 如下:
% ACHTUNG: Für das Erstellen des Literaturverzeichnisses wird das modernere Paket biblatex
% in Kombination mit biber verwendet -- nicht mehr das ältere BibTex!
% Bitte stellen Sie ggf. Ihre TeX-Umgebung
% entsprechend ein (z.B. TeXStudio: Einstellungen --> Erzeugen --> Standard Bibliographieprogramm: biber)
%
%bei TexMaker: Optionen -> TexMaker konfigurieren -> bei Bib(la)Tex muss biber.exe ausgewählt werden(befindet sich bei MikTex im Ordner)
\documentclass[
12pt,
BCOR=5mm,
DIV=12,
headinclude=on,
footinclude=off,
parskip=half,
bibliography=totoc,
listof=entryprefix,
toc=listof,
pointlessnumbers,
plainfootsepline]{scrreprt}
\oddsidemargin = 0pt %für Seitenrand links kleiner
\marginparsep = 16pt %für Seitenrand rechts größer
% Konfigurationsdatei einziehen
\input{formale_einstellungen/config}
\begin{document}
%% BITTE GEBEN SIE HIER DEN TITEL UND DIE AUTORIN / DEN AUTOR DER ARBEIT AN!
%% DIESE INFORMATIONEN _MÜSSEN_ GESETZT SEIN, UM TITELBLATT, ABSTRACT UND
%% EIGENSTÄNDIGKEITSERKLÄRUNG AUTOMATISCH ANZUPASSEN!
\TitelDerArbeit{Evaluation verschiedener Datenbanken für die DAME der OFD}
\AutorDerArbeit{Sarah Übele}
\Firma{Oberfinanzdirektion Karlsruhe (LZfD)}
\Kurs{WI2019 Kurs C}
\onehalfspacing %1,5-zeiliger Abstand zwischen allen Zeilen
\input{formale_einstellungen/titlepage}
\pagenumbering{Roman} % Römische Seitennummerierung
\normalfont
%--------------------------------
% Verzeichnisse - nicht benötige Verzeichnisse bitte auskommentieren / löschen.
%--------------------------------
% Sperrvermerk
\input{formale_einstellungen/nondisclosurenotice}
\thispagestyle{empty}
% Kurzfassung
%\input{formale_einstellungen/abstract}
%\thispagestyle{empty}
% Inhaltsverzeichnis
%\tableofcontents
{
\pagestyle{empty}
\addtocontents{toc}{\protect\thispagestyle{empty}}
\tableofcontents
\clearpage
}
% Abkürzungsverzeichnis (siehe Datei acronyms.tex!)
\input{formale_einstellungen/acronyms}
\ohead{Acronyms} % Neue Header-Definition
%\ohead{\pagemark}
% Vorwort
%\input{vorwort}
% Abbildungsverzeichnis
\listoffigures
% Tabellenverzeichnis
\listoftables
% Glossar
\input{formale_einstellungen/Glossar}
%--------------------------------
% Start des Textteils der Arbeit
%--------------------------------
\clearpage
\ihead{\chaptername~\thechapter} % Neue Header-Definition (inner header)
%\ohead{\headmark} % Neue Header-Definition (outer header)
\ohead{\pagemark}
\pagenumbering{arabic} % Arabische Seitenzahlen
% Einleitung
\input{PJ1/Einleitung}
% KAPITEL 2
\input{PJ1/Kapitel2}
% KAPITEL 3
\input{PJ1/Kapitel3}
% KAPITEL 4
\input{PJ1/Kapitel4}
% Der Anhang beginnt hier - jedes Kapitel wird alphabetisch aufgezählt. (Anhang A, B usw.)
%\appendix
%\ihead{\appendixname~\thechapter} % Neue Header-Definition
% appendix.tex einziehen
%\input{formale_einstellungen/appendix}
%Beigabenverzeichnis
%\input{beigaben}
%\ihead{Beigaben}
%Literaturverzeichnis
\printbibliography[title=Literaturverzeichnis]
\ihead{Literatur}
%Standard aus Vorlage
%\printbibliography[heading=bibintoc, type=book, title={Literaturverzeichnis}]
%\printbibliography[heading=subbibintoc, type=online, title={Elektronische Quellen}]
%\printbibliography[heading=subbibintoc, type=article, title={Artikel}]
% Listingsverzeichnis
\lstlistoflistings
% Algorithmenverzeichnis
%\listofalgorithms
% Ehrenwörtliche Erklärung ewerkl.tex einziehen
\input{formale_einstellungen/ewerkl}
\cleardoublepage
\end{document}
那么有人有想法吗?
没有年份的条目如下所示:
@online{oraclevarianten,
author = {Oracle},
title = {Oracle Database Editions},
note = {(o\adddot~D\adddot)},
url = {https://docs.oracle.com/cd/B28359_01/license.111/b28287/editions.htm#DBLIC109},
urldate = {2020-07-30},
}
答案1
这种引用格式看起来有点多余。简单的作者年份格式可能同样有用,不需要额外的标签。
无论如何,以下是您可以如何实现它。由于所需的输出与style=alphabetic,
通常生成的输出非常不同,我们需要重写一些 bibmacros。下面我选择了新名称并将它们映射到\autocite
(如我在问题下的评论中所建议的那样),但如果您愿意,也可以重新使用 cite。
\documentclass[ngerman]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{babel}
\usepackage{csquotes}
\usepackage[backend=biber,
style=alphabetic,
]{biblatex}
\DefineBibliographyStrings{german}{
andothers = {et\addabbrvspace al\adddot},
}
\DeclareDelimFormat[doublecite]{nameyeardelim}{\addcomma\space}
\renewbibmacro*{date}{%
\ifboolexpr{ test {\iffieldundef{year}}
and test {\iffieldundef{endyear}}}
{\bibstring{nodate}}
{\printdate}}
\newbibmacro*{doublecite}{%
\printtext[bibhyperref]{%
\printnames{labelname}%
\setunit{\printdelim{nameyeardelim}}%
\usebibmacro{date}%
\setunit{\addcomma\space}%
\printtext[labelalphawidth]{%
\printfield{labelprefix}%
\printfield{labelalpha}%
\printfield{extraalpha}%
\ifbool{bbx:subentry}
{\printfield{entrysetcount}}
{}}}}
\DeclareCiteCommand{\doublecite}[\iffootnote\mkbibbrackets\mkbibfootnote]
{\usebibmacro{prenote}}
{\usebibmacro{citeindex}%
\usebibmacro{doublecite}}
{\multicitedelim}
{\usebibmacro{postnote}}
\DeclareMultiCiteCommand{\doublecites}[\iffootnote\mkbibbrackets\mkbibfootnote]
{\doublecite}{\multicitedelim}
\DeclareAutoCiteCommand{doublecite}{\doublecite}{\doublecites}
\ExecuteBibliographyOptions{autocite=doublecite,}
\setcounter{biburllcpenalty}{9000}
\setcounter{biburlucpenalty}{9000}
\setlength{\bibparsep}{\parskip}
\begin{filecontents}{\jobname.bib}
@online{oraclevarianten,
author = {Oracle},
title = {Oracle Database Editions},
url = {https://docs.oracle.com/cd/B28359_01/license.111/b28287/editions.htm#DBLIC109},
urldate = {2020-07-30},
}
\end{filecontents}
\addbibresource{\jobname.bib}
\addbibresource{biblatex-examples.bib}
\begin{document}
Lorem \autocite[Vgl.][380]{sigfridsson}
ipsum \autocite{oraclevarianten}
\printbibliography
\end{document}
编辑回应评论。
当您重新排列 bibmacro 时,您还需要考虑这些\setunit
行。
如果您希望在引文和参考书目中使用不同的日期格式, labeldate
这又派上用场了。(直到https://github.com/plk/biblatex/issues/863无论如何都已解决。)
“o.”和“D.”之间已经有一个空格,但是它是一个小空格(\,
),您可以重新定义字符串以获得更大的正常空格。
\documentclass[ngerman]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{babel}
\usepackage{csquotes}
\usepackage[backend=biber,
style=alphabetic,
labeldateparts,
]{biblatex}
\DefineBibliographyStrings{german}{
andothers = {et\addabbrvspace al\adddot},
nodate = {{}o.\adddotspace D\adddot},
}
\DeclareDelimFormat[doublecite]{nameyeardelim}{\addcomma\space}
\DeclareLabeldate{%
\field{date}
\field{year}
\literal{nodate}
}
\renewbibmacro*{date}{%
\ifboolexpr{ test {\iffieldundef{year}}
and test {\iffieldundef{endyear}}}
{\bibstring{nodate}}
{\printdate}}
\newbibmacro*{doublecite}{%
\printtext[bibhyperref]{%
\printnames{labelname}%
\setunit{\addcomma\space}%
\printtext[labelalphawidth]{%
\printfield{labelprefix}%
\printfield{labelalpha}%
\printfield{extraalpha}%
\ifbool{bbx:subentry}
{\printfield{entrysetcount}}
{}}%
\setunit{\addcomma\space}%
\printlabeldate}}
\DeclareCiteCommand{\doublecite}[\iffootnote\mkbibbrackets\mkbibfootnote]
{\usebibmacro{prenote}}
{\usebibmacro{citeindex}%
\usebibmacro{doublecite}}
{\multicitedelim}
{\usebibmacro{postnote}}
\DeclareMultiCiteCommand{\doublecites}[\iffootnote\mkbibbrackets\mkbibfootnote]
{\doublecite}{\multicitedelim}
\DeclareAutoCiteCommand{doublecite}{\doublecite}{\doublecites}
\ExecuteBibliographyOptions{autocite=doublecite,}
\setcounter{biburllcpenalty}{9000}
\setcounter{biburlucpenalty}{9000}
\setlength{\bibparsep}{\parskip}
\begin{filecontents}{\jobname.bib}
@online{oraclevarianten,
author = {Oracle},
title = {Oracle Database Editions},
url = {https://docs.oracle.com/cd/B28359_01/license.111/b28287/editions.htm#DBLIC109},
urldate = {2020-07-30},
}
\end{filecontents}
\addbibresource{\jobname.bib}
\addbibresource{biblatex-examples.bib}
\begin{document}
Lorem \autocite[Vgl.][380]{sigfridsson}
ipsum \autocite{oraclevarianten}
\printbibliography
\end{document}