我正在尝试引用 .bib 文件中指定书籍的章节。我该如何更改自己的引用样式,将默认的“第 10 页”更改为“第 10 章”(我只需引用章节)?
梅威瑟:
\documentclass[
fleqn,
fontsize=11pt,
paper=a4,
bibliography=totoc,listof=totoc,BCOR=25mm,
english,
DIV = 12
]{scrreprt}
\usepackage[english]{babel}
\usepackage[style=alphabetic, autocite=footnote]{biblatex}
\usepackage[babel]{csquotes}
\DeclareCiteCommand{\mycite}[\mkbibfootnote]
{\usebibmacro{prenote}}
{\usedriver
{\DeclareNameAlias{sortname}{default}}
{\thefield{entrytype}}
\printunit{\addspace}
\printtext[labelalphawidth]{%
\printfield{labelprefix}%
\printfield{labelalpha}%
\printfield{extraalpha}}%
}
{\multicitedelim}
{\usebibmacro{postnote}}
\usepackage{filecontents}
\begin{filecontents}{mybib.bib}
@online{test,
url = {http://test.test},
urldate = {2018-12-15},
title = {Test Bib},
label = {TB}
}
\end{filecontents}
\bibliography{mybib}
\begin{document}
This is the first example\mycite[10]{test}.\\
\printbibliography
\end{document}
我使用 LuaLaTex 进行编译,
最好的,皮质
答案1
该pagination
字段可用于更改条目的分页类型。您可以尝试
@online{test,
url = {http://test.test},
urldate = {2018-12-15},
title = {Test Bib},
label = {TB},
pagination = {chapter},
}
获得
如果\mycite[10]{test}
您想一直test
(或至少大部分时间)引用章节。
对于一次性更改,你可以直接写
\cite[chap.~10]{sigfridsson}
如果你想改变默认分页从page
到chapter
,您可以重新定义内部命令\blx@imc@mkpageprefix
\makeatletter
\renewrobustcmd*{\blx@imc@mkpageprefix}[1][pagination]{%
\begingroup
\def\blx@tempa{\blx@mkpageprefix{chapter}}%
\iffieldundef{#1}
{}
{\iffieldequalstr{#1}{none}
{\def\blx@tempa{\blx@mkpageprefix@i}}
{\iffieldbibstring{#1}
{\edef\blx@tempa{\blx@mkpageprefix{\thefield{#1}}}}
{\blx@warning@entry{%
Unknown pagination type '\strfield{#1}'}}}}%
\@ifnextchar[%]
{\blx@tempa}
{\blx@tempa[\@firstofone]}}
\makeatother
或者设置 Biber 源映射以添加pagination = {chapter},
到所有没有明确字段的pagination
条目。
\DeclareSourcemap{
\maps[datatype=bibtex, overwrite=false]{
\map{
\step[fieldset=pagination, fieldvalue={chapter}]
}
}
}
有一个类似的字段,称为参考书目中的和字段bookpagination
的前缀/后缀。pages
pagetotal