在引用中指定来源内的前缀

在引用中指定来源内的前缀

我有一个问题。我想要一个带有前缀标志的间接引用。是否可以设计一个新的\cite命令,按如下方式输出源[vgl. 1]。如您所见,添加了。这就是我写示例vgl.时一直想要的。有这样的可能性吗?\citewp

我拥有的


Let's cite! The Einstein's journal paper [1] (~\cite) are physics related items. 

我想要的是

Let's cite! The Einstein's journal paper [vgl. 1] (~\citewp) are physics related items.
\documentclass{article}
\usepackage[utf8]{inputenc}
\RequirePackage{filecontents}
\begin{filecontents*}{\bibliography.bib}
@article{einstein,
  author  = {Albert Einstein},
  title   = {{Zur Elektrodynamik bewegter Körper}. ({German}) 
             [{On} the electrodynamics of moving bodies]},
  journal = {Annalen der Physik},
  volume  = {322},
  number  = {10},
  pages   = {891--921},
  year    = {1905},
  DOI     = {http://dx.doi.org/10.1002/andp.19053221004},
}
@online{ApoG,
  Address = {03.08.2013},
  Edition = {15.10.1980},
  Publisher = {juris GmbH},
  Title = {ApoG - Gesetz {\"u}ber das Apothekenwesen},
  Url = {www.juris.de/purl/gesetze/_ges/ApoG},
  Year = {1980},
}
\end{filecontents*}
\usepackage[ngerman]{babel}
\usepackage[%
backend=bibtex      % biber or bibtex
%,style=authoryear    % Alphabeticalsch
,style=numeric-comp  % numerical-compressed
,sorting=none        % no sorting
,sortcites=true      % some other example options ...
,block=none
,indexing=false
,citereset=none
,isbn=true
,url=true
,doi=true            % prints doi
,natbib=true         % if you need natbib functions
]{biblatex}
\DefineBibliographyStrings{ngerman}{%
    urlseen = {aufgerufen am}
}
\addbibresource{bibliography.bib}  % better than \bibliography

\begin{document}
Let's cite! The Einstein's journal paper ~\cite{einstein} are physics related items. 

\printbibliography[title=Literaturverzeichnis]

\end{document}

答案1

biblatex的 cite 命令最多有两个可选参数

\autocite{<keys>}
\autocite[<post>]{<keys>}
\autocite[<pre>][<post>]{<keys>}

如果只给出了一个可选参数,则将其解释为参数<postnote>。如果给出了两个可选参数,则第一个是<prenote>,第二个是<postnote>

你可以给出一个<prenote>没有一个<postnote>如果你<postnote>留空

\autocite[<pre>][]{<keys>}
  • 通常<postnote>显示在引用标签后,并且传统上包含页面范围。
  • 显示<prenote>在引用标签之前,通常包含“cf.”、“vgl.”等说明符。

因此可以

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}
\usepackage[
  backend=bibtex,
  style=numeric-comp,
  sorting=none,
]{biblatex}


\addbibresource{biblatex-examples.bib}

\begin{document}
Lorem \autocite[vgl.][]{sigfridsson}

Ipsum \autocite[vgl.][380]{sigfridsson}

\printbibliography[title=Literaturverzeichnis]
\end{document}

Lorem [vgl. 1] 余数 [vgl. 1,第 380 页]

我只是坚持使用参数<prenote>,但如果你坚持定义一个新命令,你可以尝试以下命令,它将“注入”一个<prenote>等于“vgl。”到你的\cite

然后,您可以使用\autocitewp不带参数的 ,并将获得“vgl。”。您仍然可以使用参数<prenote>(这将覆盖“vgl。”)和普通的<postnote>

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}
\usepackage[
  backend=bibtex,
  style=numeric-comp,
  sorting=none,
]{biblatex}

\makeatletter
\newrobustcmd*{\autocitewp}{%
  \AtNextCite{\def\abx@field@prenote{vgl.}}%
  \autocite}
\makeatother

\addbibresource{biblatex-examples.bib}

\begin{document}
Lorem \autocitewp{sigfridsson}

ipsum \autocitewp[380]{sigfridsson}

dolor \autocitewp[cf.][381]{sigfridsson}

\printbibliography[title=Literaturverzeichnis]
\end{document}

Lorem [vgl. 1] ipsum [vgl. 1,S. 380] 痛苦[参见1,第 381 页]

答案2

您可以像这样定义一个新命令\newcommand{\citewp}[1]{\cite[vgl.][]{#1}}::

\documentclass{article}
\RequirePackage{filecontents}
\begin{filecontents*}{\jobname.bib}
@article{einstein,
  author  = {Albert Einstein},
  title   = {{Zur Elektrodynamik bewegter Körper}. ({German}) 
             [{On} the electrodynamics of moving bodies]},
  journal = {Annalen der Physik},
  volume  = {322},
  number  = {10},
  pages   = {891--921},
  year    = {1905},
  DOI     = {http://dx.doi.org/10.1002/andp.19053221004},
}
@online{ApoG,
  Address = {03.08.2013},
  Edition = {15.10.1980},
  Publisher = {juris GmbH},
  Title = {ApoG - Gesetz {\"u}ber das Apothekenwesen},
  Url = {www.juris.de/purl/gesetze/_ges/ApoG},
  Year = {1980},
}
\end{filecontents*}
\usepackage[ngerman]{babel}
\usepackage[%
backend=bibtex      % biber or bibtex
%,style=authoryear    % Alphabeticalsch
,style=numeric-comp  % numerical-compressed
,sorting=none        % no sorting
,sortcites=true      % some other example options ...
,block=none
,indexing=false
,citereset=none
,isbn=true
,url=true
,doi=true            % prints doi
,natbib=true         % if you need natbib functions
]{biblatex}
\DefineBibliographyStrings{ngerman}{%
    urlseen = {aufgerufen am}
}
\addbibresource{\jobname.bib}  % better than \bibliography
\newcommand{\citewp}[1]{\cite[vgl.][]{#1}}

\begin{document}

Let's cite! The Einstein's journal paper ~\citewp{einstein} are physics related items.
\printbibliography[title=Literaturverzeichnis]

\end{document}

在此处输入图片描述

相关内容