我最近停止使用 @inbook 来让它做 @incollection 应该做的事情。但是,现在我遇到的问题是它不会显示每个编辑器——由于此时我的参考书目序言相当大,我不确定我是否可以自己更改它,并解决与“et al.”有关的其他问题。到目前为止,我的尝试都失败了……所以这是 MWE:
\documentclass[paper=a4,12pt,numbers=endperiod]{scrartcl}
\usepackage[backend=biber,style=authoryear]{biblatex}
\addbibresource{TransAlph.bib}
\DefineBibliographyStrings{english}{references={Bibliography}}
\DeclareFieldFormat{editortype}{\mkbibparens{#1}}
\renewbibmacro*{byeditor+others}{%
\ifnameundef{editor}
{}
{\printnames[byeditor]{editor}%
\setunit{\addspace}%
\usebibmacro{byeditor+othersstrg}%
\clearname{editor}%
\newunit}%
\usebibmacro{byeditorx}%
\usebibmacro{bytranslator+others}}
\renewbibmacro*{byeditor+othersstrg}{\usebibmacro{editor+othersstrg}}
\renewbibmacro*{bytranslator+othersstrg}{\usebibmacro{translator+othersstrg}}
\renewbibmacro*{bytypestrg}[2]{%
\iffieldundef{#1type}
{\bibstring{#2}}
{\ifbibxstring{\thefield{#1type}}
{\bibstring{\thefield{#1type}}}
{\printtext{\thefield{#1type}}}}}
\renewcommand*{\multinamedelim}{/}
\renewcommand*{\finalnamedelim}{\multinamedelim}
\renewcommand*{\labelnamepunct}{\addcolon\space}
\renewcommand*{\postnotedelim}{\addcolon\space}
\DeclareFieldFormat{postnote}{#1}
\DeclareFieldFormat{multipostnote}{#1}
\DeclareFieldFormat{superedition}{\textsuperscript{#1}}
\providecommand*{\iflabeldateisdate}{%
\ifboolexpr{%
not test {\iffieldundef{labeldatesource}}
and
(test {\iffieldequalstr{labeldatesource}{}}
or test {\iffieldequalstr{labeldatesource}{year}})}}
\renewbibmacro*{date+extrayear}{%
\iffieldundef{labelyear}
{}
{\usebibmacro{origdate}%
\setunit*{\addspace}%
\printtext[parens]{%
\iflabeldateisdate
{\iffieldnum{edition}
{\printfield[superedition]{edition}%
\global\clearfield{edition}}
{}%
\printdateextra}
{\printlabeldateextra}}}}
\newbibmacro*{origdate}{%
\iffieldundef{origyear}
{}
{\printtext[brackets]{\printorigdate}}}
\renewcommand*{\bibpagespunct}{\addcolon\space}
\DeclareFieldFormat{pages}{#1}
\DeclareNameAlias{sortname}{family-given}
\DeclareFieldFormat[article,periodical]{number}{\mkbibparens{#1}}
\renewbibmacro*{volume+number+eid}{%
\printfield{volume}%
%\setunit*{\adddot}%<- comment this
\printfield{number}%
\setunit{\addcomma\space}%
\printfield{eid}}
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@Collection{dahmen1991a,
Title = {Zum Stand der Ko\-di\-fi\-zie\-rung ro\-ma\-ni\-scher Klein\-spra\-chen. Ro\-ma\-nis\-ti\-sches Kol\-lo\-qui\-um\,V \textup{(Tü\-bin\-ger Bei\-trä\-ge zur Lin\-gu\-is\-tik\,348)}},
Editor = {Wolf\-gang Dah\-men and Ot\-to Gsell and Gün\-ter Hol\-tus and Jo\-han\-nes Kra\-mer and Mi\-cha\-el Met\-zel\-tin and Ot\-to Win\-kel\-mann},
Keywords = {sek},
Location = {Tü\-bin\-gen},
Publisher = {Gun\-ter Narr},
Year = {1991}
}
@Incollection{kaislaniemi2017a,
Title = {`A Gra\-phic Sys\-tem which Leads its own Lin\-gu\-is\-tic Life?' Epis\-to\-la\-ry Spel\-ling in En\-glish, 1400--1800},
Author = {Kai\-sla\-nie\-mi, Sa\-mu\-li and Evans, Mel and Ju\-vo\-nen, Teo and Sai\-rio, An\-ni},
Booktitle = {Säi\-ly/Nur\-mi/Pa\-lan\-der-Col\-lin/Au\-er, (eds.) (2017)},
Keywords = {sek},
Pages = {187--213},
Year = {2017}
}
\end{filecontents}
\addbibresource{\jobname.bib}
\begin{document}
Example sentence \textcite[cf.][3--6]{kaislaniemi2017a}.
Another example sentence \parencite[][39]{dahmen1991a}.
\printbibliography
\end{document}
太感谢了!
编辑:我希望输出是:
Dahmen, Wolfgang / Gsell, Otto / Holtus, Günter / Kramer, Johannes / Metzeltin, Michael / Winkelmann, Otto, (eds.) (1991):关于罗马小语言发音标准的立场。 Romanistisches Kolloquium V(图宾根语言学论文 348)。图宾根:Gunter Narr。
Kaislaniemi, Samuli / Evans, Mel / Juvonen, Teo / Sairio, Anni (2017):“‘一种引领其自身语言生命的图形系统?’1400-1800 年英语中的书信体拼写”。收录于:Säily / Nurmi / Palander-Collin / Auer,(编辑)(2017):187-213。
其中包含草书版的“Zum Stand der Kodifizierung romanischer Kleinsprachen. Romanistisches Kolloquium V”和“Säily/Nurmi/Palander-Collin/Auer, (eds.) (2017)”。
答案1
除了遵循@moewe的建议并maxbibnames=20
在加载时添加选项(或其他适当选择的大数字)之外biblatex
,您还应该更改
\renewcommand*{\multinamedelim}{/}
要么
\renewcommand*{\multinamedelim}{\slash}
或者更好的是,
\DeclareDelimFormat{multinamedelim}{\slash}
这将允许在符号后换行/
。正如@moewe 在评论中指出的那样,第二个选项更可取,因为它允许对名称分隔符进行上下文相关的更改。
如果您需要微调连字模式,请使用\hyphenation
序言中的命令;不要用\-
随意的连字点弄乱书目条目。在下面的例子中,我曾经\hyphenation{klein-spra-chen tü-bin-gen}
确保 LaTeX 会对两个单词执行正确的连字操作。
还请考虑加载csquotes
包并使用其\enquote
宏来“引用”材料,比如标题字符串的第一部分,以智能单引号字符表示。
最后但同样重要的是,你应该(更多地)齐心协力,在 bib 条目中提供正确且可用的信息。当然,这是我将设置有问题的两个条目:
@Collection{dahmen1991a,
Title = {Zum Stand der Kodifizierung romanischer Kleinsprachen. Romanistisches Kolloquium\,V},
series = {Tübinger Beiträge zur Linguistik},
number = {348},
Editor = {Wolfgang Dahmen and Otto Gsell and Günter Holtus and Johannes Kramer and Michael Metzeltin and Otto Winkelmann},
Keywords = {sek},
Location = {Tübingen},
Publisher = {Gunter Narr},
Year = {1991},
}
@Incollection{kaislaniemi2017a,
Title = {\enquote{A Graphic System which Leads its own Linguistic Life?} Epistolary Spelling in English, 1400--1800},
Author = {Kaislaniemi, Samuli and Evans, Mel and Juvonen, Teo and Sairio, Anni},
Editor = {Tanja Säily and Arja Nurmi and Minna Palander-Collin and Anita Auer},
Booktitle = {Exploring Future Paths for Historical Sociolinguistics},
Series = {Advances in Historical Sociolinguistics},
Number = 7,
Keywords = {sek},
Pages = {187--213},
Year = {2017},
Location = {Amsterdam},
Publisher = {John Benjamins},
}
请注意,我在两个条目中都添加了字段series
和number
(根据需要填充数据),并且我认真修改了该字段并为该条目editor
添加了一个全新的字段。booktitle
kaislaniemi2017a