
나는 역사 수업에서 보여지는 작품을 참조하기 위해 biblatex와 biber를 사용하고 있습니다. 수세기 동안의 데이터화(12세기 또는12세기프랑스어)는 매우 일반적입니다. 저는 "연도" 필드에 이러한 날짜를 기록하곤 했는데, 마지막 업그레이드 이후에는 작동했습니다.
다음 MWE는 TexLive 2015로 컴파일됩니다…
\documentclass{article}
\usepackage{biblatex}
\usepackage[utf8]{inputenc}
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@Thesis{exemple_image,
Title = {Title of the work},
Author = {Artist Name},
Location = {Switzerland},
Year = {{\siecle{15}}},
}
\end{filecontents}
\addbibresource{\jobname.bib}
\newcommand{\siecle}[1]{%
\textsc{\romannumeral #1}\textsuperscript{e}~siècle
}
\nocite{*}
\begin{document}
\nocite{*}
\printbibliography
\end{document}
...하지만 TexLive 2016에서는 더 이상 오류가 발생하지 않습니다 ! Use of /sortlist doesn't match its definition
.
나는 Biblatex 3.5가 "연도" 필드에 덜 관대하다고 생각합니다. 성공하지 못한 채 문서를 검색했으며 모든 제안에 열려 있습니다.
답변1
3.10 이상의 새로운 ISO 8601 날짜 기능을 사용하면 biblatex
세기를 다음과 같이 입력할 수 있습니다.
date = {19XX}
불행하게도 표준 날짜 형식은 '20세기' 또는 이와 유사한 출력을 표시하여 기본적으로 이를 처리하지 않고 '1900-1999'라고만 작성하지만 다음과 같이 세기를 처리할 수 있습니다.
\documentclass[french]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{babel}
\usepackage{csquotes}
\usepackage{biblatex}
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@thesis{exemple_image,
title = {Title of the work},
author = {Artist Name},
location = {Switzerland},
date = {16XX},
}
\end{filecontents}
\addbibresource{\jobname.bib}
\NewBibliographyString{century}
\DefineBibliographyStrings{french}{century = {siècle}}
\makeatletter
\renewcommand*{\RNfont}{\textsc}
\DeclareFieldFormat{datecentury}{\RN{#1}\textsuperscript{e}}
\renewrobustcmd*{\mkdaterangetrunc}[2]{%
\begingroup
\blx@metadateinfo{#2}%
\iffieldundef{#2year}
{}
{\printtext[#2date]{%
\datecircaprint
% Such a season component can only come from an EDTF 5.1.5 season which replaces
% a normal month so if it exists, we know that a normal date print is ruled out
\iffieldequalstr{dateunspecified}{yearincentury}
{\printtext[datecentury]{\number\numexpr\thefield{#2year}/100+1\relax}\setunit{\addnbspace}\bibstring{century}}
{\iffieldundef{#2season}
{\iffieldsequal{#2year}{#2endyear}
{\iffieldsequal{#2month}{#2endmonth}
{\csuse{mkbibdate#1}{}{}{#2day}}
{\csuse{mkbibdate#1}{}{#2month}{#2day}}}
{\csuse{mkbibdate#1}{#2year}{#2month}{#2day}%
\iffieldsequal{#2dateera}{#2enddateera}{}
{\dateeraprint{#2year}}}}
{\iffieldsequal{#2year}{#2endyear}
{\csuse{mkbibseasondate#1}{}{#2season}}
{\csuse{mkbibseasondate#1}{#2year}{#2season}%
\iffieldsequal{#2dateera}{#2enddateera}{}
{\dateeraprint{#2year}}}}%
\dateuncertainprint
\iffieldundef{#2endyear}
{}
{\iffieldequalstr{#2endyear}{}
{\mbox{\bibdaterangesep}}
{\bibdaterangesep
\enddatecircaprint
\iffieldundef{#2season}
{\csuse{mkbibdate#1}{#2endyear}{#2endmonth}{#2endday}}
{\csuse{mkbibseasondate#1}{#2endyear}{#2endseason}}%
\enddateuncertainprint
\dateeraprint{#2endyear}}}}}}%
\endgroup}
\makeatother
\begin{document}
\nocite{*}
\printbibliography
\end{document}
\iffieldequalstr{dateunspecified}{yearincentury}
세기를 확인하는 경우 형식은 datecentury
세기의 출력을 제어하고 Bibstring을 century
사용하여 출력을 더욱 지역화할 수 있습니다.
또한 참조하십시오96-dates.tex
뿐만 아니라 §2.3.8날짜 및 시간 사양, §4.2.4.1일반 필드~의문서biblatex
.
답변2
답변3
year
또 다른 방법은 Biber를 사용하여 필드를 다른 필드에 매핑하는 것입니다 . (이 예제에서는 를 사용합니다 addendum
.) 소스 매핑을 항목의 특정 하위 집합으로 제한할지 여부는 예제에서 명확하지 않지만 이를 수행하는 방법에는 여러 가지가 있습니다. (이 예는 예와 마찬가지로 특정 .bib
파일 및 항목 유형 으로 제한됩니다.)thesis
Biber는 경고나 오류 없이 종료됩니다.
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@Thesis{exemple_image,
Title = {Title of the work},
Author = {Artist Name},
Location = {Switzerland},
Year = {{\siecle{15}}},
}
\end{filecontents}
\usepackage[backend=biber]{biblatex}
\addbibresource{\jobname.bib}
\newcommand{\siecle}[1]{%
\textsc{\romannumeral #1}\textsuperscript{e}~siècle
}
\DeclareSourcemap{
\maps[datatype=bibtex, overwrite]{
\map{
\perdatasource{\jobname.bib}% <-- If you have them in a special bib file
\pertype{thesis}% <-- If you want to limit by type
\step[fieldsource=year]
\step[fieldset=addendum, origfieldval]
\step[fieldset=year, null]
}
}
}
\nocite{*}
\begin{document}
\nocite{*}
\printbibliography
\end{document}