我很高兴看到biblatex-ext 手册 biblatex-ext 可以提供,我已经使用 MikTex 2.9 数据包管理器添加了 biblatex-ext。
我已成功使用“[”和“]”进行引用:
\DeclareOuterCiteDelim{parencite}{\bibopenbracket}{\bibclosebracket}
\DeclareInnerCiteDelim{parencite}{\bibopenparen}{\bibcloseparen}
在第 16 页上,我找到了我论文所需的参考书目样式,并通过剪切粘贴到我的主文件中接管了这五行:
\documentclass{scrreprt}
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}
\usepackage[T1]{fontenc}
\usepackage[babel,german=quotes]{csquotes}
\usepackage[ext-style=authoryear-icomp,sorting=nyt]{biblatex}
\DeclareOuterCiteDelim{parencite}{\bibopenbracket}{\bibclosebracket}
\DeclareInnerCiteDelim{parencite}{\bibopenparen}{\bibcloseparen}
%the interesting lines start here:
\DeclareFieldFormat{bbx:introcite}{\mkbibbold{#1}}
\DeclareDelimcontextAlias{bbx:introcite}{textcite}
\DeclareInnerCiteDelim{bbx:introcite}{\bibopenparen}{\bibcloseparen}
\setlength{\introcitewidth}{0pt}
\setlength{\introcitesep}{\bibhang}
%the interesting lines end here:
\addbibresource{Literatur.bib}
\begin{document}
Citation1: \autocite{Knuth:Texbook}
Citation2: \autocite{Schlosser:Latex}
Citation2: \autocite[siehe][S. 130]{Beucher:MATLAB}
\printbibliography
\end{document}
Literatur.bib 文件:
@Book{Knuth:Texbook,
author = {Donald Knuth},
title = {The TeXbook},
editor = {unknown},
publisher = {Addison Wesley},
year = {1986},
}
@Book{Schlosser:Latex,
author = {Joachim Schlosser},
title = {Wissenschaftliche Arbeiten schreiben mit Latex},
editor = {unknown},
publisher = {mitp Verlag},
year = {2014},
}
@Book{Beucher:MATLAB,
author = {Ottmar Beucher},
title = {Immer Ärger mit MATLAB und Simulink},
publisher = {mitp Verlag},
editor = {unknown},
year = {2012},
url = {http://www.amazon.de},
}
这五行没有任何作用:
\DeclareFieldFormat{bbx:introcite}{\mkbibbold{#1}}
\DeclareDelimcontextAlias{bbx:introcite}{textcite}
\DeclareInnerCiteDelim{bbx:introcite}{\bibopenparen}{\bibcloseparen}
\setlength{\introcitewidth}{0pt}
\setlength{\introcitesep}{\bibhang}
到参考书目!LaTeX 运行时没有错误消息。当我从代码中删除它们时,参考书目外观没有任何变化。
我已经完全更新了 MikTex,尽管花了一段时间并且我重新启动了电脑 - 但没有任何变化。
我不是 LaTeX 专业人士,我也不知道为什么这五行代码无效。
您知道可能是什么原因吗?
非常感谢您的提示!
来自德国的问候
答案1
introcite
只有将选项与值一起使用时,这些行才会生效label
。这就是为什么代码示例的标题是“示例自定义introcite=label
”。如果没有introcite
给出选项,则假定默认值false
,这意味着参考书目中没有引用标签。因此,样式化不会产生任何效果。
\documentclass{scrreprt}
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}
\usepackage[T1]{fontenc}
\usepackage[babel,german=quotes]{csquotes}
\usepackage[style=ext-authoryear-icomp, introcite=label]{biblatex}
\DeclareOuterCiteDelims{parencite}{\bibopenbracket}{\bibclosebracket}
\DeclareInnerCiteDelims{parencite}{\bibopenparen}{\bibcloseparen}
%the interesting lines start here:
\DeclareFieldFormat{bbx@introcite}{\mkbibbold{#1}}
\DeclareDelimFormat[bbx@introcite]{nameyeardelim}{\addspace}
\DeclareInnerCiteDelims{bbx@introcite}{\bibopenparen}{\bibcloseparen}
\setlength{\introcitewidth}{0pt}
\setlength{\introcitesep}{\bibhang}
%the interesting lines end here:
%\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@Book{Knuth:Texbook,
author = {Donald Knuth},
title = {The TeXbook},
publisher = {Addison Wesley},
year = {1986},
}
@Book{Schlosser:Latex,
author = {Joachim Schlosser},
title = {Wissenschaftliche Arbeiten schreiben mit Latex},
publisher = {mitp Verlag},
year = {2014},
}
@Book{Beucher:MATLAB,
author = {Ottmar Beucher},
title = {Immer Ärger mit MATLAB und Simulink},
publisher = {mitp Verlag},
year = {2012},
url = {http://www.amazon.de},
}
\end{filecontents}
\addbibresource{\jobname.bib}
\begin{document}
Citation1: \autocite{Knuth:Texbook}
Citation2: \autocite{Schlosser:Latex}
Citation2: \autocite[siehe][130]{Beucher:MATLAB}
\printbibliography
\end{document}
作品。
由于\DeclareDelimcontextAlias{bbx@introcite}{textcite}
可能会产生违反直觉的结果,我将其替换为\DeclareDelimFormat[bbx@introcite]{nameyeardelim}{\addspace}
。
请注意,您不需要写\autocite[S. 130]{Beucher:MATLAB}
,biblatex
如果合适,只需添加“S.”本身就\autocite[130]{Beucher:MATLAB}
足够了。
我也不认为写作editor = {unknown}
有多大用处,所以我删除了它。
sorting=nyt
是的默认值style=authoryear-icomp
(因此也是的默认值ext-authoryear-icomp
),所以您不需要明确给出该选项。
在biblatex-ext
v0.4 中,“虚拟”引用宏bbx:introcite
被重命名为,bbx@introcite
以符合一致性和实现原因。请参阅https://github.com/moewew/biblatex-ext/issues/10和https://github.com/moewew/biblatex-ext/pull/11
bbx:introcite
这意味着
\DeclareFieldFormat{bbx:introcite}{\mkbibbold{#1}}
\DeclareDelimFormat[bbx:introcite]{nameyeardelim}{\addspace}
\DeclareInnerCiteDelims{bbx:introcite}{\bibopenparen}{\bibcloseparen}
必须替换为bbx@introcite
上述代码中的 。旧代码的常见用法将生成警告。
\DeclareInnerCiteDelim
并被\DeclareOuterCiteDelim
替换为\DeclareInnerCiteDelims
和\DeclareOuterCiteDelims
(带有s
)。该更改完全向后兼容:旧名称将继续有效,并会生成一个方便的警告,请使用新名称。