问题:我希望 anumeric
或numeric-comp
style biblatex 的引用编号以斜体显示,但不要使用括号。到目前为止,我的努力都失败了。如果可能的话,我不希望对参考书目条目进行任何修改。
我已尝试过:我尝试修改 MWEB 中的代码,如下所示:
\DeclareCiteCommand{\cite}[\mkbibparens\mkbibemph]
和
\DeclareCiteCommand{\cite}[\mkbibemph\mkbibparens]
这两种方法都使引用编号出现在括号外。我也尝试了以下方法贡萨洛·梅迪纳但没有任何效果(我甚至不确定 biblatex 是否会有效果)。
目前的情况:
我希望它看起来如何:
我的眼光可能不是最好的,但我相信引用编号括起来的括号是正常的,而不是斜体。
移动网络:
\documentclass{article}
\usepackage[backend=biber,style=numeric]{biblatex}
\addbibresource{biblatex-examples.bib}
% Change in-text citations to round brackets - moewe: https://tex.stackexchange.com/a/341043/245306
\DeclareCiteCommand{\cite}[\mkbibparens]
{\usebibmacro{prenote}}
{\usebibmacro{citeindex}%
\usebibmacro{cite}}
{\multicitedelim}
{\usebibmacro{postnote}}
\DeclareMultiCiteCommand{\cites}[\mkbibparens]{\cite}{\multicitedelim}
\begin{document}
\cite{sigfridsson}
\printbibliography
\end{document}
我正在编译:
% arara: pdflatex
% arara: biber
% arara: pdflatex
答案1
您快完成了。包装器命令是执行此操作的好主意,但您需要确保您在此处给出的命令吸收了一个参数。\mkbibparens\mkbibemph
不会这样做,因为它本质上会扩展为\mkbibparens{\mkbibemph}
。
\documentclass{article}
\usepackage[backend=biber,style=numeric]{biblatex}
\newrobustcmd*{\mkbibparensitalic}[1]{%
\mkbibparens{\mkbibitalic{#1}}}
\DeclareCiteCommand{\cite}[\mkbibparensitalic]
{\usebibmacro{prenote}}
{\usebibmacro{citeindex}%
\usebibmacro{cite}}
{\multicitedelim}
{\usebibmacro{postnote}}
\DeclareMultiCiteCommand{\cites}[\mkbibparensitalic]{\cite}{\multicitedelim}
\addbibresource{biblatex-examples.bib}
\begin{document}
\cite{sigfridsson}
\cites{sigfridsson}{nussbaum}
\printbibliography
\end{document}
相同的策略可用于大多数风格,但如果您切换风格,则可能需要确保\cite
此处的定义与您的风格兼容。
具体来说,numeric-comp
代码应该看起来像
\documentclass{article}
\usepackage[backend=biber,style=numeric-comp]{biblatex}
\newrobustcmd*{\mkbibparensitalic}[1]{%
\mkbibparens{\mkbibitalic{#1}}}
\DeclareCiteCommand{\cite}[\mkbibparensitalic]
{\usebibmacro{cite:init}%
\usebibmacro{prenote}}
{\usebibmacro{citeindex}%
\usebibmacro{cite:comp}}
{}
{\usebibmacro{cite:dump}%
\usebibmacro{postnote}}
\DeclareMultiCiteCommand{\cites}[\mkbibparensitalic]{\cite}{\multicitedelim}
\addbibresource{biblatex-examples.bib}
\begin{document}
\cite{sigfridsson}
\cites{sigfridsson,nussbaum,worman}
\printbibliography
\end{document}