Biber+biblatex 자동 표준 약어

Biber+biblatex 자동 표준 약어

IEEE 표준 약어를 자동으로 대체하는 방법이 있습니까 biblatex + biber(일단 약어 목록이 제공되면)?

예를 들어:

"회의 기록 IEEE 국제 커뮤니케이션 회의"

되어야 한다

"회의 Rec. 1995 IEEE 국제 회의 Commun."

답변1

나는 실제로 IEEE 스타일을 좋아하지는 않지만 일반적인 설정을 이해하고 시도해 볼 것입니다.

나는 당신이 biblatexieee스타일을 사용하고 있다고 가정하지만 로딩은 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로 저장하여 실행해야 했습니다. 그러나 나는 당신이 이미 이러한 약어를 사용하고 있는 것처럼 보이면 어떻게든 그것을 처리했다고 가정합니다.

관련 정보