나는 레이블에 첫 번째 저자만 포함하여 저자연도 스타일로 참고문헌을 제작하라는 요청을 받았습니다. 야심 찬 라벨의 경우 연도에 문자가 추가됩니다. 이는 다음 코드를 사용하여 쉽게 생성할 수 있습니다.biblatex 및 biber를 사용하여 고정된 들여쓰기 및 저자 연도 레이블로 참고문헌 만들기):
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[british]{babel}
\usepackage{csquotes}
\usepackage[style=ext-authoryear, backend=biber, maxcitenames=1, uniquename=false, uniquelist=false, introcite=label, dashed=false]{biblatex}
\usepackage{filecontents}
\begin{filecontents*}{\jobname.bib}
@book{Shepard2001a,
author = {Shepard, Frank and Fisher, John},
year = {2001},
title = {Livestock management},
}
@book{Shepard2001b,
author = {Shepard, Frank and Farmer, Boris},
year = {2001},
title = {On food supplies},
}
\end{filecontents*}
\addbibresource{\jobname.bib} % if you’re using biblatex\addbibresource{biblatex-examples.bib}
\setlength{\bibitemsep}{0.5\baselineskip plus 0.5\baselineskip}
\setlength{\introcitewidth}{6em}
\begin{document}
\cite{Shepard2001a, Shepard2001b}
\printbibliography
\end{document}
보시다시피 ext-authoryear
from 을 biblatex-ext
사용 하고 있습니다 introcite=label
.
참고문헌 항목에서 연도에 추가된 문자를 제거해야 한다는 점을 제외하면 이는 좋습니다. 나는 '불쾌한' 편지를 빨간색 선으로 표시했습니다. 즉, 라벨에는 문자가 필요하지만 참고문헌 항목 자체에는 필요하지 않습니다. MWE 항목은 다음과 같습니다.
Shepard et al. 2001a
Shepard, Frank and Boris Farmer (2001), ...
나는 그것을 어디서 바꿔야 할지 알 수 없었다.
답변1
매크로 에서 다음 \printdateextra
으로 대체 :\printdate
data+extradate
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[british]{babel}
\usepackage{csquotes}
\usepackage[style=ext-authoryear, backend=biber, maxcitenames=1, uniquename=false, uniquelist=false, introcite=label, dashed=false]{biblatex}
\usepackage{filecontents}
\begin{filecontents*}{\jobname.bib}
@book{Shepard2001a,
author = {Shepard, Frank and Fisher, John},
year = {2001},
title = {Livestock management},
}
@book{Shepard2001b,
author = {Shepard, Frank and Farmer, Boris},
year = {2001},
title = {On food supplies},
}
\end{filecontents*}
\addbibresource{\jobname.bib} % if you’re using biblatex\addbibresource{biblatex-examples.bib}
\setlength{\bibitemsep}{0.5\baselineskip plus 0.5\baselineskip}
\setlength{\introcitewidth}{6em}
\makeatletter
\renewbibmacro*{date+extradate}{%
\iffieldundef{labelyear}
{}
{\printtext[\blx@delimcontext labeldate]{%
\iflabeldateisdate
{\printfield{issue}%
\setunit*{\addspace}%
\printdate}
{\printlabeldateextra}}}}%
\renewbibmacro*{bbx:ifmergeddate}{\iflabeldateisdate}%
\renewbibmacro*{issue+date}{%
\usebibmacro{bbx:ifmergeddate}
{}
{\printtext[issuedate]{%
\printfield{issue}%
\setunit*{\addspace}%
\printdate}}}
\makeatother
\begin{document}
\cite{Shepard2001a, Shepard2001b}
\printbibliography
\end{document}
답변2
날짜 인쇄용 코드는 선택한 mergedate
설정에 따라 다릅니다. 사전 설정은 mergedate=true
와 동일하며 mergedate=compact
다음과 같이 수정 사항을 방지할 수 있습니다.
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[british]{babel}
\usepackage{csquotes}
\usepackage[style=ext-authoryear, backend=biber,
maxcitenames=1, uniquename=false, uniquelist=false,
introcite=label, dashed=false]{biblatex}
\setlength{\bibitemsep}{0.5\baselineskip plus 0.5\baselineskip}
\setlength{\introcitewidth}{6em}
\makeatletter
\renewbibmacro*{date+extradate}{%
\iffieldundef{labelyear}
{}
{\printtext[\blx@delimcontext labeldate]{%
\iflabeldateisdate
{\printdate}
{\printlabeldate}}}}
\makeatother
\usepackage{filecontents}
\begin{filecontents*}{\jobname.bib}
@book{Shepard2001a,
author = {Shepard, Frank and Fisher, John},
year = {2001},
title = {Livestock management},
}
@book{Shepard2001b,
author = {Shepard, Frank and Farmer, Boris},
year = {2001},
title = {On food supplies},
}
\end{filecontents*}
\addbibresource{\jobname.bib}
\begin{document}
\cite{Shepard2001a, Shepard2001b}
\printbibliography
\end{document}
다른 답변코드를 mergedate=maximum
기초로 사용하고 재정의했으며 bbx:ifmergeddate
필요 issue+date
하지 않았음에도 불구하고 마찬가지였습니다. 여기 코드에서는 false인 extradate
경우의 정보 도 제거했습니다 \iflabeldateisdate
.
authoryear
출력이 다른 또 다른 옵션은 인용과 참고 문헌을 결합하는 것입니다 authortitle
.
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[british]{babel}
\usepackage{csquotes}
\usepackage[backend=biber, bibstyle=ext-authortitle, citestyle=ext-authoryear,
sorting=nyt,
maxcitenames=1, uniquename=false, uniquelist=false,
introcite=label, dashed=false]{biblatex}
\setlength{\bibitemsep}{0.5\baselineskip plus 0.5\baselineskip}
\setlength{\introcitewidth}{6em}
\usepackage{filecontents}
\begin{filecontents*}{\jobname.bib}
@book{Shepard2001a,
author = {Shepard, Frank and Fisher, John},
year = {2001},
title = {Livestock management},
}
@book{Shepard2001b,
author = {Shepard, Frank and Farmer, Boris},
year = {2001},
title = {On food supplies},
}
\end{filecontents*}
\addbibresource{\jobname.bib}
\begin{document}
\cite{Shepard2001a, Shepard2001b}
\printbibliography
\end{document}