.bib 파일의 정크 문자

.bib 파일의 정크 문자

.bib내 참조 목록을 나열하기 위해 파일을 사용하고 있습니다 . TeXstudio에서 Biber를 실행하면 참조가 올바르게 컴파일되지만 다음과 같은 경고가 표시됩니다.

WARN - BibTeX subsystem: C:\Users\[user]\AppData\Local\Temp\biber_tmp_WQTH\thesis_references.bib_15484.utf8, line 4, warning: 3 characters of junk seen at toplevel

파일 을 살펴보고 .bib문제가 있는 문자를 찾았지만 오류를 일으킬 수 있는 내용을 찾을 수 없습니다. 또한 오류가 있을 수 있는 상위 참조를 교체하려고 시도했지만 도움이 되지 않았습니다. 경고에 언급된 파일은 컴파일(?) 후 다시 사라지는 일종의 임시 파일인 것으로 보입니다.

내 .bib 파일은 다음과 같습니다.

% Encoding: UTF-8


@article{aguzzi2013microglia,
    title={Microglia: scapegoat, saboteur, or something else?},
    author={Aguzzi, Adriano and Barres, Ben A and Bennett, Mariko L},
    journal={Science},
    volume={339},
    number={6116},
    pages={156--161},
    year={2013},
    publisher={American Association for the Advancement of Science}
}
etc.

뭔가 빠졌나요?

답변1

다음과 같이 유니코드 변환기에 코드를 복사하여 붙여넣으면https://w3c.github.io/xml-entities/unicode-names.html 당신은 발견 할 것이다당신에게 보이지 않는 것이 있다는 걸

U+feff ZERO WIDTH NO-BREAK SPACE

줄에~ 후에댓글. 해당 보이지 않는 문자는 주석 문자로 Biber에서 숨겨지지 않으므로 이러한 무해한 경고가 생성됩니다. (BibTeX와 마찬가지로 Biber는 항목 외부의 텍스트를 무시합니다. 그러나 BibTeX와 달리 Biber는 항목 외부의 텍스트가 로 주석으로 표시되지 않는 한 가능한 정크 문자에 대해 경고합니다 . BibTeX는 주석 문자로 %인식하지 않습니다 .%biblatex 파일의 코드 주석,BibTeX 파일에서 주석이 권장되지 않습니까?,bib 파일의 텍스트 섹션을 주석 처리합니다..)

언제든지 Biber의 "정크 캐릭터" 경고를 무시할 수 있습니다. 이는 단지 뭔가가 있다는 신호일 뿐입니다.~할 것 같다.bib누락되었거나 가짜 중괄호 또는 쉼표와 같이 가 잘못되었습니다 . 하지만 그것이 나쁜 의미일 필요는 없습니다. 일반적으로 뭔가 정말 잘못된 경우 심각한 오류가 발생합니다.

비결은보이지 않는 문자를 제거

% Encoding: UTF-8

@article{aguzzi2013microglia,
  title   = {Microglia: scapegoat, saboteur, or something else?},
  author  = {Aguzzi, Adriano and Barres, Ben A. and Bennett, Mariko L.},
  journal = {Science},
  volume  = {339},
  number  = {6116},
  pages   = {156--161},
  year    = {2013},
}

Biber는 댓글 자체에 대해 불평하지 않습니다.

일반적으로 이름 이니셜을 단순히 문자만 표시하는 것보다 점으로 끝내는 것이 더 좋습니다.

답변2

비슷한 문제가 있었는데 유니코드 변환기를 사용해도 답을 찾을 수 없었습니다.

"@article" 바로 앞에 숨겨진 기호를 삭제하는 것이 비결이었습니다.

답변3

다음은 ASCII가 아닌 문자가 포함된 줄을 인쇄하는 스크립트입니다. UTF-8을 사용하여 해당 라인을 디코딩할 수 있다고 가정합니다.

import sys

with open(sys.argv[1], 'rb') as f:
    data = f.readlines()

for n, line in enumerate(data):
    try:
        line.decode('ascii')
    except UnicodeDecodeError as e:
        line = line.decode('utf-8')
        print(f'{n}: {line}')
        print(f'  ^-- {e}')

용법:python3 nonascii.py filename.bib

관련 정보