
와 Zotero 의 결합은 biblatex-chicago
서지에서 과도한 항목을 많이 생성합니다. 이 문제는 다음과 같이 preambule 주의 사항을 추가하여 해결할 수 있습니다.
\AtEveryBibitem{%
\ifentrytype{online}
{}
{\clearfield{urlyear}\clearfield{urlmonth}\clearfield{urlday}}}
(이전 질문에 대한 답변에 자세히 설명되어 있습니다.biblatex Chicago 작성자 날짜 스타일의 과도한 필드.)
이 솔루션은 제게는 효과적이었지만 이제는 \fullcite
명령을 사용하여 강의 계획서를 작성해야 합니다. 불행하게도 이 솔루션은 참고문헌 자체 외부의 전체 참고문헌 항목에 대한 문제를 해결하지 못합니다.
다음은 참고문헌이 포함된 코드입니다. 저자의 이름과 성을 올바른 순서로 얻으려면 다음 솔루션을 사용합니다.Biblatex-chicago: \fullcite는 이름과 성을 뒤집습니다.):
\begin{filecontents*}{database.bib}
@book{dalton_apartisan_2012,
title = {The Apartisan American: Dealignment and Changing Electoral Politics},
isbn = {9781452216942},
url = {http://books.google.com/books?id=eYkczUyX5wMC},
shorttitle = {The Apartisan American},
pagetotal = {241},
publisher = {{CQ} Press},
author = {Dalton, Russell J.},
urldate = {2014-04-03},
date = {2012-02-22},
langid = {english},
keywords = {Political Science / Political Process / Elections, Political Science / Public Policy / General}
}
\end{filecontents*}
\documentclass[11pt]{article}
\usepackage[hmargin=3cm,vmargin=3cm]{geometry}
\usepackage[onehalfspacing]{setspace}
\usepackage{amssymb,amsmath,amsthm}
\usepackage{booktabs,graphicx}
\usepackage{paralist}
\usepackage{cancel,soul}
\usepackage{enumitem}
\usepackage[authordate,backend=biber,bibencoding=utf8,bookpages=false,doi=only,isbn=false,footmarkoff]{biblatex-chicago}
\usepackage[colorlinks, pdfstartview={XYZ null null 1.25},bookmarksopen=true,bookmarksopenlevel=\maxdimen,citecolor={blue},urlcolor={blue}]{hyperref}
\addbibresource{database.bib}
\DeclareCiteCommand{\fullcite}
{\usebibmacro{prenote}}
{\usedriver
{}
{\thefield{entrytype}}}
{\multicitedelim}
{\usebibmacro{postnote}}
\AtEveryBibitem{%
\ifthenelse{\ifentrytype{article}\OR\ifentrytype{book}\OR\ifentrytype{collection}\OR\ifentrytype{incollection}\OR\ifentrytype{mvbook}\OR\ifentrytype{mvcollection}\OR\ifentrytype{mvincollection}}
{\clearfield{month}\clearfield{url}\clearfield{doi}\clearfield{urlyear}\clearfield{urlmonth}\clearfield{urlday}}}
\begin{document}
\begin{center}
{\huge Partisanship in Old, New and Non-Democracies}\\
\end{center}
\vspace{30pt}
\noindent\textbf{Instructor: } \hfill
\textbf{Time and Location:} TBA\\
\textbf{Contact:}
\hfill
\hfil \textbf{Office Hours:} TBA\\
\vspace{-20pt}
\subsection*{Partisanship in the United States}
\begin{enumerate}
\item \parencite{dalton_apartisan_2012}
\item \fullcite{dalton_apartisan_2012}
\end{enumerate}
\printbibliography[heading=bibintoc]
\end{document}
출력은 다음과 같습니다. 본문 전체 인용에 과도한 항목이 있음을 참고하세요(참고문헌에는 없음).
어떤 도움, 특히 접근 가능한 간단한 솔루션이라도 매우 높이 평가될 것입니다.
답변1
urldate
참고문헌과 인용을 독립적으로 제어하고 싶다면 \AtEveryBibitem
그렇게 \AtEveryCitekey
하는 것이 좋습니다.
\AtEveryBibitem
참고문헌의 모든 항목에 대해 작업을 수행하는 동시에 \AtEveryCitekey
인용된 모든 항목에 대해 작업을 수행합니다. (228~229페이지 참조)biblatex
선적 서류 비치).
title
따라서 인용에서 유일한 것을 제거하려면 인용에서는 무시 \AtEveryCitekey{\clearfield{title}}
되지만 참고 title
문헌에는 여전히 인쇄됩니다. 마찬가지로, \AtEveryBibitem{\clearfield{urlyear}\clearfield{urlmonth}\clearfield{urlday}}
인용이 아닌 참고문헌에서만 URL 날짜를 제거합니다.
모든 곳에서 URL 날짜를 제거하려면 다음을 발행할 수 있습니다.
\AtEveryBibitem{\clearfield{urlyear}\clearfield{urlmonth}\clearfield{urlday}}
\AtEveryCitekey{\clearfield{urlyear}\clearfield{urlmonth}\clearfield{urlday}}
\ifentrytype
유형 제한은 다음과 같은 더 복잡한 구성 에 의해 적용될 수 있습니다 .
\AtEveryBibitem{%
\ifentrytype{online}
{}
{\clearfield{urlyear}\clearfield{urlmonth}\clearfield{urlday}}}
\AtEveryCitekey{%
\ifboolexpr{test {\ifentrytype{article}} or test {\ifentrytype{book}}}
{\clearfield{urlyear}\clearfield{urlmonth}\clearfield{urlday}}
{}}
첫 번째 예에서는 항목을 제외한 모든 항목에 대해 URL 날짜를 삭제하고 , 두 번째 예에서는 및 항목 @online
에 대해서만 삭제합니다 .@article
@book
기술적인 이유로(라벨 날짜 생성 가능성을 생각할 수 있음) URL 날짜를 전혀 사용하지 않으려면 가능한 한 빨리 제거하는 것이 좋습니다. 여기에 Biber의 소스 매핑이 포함됩니다(§4.5.2 참조).데이터의 동적 수정, pp. 148-156 중문서).
urldate
파일 에서 해당 필드를 제거하고 싶기 .bib
때문에 로 설정했습니다 null
.
\DeclareSourcemap{
\maps[datatype=bibtex]{
\map{
\step[fieldset=urldate, null]
}
}
}
\pertype
소스 매핑을 사용하면 다음과 같이 유형 제한이 적용될 수 있습니다.
\DeclareSourcemap{
\maps[datatype=bibtex]{
\map{
\pertype{article}
\pertype{book}
\step[fieldset=urldate, null]
}
}
}
@article
이제 이 지도는 s와 s 에만 적용됩니다 @book
. 안타깝게도 \pertype
위에서 했던 것처럼 부정을 사용할 수 없습니다.@online
") 기능 요청을 해볼 가치가 있을 것입니다.우리 소원이 이루어졌어).
날짜 필드는 에서 처리하는 방식이 약간 특별하기 때문입니다 biblatex
. 문서에서는 소스 매핑 목적으로 세 개의 필드로 사용할 수 있으며 year
( 문제 없이 사용할 수 있음 ) 소스 매핑은 Biber가 파일을 사용하여 수행하는 첫 번째 단계 중 하나이며 현재로서는 아무 것도 수행되지 않았습니다. 파일에서 해석하거나 읽음) 날짜가 로 입력되는 경우가 많기 때문에 소스 매핑에서 필드를 삭제하는 것만으로도 날짜를 으로 입력한 사용자에게만 도움이 됩니다 (가능하지만 약간 덜 불편함). 하지만 우리가 할 수 있는 것은 RegEx를 사용하여 날짜를 연도로만 만들 수 있다는 것입니다.month
day
\AtEveryCitekey{\clearfield{month}}
date = {YYYY-MM-DD}
month
year = {2014}, month = {03}, day={04}
\DeclareSourcemap{
\maps[datatype=bibtex]{
\map{
\step[fieldset=month, null]
\step[fieldsource=date,
match=\regexp{([0-9]{4})-[0-9]{2}(-[0-9]{2})*},
replace=\regexp{$1}]
}
}
}
"YYYY-MM-DD" 또는 "YYYY-MM-DD" 형식의 문자열을 찾고 "YYYY" 부분만 유지하여 연도만 유지합니다. null
날짜를 좀 더 자세하게 입력하고 싶은 분들을 위해 월을 로 설정했습니다 .
MWE
\documentclass{article}
\usepackage[style=authoryear,backend=biber,mergedate=false]{biblatex}
\addbibresource{biblatex-examples.bib}
\DeclareSourcemap{
\maps[datatype=bibtex]{
\map{
\pertype{online}
\step[fieldset=urldate, null]
}
\map{
\step[fieldset=month, null]
\step[fieldsource=date,
match=\regexp{([0-9]{4})-[0-9]{2}(-[0-9]{2})*},
replace=\regexp{$1}]
}
}
}
\begin{document}
\cite{baez/online,itzhaki,markey}
\printbibliography
\end{document}
준다
아래는 비교를 위한 소스 매핑이 없는 출력입니다.
답변2
@moewe의 두 번째 솔루션은 저에게 효과적이었습니다.\fullcite
) 발견했습니다.여기더 짧은 솔루션:
\AtEveryCitekey{\UseBibitemHook}