biblatex
我正在使用样式完成书籍类中的文档authoryear
。我还使用样式的默认行为,让biblatex
不同条目中的重复作者姓名用破折号替换。
通常,在打印参考书目时,biblatex
会将作者姓名重新打印在偶数页的顶部,即使该页继续重复上一页的同一作者条目。这一点很重要,否则读者必须返回上一页才能知道该条目的作者。
但是,在我的文档中,这种行为失败了。显然,发生的事情是前一页(奇数页)的最后一条记录被破坏并延伸到下一页(偶数页),因此下一条记录(即偶数页中的第一个完整记录)的作者姓名被替换为破折号。事实上,当我处理同一作者的一长串参考文献时,我得到了一整对对开页,其中只有破折号,没有作者姓名。
我知道我可以重新使用该选项dashed=false
并让问题消失。但如果可能的话,我想保留破折号替换。关于如何解决或规避此问题,有什么想法吗?
编辑:根据评论中的要求,我提供了该问题的 MWE:
\documentclass{book}
\usepackage[papersize={140mm,210mm}, inner=26mm, outer=18mm, top=15mm, bottom=48mm]{geometry}
\usepackage[bibstyle=authoryear,citestyle=authoryear-comp,backend=biber,sorting=nyt]{biblatex}
\usepackage{filecontents}
\begin{filecontents*}{MWE.bib}
@book{AndoFisherSimon1963,
keywords = {Simon},
author = {Albert Ando and Franklin Fisher and Herbert A. Simon},
title = {Essays on the structure of social science models},
date = {1963},
publisher = {The MIT Press},
location = {Cambridge, MA},
langid = {english},
}
@article{HawkinsSimon1949,
keywords = {Simon},
author = {David Hawkins and Herbert A. Simon},
title = {Note: Some conditions of macroeconomic stability},
journaltitle = {Econometrica},
date = {1949},
volume = {17},
pages = {245--248},
langid = {english},
}
@book{HMMS1960,
keywords = {Simon},
author = {Charles C. Holt and Franco Modigliani and John F. Muth and Herbert A. Simon},
title = {Planning production, inventories, and work force},
date = {1960},
publisher = {Prentice-Hall},
location = {Englewood Cliffs},
langid = {english},
}
@book{MarchSimon1958,
keywords = {Simon},
author = {James G. March and Herbert A. Simon},
title = {Organizations},
date = {1958},
publisher = {John Wiley and Sons},
location = {New York},
langid = {english},
}
@book{NewellSimon1972,
keywords = {Simon},
author = {Allen Newell and Herbert A. Simon},
title = {Human problem solving},
date = {1972},
publisher = {Prentice-Hall},
location = {Englewood Cliffs, NJ},
langid = {english},
}
@book{Simon1947,
keywords = {Simon},
author = {Herbert A. Simon},
title = {Administrative behavior},
date = {1947},
subtitle = {A study of decision-making processes in administrative organization},
edition = {1\textsuperscript{st} ed.},
publisher = {The Macmillan Company},
location = {New York},
langid = {english},
}
@article{Simon1952,
keywords = {Simon},
author = {Herbert A. Simon},
title = {On the definition of the causal relation},
journaltitle = {Journal of Philosophy},
date = {1952},
volume = {49},
month = {July 31},
pages = {517-528},
addendum = {Reimpresso em \textcite[50--61]{Simon1957}},
langid = {english},
}
@book{Simon1957,
keywords = {Simon},
author = {Herbert A. Simon},
title = {Models of man, social and rational},
date = {1957},
subtitle = {Mathematical essays on rational human behavior in a social setting},
publisher = {John Wiley and Sons},
location = {New York},
langid = {english},
}
@inbook{Simon1953a,
keywords = {Simon},
author = {Herbert A. Simon},
title = {Causal ordering and identifiability},
booktitle = {Studies in econometric method},
date = {1953},
editor = {W. C. Hood and J. C. Koopmas},
publisher = {Wiley},
location = {New York},
addendum = {Reimpresso em \textcite[10--36]{Simon1957}},
langid = {english},
}
@article{Simon1953b,
keywords = {Simon},
author = {Herbert A. Simon},
title = {Notes on the observation and measurement of political power},
journaltitle = {Journal of Politics},
date = {1953},
volume = {15},
month = {November},
pages = {500--516},
addendum = {Reimpresso em \textcite[62--78]{Simon1957}},
langid = {english},
}
@article{Simon1954a,
keywords = {Simon},
author = {Herbert A. Simon},
title = {Spurious correlation: a causal interpretation},
journaltitle = {Journal of the American Statistical Association},
date = {1954},
volume = {49},
month = {September},
pages = {467--479},
addendum = {Reimpresso em \textcite[37--49]{Simon1957}},
langid = {english},
}
\end{filecontents*}
\addbibresource{MWE.bib}
\begin{document}
\nocite{*}
\chapter*{Referências\markboth{\MakeUppercase{Referências}}{}}
\printbibliography[heading=subbibintoc,title={Trabalhos de Herbert A.\ Simon}, keyword=Simon]
\end{document}
在此 MWE 下,我遇到了同样的问题:
答案1
biblatex
的页面跟踪器会同时跟踪引文和参考书目条目。在有问题的示例中,您会发现转到下一页的条目包含引文。此引文将是biblatex
该页面上的第一个实例,因此该页面上的第一个参考书目条目不会被识别为该页面上的第一个实例。
\cite
在参考书目中使用命令通常被认为有点“无趣”。在这种情况下,您可能可以\textcite
使用该related
功能(您必须找到一种方法来明确提供页面)。
答案2
这是一个非常严重的问题。希望有人能想出一种方法来一劳永逸地自动修复它。现在你可以声明一个条目选项作为一种解决方法,如下所示:
\documentclass{book}
\usepackage[papersize={140mm,210mm}, inner=26mm, outer=18mm, top=15mm, bottom=48mm]{geometry}
\usepackage[bibstyle=authoryear,citestyle=authoryear-comp,backend=biber,sorting=nyt]{biblatex}
\usepackage{filecontents}
\begin{filecontents*}{MWE.bib}
@book{AndoFisherSimon1963,
keywords = {Simon},
author = {Albert Ando and Franklin Fisher and Herbert A. Simon},
title = {Essays on the structure of social science models},
date = {1963},
publisher = {The MIT Press},
location = {Cambridge, MA},
langid = {english},
}
@article{HawkinsSimon1949,
keywords = {Simon},
author = {David Hawkins and Herbert A. Simon},
title = {Note: Some conditions of macroeconomic stability},
journaltitle = {Econometrica},
date = {1949},
volume = {17},
pages = {245--248},
langid = {english},
}
@book{HMMS1960,
keywords = {Simon},
author = {Charles C. Holt and Franco Modigliani and John F. Muth and Herbert A. Simon},
title = {Planning production, inventories, and work force},
date = {1960},
publisher = {Prentice-Hall},
location = {Englewood Cliffs},
langid = {english},
}
@book{MarchSimon1958,
keywords = {Simon},
author = {James G. March and Herbert A. Simon},
title = {Organizations},
date = {1958},
publisher = {John Wiley and Sons},
location = {New York},
langid = {english},
}
@book{NewellSimon1972,
keywords = {Simon},
author = {Allen Newell and Herbert A. Simon},
title = {Human problem solving},
date = {1972},
publisher = {Prentice-Hall},
location = {Englewood Cliffs, NJ},
langid = {english},
}
@book{Simon1947,
keywords = {Simon},
author = {Herbert A. Simon},
title = {Administrative behavior},
date = {1947},
subtitle = {A study of decision-making processes in administrative organization},
edition = {1\textsuperscript{st} ed.},
publisher = {The Macmillan Company},
location = {New York},
langid = {english},
}
@article{Simon1952,
keywords = {Simon},
author = {Herbert A. Simon},
title = {On the definition of the causal relation},
journaltitle = {Journal of Philosophy},
date = {1952},
volume = {49},
month = {July 31},
pages = {517-528},
addendum = {Reimpresso em \textcite[50--61]{Simon1957}},
langid = {english},
}
@book{Simon1957,
keywords = {Simon},
author = {Herbert A. Simon},
title = {Models of man, social and rational},
date = {1957},
subtitle = {Mathematical essays on rational human behavior in a social setting},
publisher = {John Wiley and Sons},
location = {New York},
langid = {english},
}
@inbook{Simon1953a,
keywords = {Simon},
author = {Herbert A. Simon},
title = {Causal ordering and identifiability},
booktitle = {Studies in econometric method},
date = {1953},
editor = {W. C. Hood and J. C. Koopmas},
publisher = {Wiley},
location = {New York},
addendum = {Reimpresso em \textcite[10--36]{Simon1957}},
langid = {english},
}
@article{Simon1953b,
keywords = {Simon},
author = {Herbert A. Simon},
title = {Notes on the observation and measurement of political power},
journaltitle = {Journal of Politics},
date = {1953},
volume = {15},
month = {November},
pages = {500--516},
addendum = {Reimpresso em \textcite[62--78]{Simon1957}},
langid = {english},
options = {repeatauthor},
}
@article{Simon1954a,
keywords = {Simon},
author = {Herbert A. Simon},
title = {Spurious correlation: a causal interpretation},
journaltitle = {Journal of the American Statistical Association},
date = {1954},
volume = {49},
month = {September},
pages = {467--479},
addendum = {Reimpresso em \textcite[37--49]{Simon1957}},
langid = {english},
}
\end{filecontents*}
\addbibresource{MWE.bib}
\newtoggle{repeatauthor}%
\DeclareEntryOption[boolean]{repeatauthor}[true]{%
\settoggle{repeatauthor}{#1}}%
\makeatletter
\renewbibmacro*{bbx:dashcheck}[2]{%
\ifboolexpr{
test {\iffieldequals{fullhash}{\bbx@lasthash}}
and
not test \iffirstonpage
and
not test {\iftoggle{repeatauthor}}
and
(
not bool {bbx@inset}
or
test {\iffieldequalstr{entrysetcount}{1}}
)
}
{#1}
{#2}}
\makeatother
\begin{document}
\nocite{*}
\chapter*{Referências\markboth{\MakeUppercase{Referências}}{}}
\printbibliography[heading=subbibintoc,title={Trabalhos de Herbert A.\ Simon}, keyword=Simon]
\end{document}
我声明了一个新的repeatauthor
条目选项,并重新定义bbx:dashcheck
以考虑是否应显示破折号。然后,您可以options = {repeatauthor}
在特定条目中使用它来重复作者,而不是显示破折号。这不是一个很好的解决方案,因为您必须检查每一页以查看问题是否发生,然后将选项添加到相关条目……然后,如果您添加新条目,您将不得不再次检查每一页,因为它可能会改变整个内容。但就目前而言,这总比没有好。