我仍在学习 LaTeX,我想@incollection
从以下方面编辑我的:
Fairclough, Norman e Wodak, Ruth (1997). “批判性话语分析:概述”。在:话语研究:多学科导论。由 TA van Dijk 护理。伦敦:Sage:67-97。
变成这样:
Fairclough, Norman e Wodak, Ruth (1997). “批判性话语分析:概述”。TA van Dijk (ed.),话语研究:多学科导论.伦敦:Sage,67-97。
换句话说:
我必须将 Publisher 和 Pages 之间的分隔符从冒号更改为逗号
我必须改变编辑的位置
我必须从“In:”中删除冒号
@incollection{fairclough.wodak-critical.discourse.analysis.overview, author = "Norman Fairclough 和 Ruth Wodak", title = "批判性话语分析:概述", booktitle = "话语研究:多学科导论", pages = "67-97", publisher = "Sage", location = "伦敦", year = "1997", editor = "TA van Dijk",
我的序言如下(我的参考书目没有使用特定的风格):
\documentclass[a4paper,12pt,twoside]{report}
\usepackage[utf8]{inputenc}
\usepackage{fancyhdr}
\usepackage{kantlipsum}
\usepackage{lipsum}
\usepackage{setspace}
\usepackage{xpatch}
\usepackage{multicol}
\usepackage{tabularray}
\usepackage[italian]{babel}
\selectlanguage{italian}
\usepackage{indentfirst}
\usepackage{etoolbox}
\usepackage[autostyle]{csquotes} %% Pacchetto per gestire l'uso delle virgolette
\setquotestyle{english}
\MakeOuterQuote{"}
%=========================================% BIBLIOGRAFIA E CITAZIONI
\usepackage[backend=biber, natbib=true, citestyle=authoryear-icomp, bibstyle=authoryear-icomp, ibidpage=true, dashed=true, pagetracker=false, maxbibnames=4, maxcitenames=2, autolang=other]{biblatex}
\addbibresource{8.bibliografia.bib} %% File .bib contenente i dati bibliografici
我还想知道如何本地化单身的条目(仅在参考书目中,而不在引用中),以便使用“and”而不是“e”(这是由\usepackage[italian]{babel}
and定义的翻译\selectlanguage{italian}
)。
答案1
为了实现所需的参考书目格式,您需要对现有的 BibLaTeX 设置进行一些修改并为@incollection
条目类型创建自定义格式。
这里有一种方法可以实现这一点(不是最优雅的,但很直接,并且相对容易进一步修改),通过将以下内容添加到您的序言中(在您当前的所有加载和配置之后):
% Custom settings to modify incollection entry
\DeclareFieldFormat[incollection]{title}{\mkbibquote{#1\isdot}}
\DeclareDelimFormat[incollection]{nameyeardelim}{\addcomma\space}
\DeclareDelimFormat[between:unit,pair:unit]{nameyeardelim}{\addcomma\space}
% Custom driver
\DeclareBibliographyDriver{incollection}{%
\usebibmacro{bibindex}%
\usebibmacro{begentry}%
\usebibmacro{author}%
\setunit{\printdelim{nameyeardelim}}\newblock
\usebibmacro{title}%
\setunit{\printdelim{nameyeardelim}}\newblock
\printtext{In }%
\usebibmacro{editor+others}%
\setunit{\addspace}\newblock
\printfield{booktitle}%
\setunit{\addcomma\space}\newblock
\printlist{location}%
\setunit{\addcomma\space}\newblock
\printfield{publisher}%
\setunit{\addcomma\space}\newblock
\printfield{pages}%
\usebibmacro{finentry}
}
我提供了这个修订版 MWE 的完整示例,结合了上述内容背页。
关于您的另一个问题:
在您的bib
文件中,您可以添加langid
字段来指定该特定条目的语言。要使用“and”而不是“e”,您需要向每个适用的 BibLaTeX 条目添加一个附加字段,设置langid
为english
:
langid = {english}
您当前的序言(即 的加载biblatex
)已经有autolang=other
,它应该负责应用语言规范。
根据您稍后的评论,您可以将其修改为以下内容,以更接近您想要的输出。我现在还合并了上述修订(将“e”更改为“and”)。此外,我进一步概括了驱动程序,以确保它在面对更复杂的引用时更加强大。我保留了上述先前的修订,作为您如何学习自己修改它的一个例子。
% Load biblatex without invalid/interferring style options
\usepackage[backend=biber, natbib=true, pagetracker=false, maxbibnames=4, maxcitenames=2, autolang=other]{biblatex}
% Exactly match: <Author> (<Year>). "<Title>". In <Editor> (ed.), <BookTitle>. <Location>: <Publisher>, <Pages>.
% Custom settings to modify incollection entry
\DeclareFieldFormat[incollection]{title}{\mkbibquote{#1\isdot}}
\renewbibmacro*{byeditor+others}{%
\ifnameundef{editor}
{}
{\printnames[byeditor]{editor}%
\setunit{\addspace}%
\printtext{(ed.)}%
\clearname{editor}%
}%
\usebibmacro{byeditorx}%
\usebibmacro{bytranslator+others}%
}
\renewbibmacro*{publisher+location+date}{%
\printlist{location}%
\setunit{\addcolon\space}%
\printlist{publisher}%
\newunit}
\DeclareBibliographyDriver{incollection}{%
\usebibmacro{bibindex}%
\usebibmacro{begentry}%
\usebibmacro{author}%
\setunit{\addspace}\newblock
\printtext[parens]{\usebibmacro{date}}\newunit\newblock
\usebibmacro{title}%
\newunit\newblock
\printtext{\bibstring{in}}
\usebibmacro{byeditor+others}%
\setunit{}%
\printtext{,}\newblock%
\setunit{\addspace}\newblock
\usebibmacro{maintitle+booktitle}%
\newunit\newblock
\usebibmacro{publisher+location+date}%
\setunit{\addcomma\space}\newblock
\printfield{pages}%
\newunit\newblock
\iftoggle{bbx:isbn}{\printfield{isbn}}{}%
\newunit\newblock
\usebibmacro{doi+eprint+url}%
\newunit\newblock
\usebibmacro{addendum+pubstate}%
\setunit{\bibpagerefpunct}\newblock
\usebibmacro{pageref}%
\newunit\newblock
\usebibmacro{related}%
\usebibmacro{finentry}
}
我现在已经更新了背页文档以反映此修订后的代码,从而产生以下编译输出: