我对使用 LaTeX 进行写作评估(用于我的学习)还比较陌生。
我正在尝试设置一个模板,目前为止它看起来不错。但我完全不知道如何根据自己的需要设置 biblatex(大学指南)。
我已经阅读并测试了两天了,但是我对所有这些信息和解决问题的不同方法感到完全迷失了。
我需要什么?
对于 citestyle,我需要一个脚注引用,其中包含以下内容:作者的姓氏、年份(如果未定义年份,则为简称)和引用所在的页面。
因此这将是@Book
KochELT302
:
Koch,《布尔代数和组合链表》,第 21 页。
对于书目样式,我需要更多信息。我需要姓氏、名字(如果有多个作者,则只需首字母)、年份、全名、版本和地点。
例如@Book
DigitaltechnikFricke2018
Fricke, Klaus, (2018),《电子技术和信息技术工作者的数字技术教师和培训手册》,第 8 版,概述和实际指导,(威斯巴登)
我阅读了不同的文章和文档,我认为我需要更新 citestyle 的宏并定义我需要的格式。
我读过这篇文章:自定义 biblatex 样式的指南
但是我怎么知道在我的例子中使用了哪个宏?
这就是我目前得到的:
\documentclass[12pt,a4paper,headinclude,footinclude]{scrartcl}
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage{setspace}
\usepackage[a4paper]{geometry}
\geometry{top=3cm,bottom=3cm,left=4.5cm,right=2cm,}
\usepackage[babel, german=guillemets]{csquotes}
\usepackage[
bibstyle=authoryear,
citestyle=authortitle,
autocite=footnote,
sorting=nty,
maxcitenames=3,
mincitenames=3,
maxbibnames=8,
minbibnames=8,
]{biblatex}
\addbibresource{literatur.bib}
% Diverse Anpassungen für Literaturverzeichnis und Zitate
\DeclareFieldFormat[book]{title}{\mkbibquote{#1\isdot}}
\DeclareNameAlias{default}{family-given}
\DeclareNameAlias{sortname}{default}
\DefineBibliographyStrings{german}{andothers = {et al.}}
\DefineBibliographyStrings{german}{nodate = {o.J.}}
\title{AKAD-Vorlage}
\author{Author}
\date{August 2020}
\begin{document}
\maketitle
\newpage
\section{Test-1}
Test\autocite[Site 31]{KochELT302} \\
Test2\autocite{Gehrke2016}
\newpage
\printbibliography
\end{document}
所以,我可能需要一些帮助,或者可能需要在正确方向上轻轻推动一下:-)
这是我的 bib 文件
% Encoding: UTF-8
@Book{DigitaltechnikFricke2018,
author = {Klaus Fricke},
date = {2018},
title = {Digitaltechnik},
edition = {{8. überarbeitete und aktualisierte Auflage}},
location = {Wiesbaden},
subtitle = {Lehr- und Übungsbuch fürElektrotechniker und Informatiker},
}
@Book{Gehrke2016,
author = {Winfried Gehrke and Marco Winzker and Klaus Urbanski and Roland Woitowitz},
date = {2016},
title = {Digitaltechnik},
edition = {{7. überarbeitete und aktualisierte Auflage}},
location = {Berlin, Heidelberg},
subtitle = {Grundlagen, VHDL, FPGAs, Mikrocontroller},
}
@Book{KochELT302,
author = {Andreas Koch},
title = {Boolesche Algebra und kombinatorische Schaltkreise},
subtitle = {Digitaltechnik - ELT302},
}
@Book{KochELT303,
author = {Andreas Koch and Dietmar Möller and Tobias Schubert and Dieter Jäger},
title = {Sequenzielle Schaltungen, Schaltwerke und Simulationssoftware},
subtitle = {Digitaltechnik - ELT303},
}
@Comment{jabref-meta: databaseType:biblatex;}
非常感谢您的帮助。
编辑:
我编辑了文本以使其更紧凑并更精确地定义我所需要的内容。
答案1
指南自定义 biblatex 样式的指南是一个很好的开始,但如果你想做更大的修改,那么你就必须查看biblatex
样式代码。
正如解释的那样如何创建 biblatex 书目和引文样式,biblatex 引用样式文件位于哪里?,编辑引用样式(verbose-ibid)你会想看看
biblatex.def
standard.bbx
<(bib)style>.bbx
<(cite)style>.cbx
对于最重要的定义(链接的答案包含有关在哪里可以找到什么以及如何找到这些文件的更多详细信息)。
根据您的描述,我得出了以下结论
\documentclass[12pt,a4paper,headinclude,footinclude]{scrartcl}
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage[babel, german=guillemets]{csquotes}
\usepackage[
style=authoryear,
autocite=footnote,
maxcitenames=3,
mincitenames=3,
maxbibnames=8,
minbibnames=8,
]{biblatex}
\renewcommand*{\newunitpunct}{\addcomma\space}
\renewcommand*{\finentrypunct}{}
\DeclareFieldFormat[book]{title}{\mkbibquote{#1\isdot}}
\DeclareNameAlias{default}{family-given}
\DeclareNameAlias{sortname}{default}
\DeclareListWrapperFormat{location}{\mkbibparens{#1}}
\DefineBibliographyStrings{german}{
andothers = {et al\adddot},
nodate = {o.J\adddot},
}
\DeclareDelimFormat{nameyeardelim}{\addcomma\space}
\DeclareDelimFormat[bib]{nameyeardelim}{\addcomma\space}
\renewbibmacro*{cite:label}{%
\printtext[bibhyperref]{\printfield{label}}}
\newbibmacro*{cite:labeltitle}{%
\printtext[bibhyperref]{\printfield[citetitle]{labeltitle}}}
\renewbibmacro*{cite}{%
\iffieldundef{shorthand}
{\ifthenelse{\ifnameundef{labelname}}
{\usebibmacro{cite:label}%
\setunit{\printdelim{nonameyeardelim}}}
{\printnames{labelname}%
\setunit{\printdelim{nameyeardelim}}}%
\ifboolexpr{ test {\iffieldundef{labelyear}}
or test {\iffieldequalstr{labelyear}{nodate}}}
{\usebibmacro{cite:labeltitle}}
{\usebibmacro{cite:labeldate+extradate}}}
{\usebibmacro{cite:shorthand}}}
\begin{filecontents}{\jobname.bib}
@Book{DigitaltechnikFricke2018,
author = {Klaus Fricke},
date = {2018},
title = {Digitaltechnik},
edition = {8. überarbeitete und aktualisierte Auflage},
location = {Wiesbaden},
subtitle = {Lehr- und Übungsbuch für Elektrotechniker und Informatiker},
}
@Book{Gehrke2016,
author = {Winfried Gehrke and Marco Winzker and Klaus Urbanski and Roland Woitowitz},
date = {2016},
title = {Digitaltechnik},
edition = {7. überarbeitete und aktualisierte Auflage},
location = {Berlin, Heidelberg},
subtitle = {Grundlagen, VHDL, FPGAs, Mikrocontroller},
}
@Book{KochELT302,
author = {Andreas Koch},
title = {Boolesche Algebra und kombinatorische Schaltkreise},
subtitle = {Digitaltechnik - ELT302},
}
@Book{KochELT303,
author = {Andreas Koch and Dietmar Möller and Tobias Schubert and Dieter Jäger},
title = {Sequenzielle Schaltungen, Schaltwerke und Simulationssoftware},
subtitle = {Digitaltechnik - ELT303},
}
\end{filecontents}
\addbibresource{\jobname.bib}
\begin{document}
Test\autocite[31]{KochELT302}
Lorem\autocite{DigitaltechnikFricke2018}
Test2\autocite{Gehrke2016}
\printbibliography
\end{document}