我正在寻找一种方法来让biblatex
命令将括号从普通括号更改为方括号(如果在括号内的一段文本内发出),但在这里或在和手册\autocite{}
中都找不到任何东西。biblatex
biblatex-chicago
考虑一下这个MWE:
% !TEX TS-program = xelatexmk
\documentclass{article}
\usepackage{filecontents}
\usepackage[authordate, backend=biber, parentracker=true, cmsdate=both]{biblatex-chicago}
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@article{test1,
author = {Antelope, Alfred},
year = {2010},
title = {A Title},
url = {www.url.com},
urldate = {2015-05-05},
journal = {Journal},
volume = {1},
number = {2},
pages = {3--15}
}
@article{test2,
author = {Bee, Ben},
year = {2011},
origyear = {1960},
title = {Best Title},
journal = {Journal},
volume = {1},
number = {2},
pages = {3--4}
}
\end{filecontents}
\addbibresource{\jobname.bib}
\begin{document}
Text (in parenthesis \autocite{test1})
Text (in parenthesis \autocite{test2})
\end{document}
它给了我:
文本(括号内 (Antelope 2010))
文本(括号内 (Bee [1960] 2011))
但我希望
文本(括号内 [Antelope 2010])
文本(括号内 [Bee (1960) 2011])
我原本以为它parentracker=true
会自动解决这个问题,但它似乎是有其他用途的?
答案1
biblatex
只能跟踪使用其命令设置的括号/圆括号,文字(
则不)
被跟踪。
使用\parentext
(或\mkbibparens
)代替文字(
和)
。
Text \parentext{in parenthesis \autocite{test1}}
Text \parentext{in parenthesis \autocite{test2}}
给出
文本(括号内[Antelope 2010])
文本(括号内[Bee (1960)2011])
你可以还使(
和处于活动状态,)
以便它们自动使用biblatex
和。但这可能会导致一些非常严重的麻烦,因为它使和处于活动状态。\bibopenparen
\bibcloseparen
(
)
我建议不要采取(
任何)
行动。
平均能量损失
\documentclass{article}
\usepackage[authordate, backend=biber, parentracker=true, cmsdate=both]{biblatex-chicago}
\addbibresource{biblatex-examples.bib}
\catcode`(=\active
\catcode`)=\active
\def({\bibopenparen}
\def){\bibclosebracket}
\begin{document}
Text (in parenthesis \autocite{sigfridsson})
Text (in parenthesis \autocite{kullback:reprint})
\end{document}