
tl;dr: ?가 없거나 없어야 하는 작업 보고서를 인용하는 방법은 무엇입니까 institution
?
그만큼biblatex 항목 유형report
다음 용도로 사용해야 합니다.
대학이나 기타 기관에서 발행한 기술 보고서, 연구 보고서 또는 백서입니다.
의 필수 필드는 , , , , / report
입니다 .author
title
type
institution
year
date
에 맞춰이 추천저는 주로 report
Working Papers에 유형을 사용합니다. 그러나 특정 Working Paper 시리즈의 경우 기관을 추가하는 것은 불필요한 것처럼 보이며 불필요하게 복잡한 참고문헌 항목을 생성합니다. 이는 기관 이름이 시리즈 이름의 일부인 모든 Working Paper 시리즈의 경우입니다. 예를 들어, "NBER Working Papers"는 (분명히) NBER에서 출판됩니다.
문제를 설명하기 위해 다음 예를 고려하십시오.
\documentclass{scrartcl}
\usepackage[backend=biber,bibstyle=authoryear,dashed=false]{biblatex}
\addbibresource{mwe.bib}
\begin{filecontents}{mwe.bib}
@Report{Example1,
author = {Author, Sample},
date = {2020},
title = {A Report},
type = {The Institution's Working Paper Series},
number = {42}
}
@Report{Example2,
author = {Author, Sample},
date = {2020},
title = {A Report with Redundant Institution},
type = {The Institution's Working Paper Series},
number = {42},
institution = {The Institution}
}
\end{filecontents}
\begin{document}
\nocite{*}
\printbibliography
\end{document}
- 문제: 예시 1(기관 없음)을 선호하지만 해당
institution
필드는 필수입니다. - 해결 방법/내가 시도한 것:
- 필수 사항을 무시
institution
하고 비워 두십시오. 이는 작동하지만(위 참조) 데이터 모델 사양을 위반합니다. 그러나 이는 데이터 모델을 검증할 때 많은 성가신 경고를 생성하며 더욱이 biber/biblatex의 향후 버전이 필수 필드 누락에 대해 그렇게 관대하게 유지될지 확실하지 않습니다. - 제공하다일부자리 표시자 기관을 선택한 다음 다음 라인을 따라 필드를 지웠지만
\AtEveryBibitem{\ifentrytype{report}{\clearfield{institution}…
지우고 싶지는 않습니다.institution
하지만 지우고모두보고서를 작성하려면 몇 가지 지속적인 "마법의 자리 표시자"(또는 키워드)가 필요하며institution
지저분하고 오류가 발생하기 쉬우며 내 BIB 파일을 어수선하게 만드는 이 마법의 자리 표시자를 관찰하는 경우에만 조건부로 클리어해야 합니다. - 기관이 필요하지 않은 다른 항목 유형을 사용하면 됩니다. 자연스러운 후보자가 될 수 있지만
misc
여기에는 필드가 없습니다number
. 대안으로 를 (ab-) 사용할 수 있지만manual
이는number
앞에 를 인쇄하는type
반면 반대 순서가 필요합니다.저자, 샘플(2020c). 중복 기관에 대한 보고서. 42. 기관의 연구 보고서 시리즈.
- 기관이 필요하지 않은 다른 출품 유형을 사용하면 됩니다.다시
manual
: 와 함께 유형을 사용 하지만 잘못된 항목 유형( )을 사용하고 더 적합한 위치 (IMO)를 사용하는 것을series={The Institution's Working Paper Series}
좋아하지 않습니다 .manual
series
type
- 필수 사항을 무시
- 질문: ?가 없거나 없어야 하는 작업 보고서를 인용하는 방법은 무엇입니까
institution
? 위의 접근 방식 중 어느 것이 가장 유망한지 잘 모르겠지만 유효한 데이터 모델((1)과 다름), 합리적인 의미 체계((4)와 다름) 및 최소한의 작업을 갖춘 솔루션을 선호합니다. 틀렸습니다((2)와 다름). 따라서 아마도 (3)type
과 fornumber
의 순서를 바꾸는 것이misc
가장 좋을 것입니다. 하지만 저는 어떤 제안이라도 수용하고 감사하겠습니다.
답변1
tl;dr옵션 1을 선택하세요. 데이터 모델 유효성 검사 경고가 그렇게 귀찮다면 필요하지 않은 새 데이터 모델을 정의하세요 institution
(아래 참조).
의 '필수' 필드와 '선택' 필드 간의 구분은 biblatex
처음에 보이는 것보다 약간 덜 엄격합니다.
biblatex
데이터 모델 유효성 검사 코드 외에 필수 또는 필수 필드에 대해 알고 있는 코드 에는 아무것도 없습니다 .문서biblatex
라고
'필수' 필드가 모든 경우에 반드시 필요한 것은 아닙니다. 자세한 내용은 §2.3.2를 참조하세요. '선택사항'으로 표시된 필드는 기술적인 의미에서 선택사항입니다. 서지 형식 규칙에는 일반적으로 '필수' 필드 이상의 항목이 필요합니다.
'필수' 및 '선택' 필드에 대해 알아보세요. 그리고 §2.3.2에서는 추가로 설명합니다.
§2.3.2누락된 데이터와 누락된 데이터
§2.1.1에서 '필수'로 표시된 필드는 모든 경우에 엄격하게 필수는 아닙니다. 이 패키지와 함께 제공되는 참고문헌 스타일은
title
대부분의 항목 유형에 대한 필드 만큼만 사용할 수 있습니다 . 익명으로 출판된 책, 명시적인 편집자가 없는 정기간행물, 명시적인 저자가 없는 소프트웨어 매뉴얼은 참고문헌에 관한 한 아무런 문제도 일으키지 않습니다. 그러나 인용 스타일에는 다른 요구 사항이 있을 수 있습니다. 예를 들어 저자 연도 인용 체계에는 분명히author
/editor
및year
필드가 필요합니다.
나에게 '필수' 및 '선택' 필드는 스타일 개발자에게 사용자와 데이터베이스에 대한 엄격한 요구 사항보다 기대할 수 있는 힌트에 더 가깝습니다 .bib
. 일반적으로 말하면, 항목에 문서에 '필수'로 나열된 모든 필드가 있으면 출력이 합리적으로 보일 것으로 기대할 수 있습니다. 모든 필수 필드가 없으면 출력은 여전히 괜찮을 수 있지만(대부분의 경우 그럴 것입니다), 결과가 만족스럽지 않아 불평한다면 설 수 있는 다리가 없을 수도 있습니다. . 모든 필수 필드가 없다고 해서 참고문헌이 자동으로 나빠지는 것은 아니지만, 보기에 좋아야 한다는 암묵적인 보장은 없습니다.
조언을 명심하는 것이 중요하다고 생각합니다.btxdoc
- 표준 스타일의 13개 항목 유형은 대부분의 항목 형식을 합리적으로 잘 수행하지만 13개 형식만 있는 구성표는 모든 것을 완벽하게 수행할 수 없습니다. 따라서 이러한 항목 유형을 사용하는 방법에 있어서 자유롭게 창의력을 발휘해야 합니다(그러나 너무 창의적이어야 한다면 잘못된 항목 유형을 사용하고 있을 가능성이 높습니다).
- 필드 이름을 너무 심각하게 받아들이지 마십시오. 예를 들어
publisher
필드에 출판사 이름을 입력하는 대신 출판사 이름과 함께 출판사 주소를address
필드에 포함해야 할 수도 있습니다. 또는 때로는 필드를 현명하게 활용할 때 어려운 항목이 가장 잘 작동할 수도 있습니다note
.- 경고 메시지를 너무 심각하게 받아들이지 마십시오. 예를 들어 다음과 같이 제목에 연도가 표시되는 경우도 있습니다.1966년 세계 그누스 연감. 이 경우 필드를 생략
year
하고 BibTeX의 경고 메시지를 무시하는 것이 가장 좋습니다.
마지막 점의 예에 전적으로 동의하지는 않지만 일반적인 생각에는 확실히 동의합니다. 어쨌든 결론은: 데이터 모델을 사용하지 마십시오.~도진지하게. 결국 인쇄된 결과는 아마도 여러분이 가장 관심을 갖는 것일 것입니다.
확실히 말할 수는 없지만 필수/선택 필드 중 일부는 다음에서 직접 가져온 것 같습니다.BibTeX 문서btxdoc
. 따라서 이 경우 institution
기술적인 이유보다는 역사적 이유로 '필수' 필드일 수 있습니다.
'필수' 필드를 포함하지 않을 경우 발생할 수 있는 최악의 상황은 무엇인가요? 느슨하게 말해서 일어날 수 있는 최악의 상황은 귀하의 스타일이 필드가 존재할 것으로 예상하고 필드 안이나 주변에 물건을 배치한 institution
다음 필드가 없으면 제 위치에서 벗어나 보이는 것입니다.
좀 더 기술적인 측면에서 이를 살펴보겠습니다. 위에서 언급했듯이 실제로 biblatex
어떤 필드가 필수이고 어떤 필드가 선택인지를 아는 코드는 단 하나뿐입니다 . 바로 데이터 모델 제약 조건 선언입니다. 이러한 제약 조건 선언은 데이터 모델 검증을 위해 Biber에 전달되며 다른 곳에서는 사용되지 않습니다 biblatex
. 따라서 기술적인 관점에서 볼 biblatex
때 데이터 모델 제약 조건에 전혀 신경 쓰지 않습니다. 단지 사용자에게 힌트/경고를 보내는 데 사용됩니다.
전체 '필수'/'선택' 항목에서 훨씬 더 중요한 측면은 스타일 개발자가 만들 수 있는 암묵적인 가정입니다. 일반적으로 스타일 개발자는 선택적 필드를 생략해도 출력이 나빠지지 않는 방식으로 스타일을 작성해야 합니다. 필수 필드에 대해서는 그러한 기대가 없다는 주장이 있습니다. 필수 항목이 누락된 경우, 이는 사용자의 책임입니다. 이러한 암시적 가정은 성문화되지 않았으며 이러한 가정에 얼마나 의존할지 여부는 전적으로 개발자에게 달려 있습니다.
의 전반적인 작동 biblatex
및 biblatex
스타일 덕분에 추가 노력 없이도 대부분의 상황에서 누락된 필드를 방지하는 것이 매우 쉽습니다. 누락된 필드에 대한 명시적인 예방 조치는 아주 소수의 극단적인 경우에만 취하면 됩니다.
대부분의 스타일 @report
항목 에서는 institution
.
제안된 해결 방법에 대해 조금 논의해 보겠습니다.
institution
원하지 않으면 필드 를 채우지 마십시오 .나에게 이것은 가장 좋고 간단한 행동 방침처럼 들린다. 물론, 필드를 제공하지는 않지만
required
출력이 그런 식으로 더 좋아 보인다면 누가 당신을 비난하겠습니까? 데이터 모델 유효성 검사는 명시적으로 활성화해야 하며 경고는 어쨌든 다소 인위적인 성격을 띠므로(위에서 언급한 대로) 이를 무시할 권리가 있습니다. 표준 스타일은 현재 괜찮아 보이지 않는 항목이 나중에 더 나빠 보일 것이라는biblatex
의미로 변경될 가능성이 거의 없습니다 .institution
(마법 또는 기타) 자리 표시자를 사용하십시오.
이는 데이터 모델 검증을 속일 뿐입니다. 나중에 를 사용하여 필드 값을 제거하면
\clearfield
스타일에 관한 한 필드는 여전히 사라집니다. 따라서 출력 결과가 나빠 보일까 봐 걱정된다면 아직 안심할 수 있는 것은 아닙니다.(및 4.) 다른 항목 유형을 사용하십시오.
이것은 확실히 가능하지만 실제로 다른 옵션보다 훨씬 나아진 느낌은 아닙니다. 필수 필드를 올바르게 가져오려는 훨씬 더 인위적인 목표를 위해 실제 의미 연결을 포기하게 됩니다.
내가 옵션 1을 선호하는 것은 놀라운 일이 아닐 것입니다.
데이터 모델 확인에서 나타나는 경고가 마음에 들지 않으면 institution
필수 필드 목록에서 삭제하도록 데이터 모델 제약 조건을 다시 작성할 수 있습니다(원래 제약 조건은 다음에서 찾을 수 있습니다).blx-dm.def
).
\documentclass{article}
\begin{filecontents}{report-wo-institution.bib}
\ResetDatamodelConstraints
\DeclareDatamodelConstraints[
article,
book,
inbook,
bookinbook,
suppbook,
booklet,
collection,
incollection,
suppcollection,
manual,
misc,
mvbook,
mvcollection,
online,
patent,
periodical,
suppperiodical,
proceedings,
inproceedings,
reference,
inreference,
report,
set,
thesis,
unpublished]{
\constraint[type=mandatory]{
\constraintfieldsxor{
\constraintfield{date}
\constraintfield{year}
}
}
}
\DeclareDatamodelConstraints[set]{
\constraint[type=mandatory]{
\constraintfield{entryset}
}
}
\DeclareDatamodelConstraints[article]{
\constraint[type=mandatory]{
\constraintfield{author}
\constraintfield{journaltitle}
\constraintfield{title}
}
}
\DeclareDatamodelConstraints[book,mvbook,mvcollection,mvreference]{
\constraint[type=mandatory]{
\constraintfield{author}
\constraintfield{title}
}
}
\DeclareDatamodelConstraints[inbook,bookinbook,suppbook]{
\constraint[type=mandatory]{
\constraintfield{author}
\constraintfield{title}
\constraintfield{booktitle}
}
}
\DeclareDatamodelConstraints[booklet]{
\constraint[type=mandatory]{
\constraintfieldsor{
\constraintfield{author}
\constraintfield{editor}
}
\constraintfield{title}
}
}
\DeclareDatamodelConstraints[collection,reference]{
\constraint[type=mandatory]{
\constraintfield{editor}
\constraintfield{title}
}
}
\DeclareDatamodelConstraints[incollection,suppcollection,inreference]{
\constraint[type=mandatory]{
\constraintfield{author}
\constraintfield{editor}
\constraintfield{title}
\constraintfield{booktitle}
}
}
\DeclareDatamodelConstraints[dataset]{
\constraint[type=mandatory]{
\constraintfield{title}
}
}
\DeclareDatamodelConstraints[manual]{
\constraint[type=mandatory]{
\constraintfield{title}
}
}
\DeclareDatamodelConstraints[misc,software]{
\constraint[type=mandatory]{
\constraintfield{title}
}
}
\DeclareDatamodelConstraints[online]{
\constraint[type=mandatory]{
\constraintfield{title}
\constraintfieldsor{
\constraintfield{url}
\constraintfield{doi}
\constraintfield{eprint}
}
}
}
\DeclareDatamodelConstraints[patent]{
\constraint[type=mandatory]{
\constraintfield{author}
\constraintfield{title}
\constraintfield{number}
}
}
\DeclareDatamodelConstraints[periodical]{
\constraint[type=mandatory]{
\constraintfield{editor}
\constraintfield{title}
}
}
\DeclareDatamodelConstraints[proceedings,mvproceedings]{
\constraint[type=mandatory]{
\constraintfield{title}
}
}
\DeclareDatamodelConstraints[inproceedings]{
\constraint[type=mandatory]{
\constraintfield{author}
\constraintfield{title}
\constraintfield{booktitle}
}
}
\DeclareDatamodelConstraints[report]{
\constraint[type=mandatory]{
\constraintfield{author}
\constraintfield{title}
\constraintfield{type}
}
}
\DeclareDatamodelConstraints[thesis]{
\constraint[type=mandatory]{
\constraintfield{author}
\constraintfield{title}
\constraintfield{type}
\constraintfield{institution}
}
}
\DeclareDatamodelConstraints[unpublished]{
\constraint[type=mandatory]{
\constraintfield{author}
\constraintfield{title}
}
}
\DeclareDatamodelConstraints{
\constraint[type=data, datatype=isbn]{
\constraintfield{isbn}
}
\constraint[type=data, datatype=issn]{
\constraintfield{issn}
}
\constraint[type=data, datatype=ismn]{
\constraintfield{ismn}
}
\constraint[type=data, datatype=date]{
\constraintfield{date}
\constraintfield{eventdate}
\constraintfield{origdate}
\constraintfield{urldate}
}
\constraint[type=data, datatype=pattern, pattern=\regexp{(?:sf|sm|sn|pf|pm|pn|pp)}]{
\constraintfield{gender}
}
}
\end{filecontents}
\usepackage[backend=biber,bibstyle=authoryear,dashed=false]{biblatex}
\begin{filecontents}{\jobname.bib}
@Report{Example1,
author = {Author, Sample},
date = {2020},
title = {A Report},
type = {The Institution's Working Paper Series},
number = {42},
}
@Report{Example2,
author = {Author, Sample},
date = {2020},
title = {A Report with Redundant Institution},
type = {The Institution's Working Paper Series},
number = {42},
institution = {The Institution},
}
\end{filecontents}
\addbibresource{\jobname.bib}
\begin{document}
\nocite{*}
\printbibliography
\end{document}
문서 출력은 여전히 동일하지만 s biber -V
누락에 대해서는 침묵합니다 institution
.
물론 institution
아직 필드는 주어지지 않았습니다. 하지만 내 생각엔 모든 것이 결국을 제공하고 싶지 않다면 institution
해당 필드를 제공하지 않은 결과를 감수해야 합니다.표준 스타일에서는(그리고 대부분의 기여 스타일이 예상됩니다) 기본적으로 institution
. 가능한 미래 결과가 너무 위험하다고 생각하는 경우 유일한 옵션은 필드를 institution
값(인쇄된)으로 채우거나 다른 항목 유형을 선택하는 것입니다. 첫 번째 옵션이 종료된 경우 유일한 방법은 다른 유형입니다. 그러나 다른 유형은 의미상 덜 만족스럽고 의 모든 측면을 @report
최대한 정확하게 표현하지 못할 수도 있습니다 .