我最喜歡使用的引用樣式biblatex
是numeric-comp
帶有autocite=superscript
選項的樣式。然而,有時我需要引用文本中的特定參考,因此想切換到類似authoryear
本例的內容。
使用\textcite
只是否定上標選項。是否可以寫一個新函數來允許我混合兩種引用樣式?
微量元素:
\documentclass{report}
\begin{filecontents}{example.bib}
@article {Example_article,
AUTHOR = {Author, A. B.},
TITLE = {A example paper},
JOURNAL = {Example journal},
VOLUME = {1},
YEAR = {2018},
NUMBER = {1},
PAGES = {1-100}}
\end{filecontents}
\usepackage[style=numeric-comp,
autocite=superscript,
backend=biber
]{biblatex}
\addbibresource{example.bib}
\begin{document}
I normally cite like this \autocite{Example_article} which is great but sometimes I want to do this \textcite{Example_article} but it doesn't seem to to work.
\end{document}
這會產生:
我通常會像這樣引用1,這很棒,但有時我想做這個作者 [1] 但它似乎不起作用。
當我想要的是:
我通常會像這樣引用1,這很棒,但有時我想做這個作者(2018),但它似乎不起作用。
最好只有一位作者等。當有多位作者時,會列出(年份)。
答案1
一般來說,透過定義一個新命令\DeclareCiteCommand
而不是將多個命令集中\cite...
在一個\newcommand
.雖然您可能看不到特定用例的好處,但避免壞習慣是個好主意。這種\newcommand
方法可能會出錯,特別是在有前註和後注的情況下,或者如果您想同時引用多個來源。
\documentclass{report}
\usepackage[style=numeric-comp,
minbibnames=3,
maxbibnames=5,
maxcitenames=2,
mincitenames=1,
autocite=superscript,
backend=biber,
labeldateparts,
]{biblatex}
\usepackage{hyperref}
\newbibmacro{aycite}{%
\printtext[bibhyperref]{%
\printnames{labelname}%
\setunit{\addspace}%
\printtext[parens]{%
\ifnumequal{\value{citecount}}{1}
{\usebibmacro{prenote}}
{}%
\printlabeldate
\setunit{\addsemicolon\space}%
\printtext{ref\adddot}%
\setunit{\addspace}%
\printfield{labelprefix}%
\printfield{labelnumber}%
\ifnumequal{\value{citecount}}{\value{citetotal}}
{\usebibmacro{postnote}}
{}}}}
\DeclareCiteCommand{\aycite}
{}
{\usebibmacro{citeindex}%
\usebibmacro{aycite}}
{\multicitedelim}
{}
\addbibresource{biblatex-examples.bib}
\begin{document}
How about this where \aycite{sigfridsson} discus a topic.
How about this where \aycite[cf.][1]{sigfridsson} discuss a topic.
How about this where \aycite{sigfridsson,worman} discuss a topic.
\printbibliography
\end{document}
答案2
我已經給出了一個我認為令人滿意的答案。在過程中,這兩個問題很有幫助:問題1和問題2
我還應該說我同意 @cfr 關於參考標籤的評論,但這不是我最關心的,因為我通常使用該hyperref
包,因此引用和參考文獻是連結的。我通常只是單擊引文,而不是將它們用作參考表中的鍵。因此,我已將標籤合併到我的解決方案中。
這就是我所擁有的:
\documentclass{report}
\begin{filecontents}{example.bib}
@article {Example_article,
AUTHOR = {Author, A. B.},
TITLE = {A example paper},
JOURNAL = {Example journal},
VOLUME = {1},
YEAR = {2018},
NUMBER = {1},
PAGES = {1-100}}
\end{filecontents}
\usepackage[style=numeric-comp,
minbibnames=3,
maxbibnames=5,
maxcitenames=2,
mincitenames=1,
autocite=superscript,
backend=biber
]{biblatex}
\usepackage{hyperref}
\DeclareCiteCommand{\tabcite}
{\usebibmacro{cite:init}%
\usebibmacro{prenote}}
{\usebibmacro{citeindex}%
\usebibmacro{cite:comp}}
{}
{\usebibmacro{cite:dump}%
\usebibmacro{postnote}}
\addbibresource{example.bib}
\newcommand{\citelink}[2]{\hyperlink{cite.\therefsection @#1}{\citeauthor{#1} (\citeyear{#1}; ref. \tabcite{#1})}}
\begin{document}
How about this where \citelink{Example_article}{} discusses a topic.
\printbibliography
\end{document}
其產生:
作者(2018;參考文獻 1)討論一個主題怎麼樣?
它連結到適當的參考書目。