
biblatex ieee 스타일을 사용하여 "연도" 필드가 정의되지 않은 경우에도 참조에 빈 대괄호가 표시된다는 것을 발견했습니다. biblatex.bst를 변경하지 않고 어떻게 제거할 수 있나요?
\documentclass{article}
\usepackage[style=ieee,backend=bibtex]{biblatex}
\usepackage{filecontents}
\begin{filecontents}{\x.bib}
@ELECTRONIC{MEMSnet,
title = {What is {MEMS}?},
organization = {MEMSnet},
url = {http://www.memsnet.org/mems/what_is.html},
urldate = {Dec. 01, 2013}
}
\end{filecontents}
\addbibresource{\x.bib}
\nocite{*}
\begin{document}
\printbibliography
\end{document}
나는 얻었다
(). MEMS란 무엇입니까? MEMSnet, [온라인]. 사용 가능:http://www.memsnet.org/mems/what_is.html.
이는 올바른 인용 스타일이 아닙니다. 갖고 싶은 것:
MEMS란 무엇입니까? MEMSnet, [온라인]. 사용 가능:http://www.memsnet.org/mems/what_is.html.
많은 감사
답변1
우리 는 ieee.bbx
선을 찾습니다
\DeclareBibliographyDriver{online}{%
[...]
\setunit{\adddot\addspace}%
\printtext[parens]{\usebibmacro{date}}%
\setunit{\adddot\addspace}%
[...]
따라서 매크로(실제로 기본값은 ) biblatex
를 사용 하고 출력을 괄호로 묶으려고 합니다. 아무 것도 인쇄하지 않으면 빈 문자열이 괄호로 묶여 위에서 얻은 결과가 됩니다.date
\printdate
확실한 해결책은 항목에 필드를 제공하는 것입니다 date
(결국 [거의] 모든 턱받이 항목에는 하나가 있어야 합니다. 위의 Joseph Wright의 설명도 참조하세요). @online
그러나 일부 리소스에서는 이것이 어렵고 완전히 불가능할 수 있습니다.
전체 드라이버를 다시 작성하고 싶지 않기 때문에 @online
(문제를 해결하는 확실한 방법) 다음을 사용하여 패치합니다.xpatch
.
이 코드를 로드 \usepackage{xpatch}
하고 프리앰블에 넣으세요.
\xpatchbibdriver{online}
{\printtext[parens]{\usebibmacro{date}}}
{\iffieldundef{year}
{}
{\printtext[parens]{\usebibmacro{date}}}}
{}
{\typeout{There was an error patching biblatex-ieee (specifically, ieee.bbx's @online driver)}}
위에서 설명한 문제 있는 줄( )을 필드가 있는지(즉, 충분한 날짜 필드) 확인하고 해당 조건이 충족되는 경우에만(즉, 연도가 존재하는 경우에만) 확인 \printtext[parens]{\usebibmacro{date}}
하는 (다소 정교한) 구성으로 대체합니다. year
물론 여기서는 이것이 참고 year
문헌의 날짜 출력을 위한 최소한의 요구 사항이라고 가정합니다. 계속해서 날짜를 인쇄하고 그렇지 않으면 아무 작업도 수행되지 않습니다.
\documentclass{article}
\usepackage[style=ieee,backend=bibtex]{biblatex}
\usepackage{xpatch}
\begin{filecontents}{\jobname.bib}
@ELECTRONIC{MEMSnet,
title = {What is {MEMS}?},
organization = {MEMSnet},
url = {http://www.memsnet.org/mems/what_is.html},
urldate = {2013-12-01},
}
\end{filecontents}
\addbibresource{\jobname.bib}
\addbibresource{biblatex-examples.bib}
\xpatchbibdriver{online}
{\printtext[parens]{\usebibmacro{date}}}
{\iffieldundef{year}
{}
{\printtext[parens]{\usebibmacro{date}}}}
{}
{\typeout{There was an error patching biblatex-ieee (specifically, ieee.bbx's @online driver)}}
\begin{document}
\nocite{MEMSnet,wilde,markey}
\printbibliography
\end{document}