Historische Zeitschrift 样式编辑器输出错误

Historische Zeitschrift 样式编辑器输出错误

似乎 Historische Zeitschrift Style Package 本身存在错误(或者可能只是我的情况)。当书籍没有作者,只有编辑时,就会出现不该出现的空白。当我排版我的文件时,结果如下:

在此处输入图片描述

问题

它应该是这样的:

是。卡罗琳·怀特 (Hrsg.),《纳齐安的格雷戈里:自传诗》。关于我们。诉卡罗琳·怀特。剑桥 1996,S.X

我需要进行更改,使空格位于括号之前而不是之后。有人能帮我吗?

这是我的 MWE 和我所有的定制(我取消选择它们只是为了让您看到这不是它们的问题而是包本身的问题)。

\documentclass[a4paper,11pt]{scrartcl}
\usepackage[latin1]{inputenc}
\usepackage{csquotes}
\usepackage{blindtext}
\usepackage{filecontents}
\usepackage{hyperref}
\hypersetup{
    colorlinks,
     citecolor=black,
     filecolor=black,
     linkcolor=black,
     urlcolor=black
}
\usepackage{chngcntr}
\counterwithin*{footnote}{section}
\begin{filecontents}{\jobname.bib} 
@book{white1996,
    Address = {Cambridge},
    Call-Number = {Googlebooks},
    Date-Added = {2014-03-26 15:05:53 +0000},
    Date-Modified = {2014-03-26 15:07:22 +0000},
    Editor = {Carolinne White},
    Keywords = {source},
    Publisher = {Cambridge University Press},
    Title = {Gregory of Nazianzus: Autobiographical Poems},
    Translator = {Carolline White},
    Year = {1996}}
@book{gregorius1862,
    Address = {Parisiis},
    Author = {{Gregorius Nazianzenus}},
    Call-Number = {PDF},
    Date-Added = {2014-03-15 15:58:32 +0000},
    Date-Modified = {2014-03-31 08:01:30 +0000},
    Editor = {Jacques Paul Migne},
    Keywords = {source},
    Publisher = {Accurante J.-P. Migne},
    Series = {Patrologiae cursus completus: Series Graeca},
    Shortauthor = {{Gr. Naz.}},
    Shorttitle = {hym. 30},
    Title = {Hymnus 30: Ad Deum},
    Usera = {PG},
    Volume = {37},
    Year = {1862}}
@incollection{gregorius1980,
    Address = {Paris},
    Author = {{Gregorius Nazianzenus}},
    Booktitle = {Discours 20-23},
    Date-Added = {2013-04-25 14:10:40 +0000},
    Date-Modified = {2014-03-30 11:54:04 +0000},
    Editor = {Justin Mossay},
    Keywords = {source},
    Pages = {110-193},
    Publisher = {Les {\'E}ditions du Cerf},
    Series = {Sources chr{\'e}tiennes},
    Shortauthor = {{Gr. Naz.}},
    Shorttitle = {or. 21},
    Title = {Oratio 21: In laudem Athanasii},
    Volume = {270},
    Year = {1980}}
\end{filecontents}
\usepackage[ngerman]{babel}
\usepackage[style=historische-zeitschrift, maxnames=2, hyperref=true, backref=true, backrefstyle=none, backend=bibtex,idemtracker=true]{biblatex}
\bibliography{\jobname}
%
% \makeatletter
% \renewbibmacro*{footcite}{%
%   \global\boolfalse{cbx@loccit}%
%   \global\boolfalse{cbx@seenote}% NEW!
%   \ifciteseen
%     {\iffieldundef{shorthand}
%        {\ifthenelse{\ifciteibid\AND\NOT\iffirstonpage}
%           {\usebibmacro{footcite:ibid}}
%           {\usebibmacro{footcite:note}}}
%        {\usebibmacro{footcite:shorthand}}}
%        {\iffieldundef{usera}
%          {\usebibmacro{footcite:full}}{\printnames{author}%
%        \setunit{\addcomma\space}%
%        \printfield{title}\isdot%
%          {\setunit{\addcomma\space}%
%           \usebibmacro{in:}%
%           \printfield{usera}%
%           \setunit*{\addspace}%
%           \printfield[default]{volume}}}}%
%      \usebibmacro{footcite:save}}
%
% %
%
% \renewbibmacro*{footcite:note}{%
%   \global\booltrue{cbx@seenote}% NEW!
%   \ifnameundef{labelname}
%     {\printfield{label}}
%     {\printnames{labelname}}%
%   \ifsingletitle
%     {}
%     {\setunit*{\addcomma\space}%
%      \printfield[title]{labeltitle}}%
%   \setunit*{\addspace}%<--- CHANGED
%   \printtext{%
%     \bibhyperlink{\thefield{entrykey}:%
%                   \@nameuse{cbx@first@\thefield{entrykey}}}{%
%       \printtext{\bibleftparen}%
%       \bibstring{seenote}\addnbspace
%       \@nameuse{cbx@note@\thefield{entrykey}}%
%       \setunit{\addcomma\space}%
%       \bibstring{page}\addnbspace
%       \@nameuse{cbx@page@\thefield{entrykey}}}}}
%
% \renewbibmacro*{footcite:save}{%
%   \ifundef\@thefnmark
%     {\ifundef\@theenmark % endnotes.sty
%        {\csgdef{cbx@note@\thefield{entrykey}}{%
%           \BibliographyWarning{Missing footnote mark}\textbf{??}}}
%        {\global\cslet{cbx@note@\thefield{entrykey}}\@theenmark}}
%     {\global\cslet{cbx@note@\thefield{entrykey}}\@thefnmark}%
%   \global\cslet{cbx@page@\thefield{entrykey}}\thepage
%   \csxdef{cbx@first@\thefield{entrykey}}{\the\value{instcount}}}
%
% % NO PAGES IN INCOLLECTION FOOTNOTES BUT PAGES IN BIBLIOGRAPHY
% %
% \renewbibmacro*{chapter+pages}{%
%   \printfield{chapter}%
%   \newunit}
% \makeatletter
% \renewenvironment{thebibliography}
%      {\renewbibmacro*{chapter+pages}{%
%   \printfield{chapter}%
%   \setunit*{\addcomma\space}%
%   \printfield{pages}%
%   \newunit}}
% \makeatother
%
\begin{document}
\section{First section}
\blindtext\footcite[See][S. 56]{gregorius1980}
\pagebreak
\section{Second section}
\blindtext\footcite[Vgl.][S. ]{white1996}
\pagebreak
\printbibliography
\end{document}

答案1

问题似乎在于的使用\mkbibparens

显然,不应该将它用作宏,而应该将其用作包装器参数(例如\bibstring,许多biblatex宏都采用包装器命令)以防止出现虚假空格(我找不到任何官方认可此声明,但经常发现\mkbibparens当用作宏时它并不能完全按照我的要求执行):

只需将其放在你的序言中即可。

\renewbibmacro*{editorstrg}{%
  \ifthenelse{\value{editor}>1\OR\ifandothers{editor}}
    {\bibstring[\mkbibparens]{editors}}
    {\bibstring[\mkbibparens]{editor}}}

原始定义使用\mkbibparens宏:

\renewbibmacro*{editorstrg}{%
  \ifthenelse{\value{editor}>1\OR\ifandothers{editor}}
    {\mkbibparens{\bibstring{editors}}}
    {\mkbibparens{\bibstring{editor}}}}

平均能量损失

\documentclass[a4paper,11pt]{scrartcl}
\usepackage[utf8]{inputenc}
\usepackage{csquotes}
\usepackage{filecontents}
\usepackage{hyperref}
\begin{filecontents}{\jobname.bib} 
@book{white1996,
    Address = {Cambridge},
    Call-Number = {Googlebooks},
    Date-Added = {2014-03-26 15:05:53 +0000},
    Date-Modified = {2014-03-26 15:07:22 +0000},
    Editor = {Carolinne White},
    Keywords = {source},
    Publisher = {Cambridge University Press},
    Title = {Gregory of Nazianzus: Autobiographical Poems},
    Translator = {Carolline White},
    Year = {1996}}
\end{filecontents}
\usepackage[ngerman]{babel}
\usepackage[style=historische-zeitschrift, maxnames=2, hyperref=true, backref=true, backrefstyle=none, backend=bibtex,idemtracker=true]{biblatex}
\addbibresource{\jobname.bib}

\renewbibmacro*{editorstrg}{%
  \ifthenelse{\value{editor}>1\OR\ifandothers{editor}}
    {\bibstring[\mkbibparens]{editors}}
    {\bibstring[\mkbibparens]{editor}}}

\begin{document}
Hi\footcite[Vgl.][16]{white1996}
\printbibliography
\end{document}

在此处输入图片描述

相关内容