我想在我目前正在起草的文本中提及一个学术期刊的名称。使用,我可以将文章的名称打印到最终文本中。和\citetitle{elmo2022}
等命令也是如此,它们分别将打印:\citeauthor{elmo2022}
\citeyear{elmo2022}
圣埃尔莫
2022
但是,当我尝试执行类似的命令以将日志名称置于最前面时,出现了错误。这可能吗?我希望很快收到您的回复,并让我知道这是否与您的堆栈约定格式不正确。为了清楚起见,我想做类似的事情\citejournal{elmo2022}
并得到类似的东西:芝麻街理论杂志
答案1
biblatex
如果您按照标签建议的方式使用,则可以定义一个\citejournal
with \DeclareCiteCommand
,如下所示(该命令以 的标准定义为模型\citeauthor
)。如果这是一次性操作,您不需要新命令,则可以使用\citefield{<key>}{<field>}
。
\documentclass[british]{article}
\usepackage[T1]{fontenc}
\usepackage{babel}
\usepackage{csquotes}
\usepackage[backend=biber, style=authoryear]{biblatex}
\DeclareCiteCommand{\citejournal}
{\boolfalse{citetracker}%
\boolfalse{pagetracker}%
\usebibmacro{prenote}}
{\printfield{journaltitle}}
{\multicitedelim}
{\usebibmacro{postnote}}
\begin{filecontents}{\jobname.bib}
@article{elk,
author = {Anne Elk},
title = {A Theory on Brontosauruses},
year = {1972},
journal = {Journal of Paleontology},
volume = {12},
pages = {37-37},
}
\end{filecontents}
\addbibresource{\jobname.bib}
\addbibresource{biblatex-examples.bib}
\begin{document}
Lorem \autocite{sigfridsson,elk}
\citejournal{sigfridsson}
\citejournal{elk}
\citefield{sigfridsson}{journaltitle}
\citefield{elk}{journaltitle}
\printbibliography
\end{document}
如果您正在使用natbib
或其他基于 BibTeX 的解决方案,期刊通常不会出现在引文中。必须通过类似usebib
包的技巧来提供。
\documentclass[british]{article}
\usepackage[T1]{fontenc}
\usepackage{babel}
\usepackage{natbib}
\usepackage{usebib}
\newbibfield{journal}
\bibinput{\jobname}
\begin{filecontents}[overwrite]{\jobname.bib}
@article{elk,
author = {Anne Elk},
title = {A Theory on Brontosauruses},
year = {1972},
journal = {Journal of Paleontology},
volume = {12},
pages = {37-37},
}
\end{filecontents}
\begin{document}
Lorem \cite{elk}
\usebibentry{elk}{journal}
\bibliographystyle{plainnat}
\bibliography{\jobname}
\end{document}