
IEEE 표준 약어를 자동으로 대체하는 방법이 있습니까 biblatex + biber
(일단 약어 목록이 제공되면)?
예를 들어:
"회의 기록 IEEE 국제 커뮤니케이션 회의"
되어야 한다
"회의 Rec. 1995 IEEE 국제 회의 Commun."
답변1
나는 실제로 IEEE 스타일을 좋아하지는 않지만 일반적인 설정을 이해하고 시도해 볼 것입니다.
나는 당신이 biblatex
의 ieee
스타일을 사용하고 있다고 가정하지만 로딩은 IEEEabrv.bib
에서 제공됩니다 IEEEtran
("Conference Record IEEE International Conference on Communication"을 찾을 수 없었음에도 불구하고 여기서는 의 항목을 사용합니다 IEEEexample.bib
).
에 제공된 표준 IEEE 약어를 재정의하는 두 가지 방법이 있습니다 IEEEabrv.bib
. 첫 번째는 약어 문자열의 두 번째 파일을 만들고 로드하는 것입니다.~ 후에 IEEEabrv.bib
. 두 번째는 biblatex
'를 사용하여 \DeclareSourcemap
항목의 데이터를 변경하는 것입니다.
첫 번째는 다음과 같습니다.
\documentclass{article}
\usepackage[style = ieee]{biblatex}
\usepackage{filecontents}
\begin{filecontents*}{\jobname.bib}
@article{IEEEexample:article_typical,
author = "S. Zhang and C. Zhu and J. K. O. Sin and P. K. T. Mok",
title = "A Novel Ultrathin Elevated Channel Low-temperature
Poly-{Si} {TFT}",
journal = IEEE_J_EDL,
volume = "20",
month = nov,
year = "1999",
pages = "569-571"
}
\end{filecontents*}
\addbibresource{IEEEabrv.bib}
\addbibresource{myIEEEabrv.bib}
\addbibresource{\jobname.bib}
\begin{document}
\nocite{*}
\printbibliography
\end{document}
myIEEEabrv.bib
원하는 축약된 문자열의 재정의가 포함된 위치 입니다. 이 경우 다음과 같습니다.
@STRING{IEEE_J_EDL = "{IEEE} Elec. Dev. Lett."}
(에 정의된 문자열 IEEEabrv.bib
은 입니다 {IEEE} Electron Device Lett.
). 이후에 로드되어야 합니다 IEEEabrv.bib
.
제가 귀하의 질문을 잘못 읽었고 귀하가 실제로 원하는 것이 자신만의 축약된 저널 제목을 제공하는 것이라면 이 방법도 합리적인 접근 방식을 제공합니다. 파일을 만들고 abbrev.bib
거기에 원하는 문자열을 정의한 다음 를 사용하여 추가할 수 있습니다 \addbibresource
. 그런 다음 참조 .bib
파일에서 문자열을 사용합니다.이름(즉, 위의 예와 같이 대괄호가 없음)을 journaltitle
/ journal
필드에 입력합니다. 그러면 다음을 수행할 수 있습니다.
@string{IEEEIntConfCom = "Conf. Rec. 1995 {IEEE} Int. Conf. Commun."}
그런 다음 bibfile에서 다음을 사용합니다.
journaltitle = IEEEIntConfCom,
일반적으로 이 접근 방식에는 전체 문자열이 정의된 두 번째 파일도 필요합니다 full.bib
. 여기에는 다음이 포함됩니다.
@string{IEEEIntConfCom = "Conference Record {IEEE} International Conference on Communication"}
이를 사용하면 약어 저널에서 전체 저널 제목으로 변경하기 위해 해야 할 일은 기본 파일에서 \addbibresource{abbrev.bib}
으로 대체하는 것뿐입니다 .\addbibresource{full.bib}
.tex
언급한 바와 같이 두 번째 접근 방식은 다음을 사용하는 것입니다 \DeclareSourcemap
.
\documentclass{article}
\usepackage[style = ieee]{biblatex}
\usepackage{filecontents}
\begin{filecontents*}{\jobname.bib}
@article{IEEEexample:article_typical,
author = "S. Zhang and C. Zhu and J. K. O. Sin and P. K. T. Mok",
title = "A Novel Ultrathin Elevated Channel Low-temperature
Poly-{Si} {TFT}",
journal = IEEE_J_EDL,
volume = "20",
month = nov,
year = "1999",
pages = "569-571"
}
\end{filecontents*}
\addbibresource{IEEEabrv.bib}
\addbibresource{\jobname.bib}
\DeclareSourcemap{
\maps[datatype=bibtex]{
\map{
\step[fieldsource=journal,
match={{IEEE} Electron Device Lett.},
replace={{IEEE} Elec. Dev. Lett.}]
}
}
}
\begin{document}
\nocite{*}
\printbibliography
\end{document}
는 문자열 이름이 아닌 match
에 정의된 표준 약어 형식에 대한 것입니다 .IEEEabrv.bib
IEEEabrv.bib
관찰: 의 인코딩 에 문제가 있었습니다 . 따라서 이것이 작동하려면 UTF-8로 저장하여 실행해야 했습니다. 그러나 나는 당신이 이미 이러한 약어를 사용하고 있는 것처럼 보이면 어떻게든 그것을 처리했다고 가정합니다.