내 .bib 파일에 단축된 "언어" 항목(언어 코드)을 사용할 수 있습니까?

내 .bib 파일에 단축된 "언어" 항목(언어 코드)을 사용할 수 있습니까?

을(를) 사용하고 BiblaTeX있는데 질문이 있습니다. 내 .bib파일에 있는 거의 모든 유형의 소스에서 볼 수 있듯이 항목을 사용할 수 있습니다 language.

그러나 내가 거기에 넣은 것은 내 참고문헌에 표시된 문학적 내용뿐입니다. 예를 들어 ISO-639-1이나 다른 방법도 사용할 수 없습니까?ISO 코드?

예:

@online{SOTexBibLangIso,
    author = {Stackoverflow Tex Community},
    title = {Can I use a shortened "language" entry (language code) in my .bib file?},
    url = {https://tex.stackexchange.com/questions/294703/can-i-use-a-shortened-language-entry-language-code-in-my-bib-file},
    language = {en},
    urldate = {2016-02-18},
}

답변1

biblatexlanguage(1) 과 (2) 의 두 언어 필드를 구분합니다 langid. 에 따르면biblatex선적 서류 비치, p. 20,

[필드 language에는] 작품의 언어가 포함되어 있습니다. 언어는 문자 그대로 지정하거나 현지화 키로 지정할 수 있습니다. 현지화 키를 사용하는 경우 접두사는 lang생략 가능합니다.

페이지에. 25개 있어요

[ langid] 참고문헌 항목의 언어 ID입니다. [...] 식별자는 babel/ polyglossia패키지에 알려진 언어 이름이어야 합니다. 이 정보는 참고문헌에서 하이픈 패턴을 전환하고 문자열을 지역화하는 데 사용될 수 있습니다. 언어 이름은 대소문자를 구분합니다.

따라서 해당 language필드는 저작물의 언어로 참고문헌에 인쇄되는 반면 langid내부적으로는 의 언어 전환 동작에 사용됩니다 biblatex(참고문헌에서 하이픈을 전환하는 데 사용할 수 있으므로 단어가 제대로 하이픈으로 연결되거나 언어에 따른 문자열도 autolang옵션으로 제어됩니다. 기본적으로 language해당 언어가 문서의 기본 언어와 일치하면 정보가 인쇄되지 않습니다. 이는 clearlang및 옵션 에 의해 제어됩니다 \DeclareRedundantLanguages.

예를 들어 다음과 같은 경우가 있을 수 있습니다.

@online{elk,
  author   = {Anne Elk},
  title    = {Über die Anatomie der Donnerechse},
  url      = {http://www.example.edu/~elk/bronto.pdf},
  date     = {2016-01-01},
  language = {german},
  langid   = {ngerman},
}

독일어 텍스트( languageis germanlanggerman괜찮습니다)의 경우 새로운 철자법 규칙( langidis ngerman)을 따릅니다.


이 필드는 / langid에 알려진 언어 식별자로만 작동할 수 있지만 위의 PLK 설명에 따르면 Biber는 BCP47 언어 코드도 처리하고 해당 코드에 매핑할 수 있습니다. 사실 Biber는 와 같은 무의미한 입력을 기꺼이 받아들일 것입니다 . 그러나 이는 언어 패키지가 알 수 없는 언어를 로드하려고 시도하는 경우 또는 다른 것을 사용하는 경우 문제로 이어질 것입니다 .babelpolyglossialangid = {flobbel}babelpolyglossiaautolang=noneflobbel


필드 language는 모든 입력을 허용하지만 biblatex알고 있는 언어 식별자는 다르게 처리되어 번역됩니다. 좀 더 정확하게 말하면 현재 사용되는 .lbx파일에 로 정의된 언어에 대해 작동하며, 또는 lang<language>로 지정할 수 있습니다 . Bibstring 이 에 정의되어 있지 않으면<language>lang<language>.lbxlanguage 그대로 인쇄됩니다.english.lbx여기 에서 지원되는 언어를 확인할 수 있습니다.,네덜란드어의 경우 목록은 여기에 있습니다.). 접두어를 포함 lang하거나 포함하지 않고 언어 식별자를 제공할 수 langgreek있으며 greek동일한 결과를 얻을 수 있습니다. 당신이 사용하는 경우

language = {english},

네덜란드어 문서에서는 "Engels"가 출력되고 문서 언어가 영어인 경우 "English"가 표시됩니다.

문자열은 en인식된 언어 식별자 목록에 없으며 있는 그대로 인쇄됩니다.

langid소스맵을 사용하여 Biber가 필드에서 수행하는 작업을 에뮬레이트할 수 있습니다.

\DeclareSourcemap{
  \maps[datatype=bibtex]{
    \map{
      \step[fieldsource=language,
            match=\regexp{\Aen\Z},
            replace=\regexp{english}]
      \step[fieldsource=language,
            match=\regexp{\Ade\Z},
            replace=\regexp{german}]
    }
  }
}

관련 정보