當.bib文件具有與.tex文件不同的編碼時,LaTeX處理情況嗎?例如,.tex在ISO-8859-2中,而.bib在UTF-8中。 LaTeX可以實時轉換編碼嗎?或者唯一的辦法就是手動?乳膠和bibtex文件的不同編碼
回答
首先,根據LyX wiki中文提供不能使用UTF-8:在UTF-8(即,Unicode)的,這是現今的默認編碼
中文提供不支持的文件文件編碼在大多數操作系統上。原因是目前的BibTeX(v。0.99c)在1988年發佈,因此早於unicode的出現。除非長期公佈的BibTeX 1.0版或許多有計劃的潛在成功應用程序準備就緒,否則拉丁文1(ISO-8859-1)或其他8位編碼必須用於bib文件(這不會影響LaTeX編碼,它仍然可以是utf8)。
通常情況下,無論是中文提供文件中被逐字複製到LaTeX的源代碼(有一些格式可能和案例changings,&角),如書名,作者,&℃。
所以你的BibTeX文件編碼必須匹配你的LaTeX文件使用的,否則事情變得有趣。除非文檔包含正確的軟件包,否則您也不能在BibTeX中使用babel提供的命令(例如"a
,ä
,由德語提供)。
規範的方法是使BibTeX文件不知道任何編碼或包裝問題總是用適當的命令指定特殊字符。
這基本上意味着,如果你想絕對確定它的工作原理,而不是編寫ä
,你將不得不使用{\" a}
。似乎是相當標準的做法。
由奧倫·帕塔什尼克的中文提供手動BibTeXing還詳細說明了這一點:
中文提供現在處理重音 字符。例如,如果你有一個 條目與這兩個領域
author = "Kurt G{\"o}del", year = 1931,
,如果您使用的是阿爾法 書目的風格,然後將中文提供構建 標籤
[Göd31]
此 項,這是你要什麼想。到 得到這個功能,你必須 把整個重音字符放在 括號中;在這種情況下,{\"o}
或{\"{o}}
會做。此外,這些大括號本身一定不能用大括號包圍 ( 可能劃定整個字段或 整個條目除外);並且必須有一個 反斜槓作爲大括號內的第一個字符 。因此{G{\"{o}}del}
和{G\"{o}del}
將 都不適用於本示例。此功能 可處理表3.1和3中找到的所有重音符號 以及除所有非符號外國符號外的 符號。2 of LaTeX書。此功能的行爲類似於 定義的「重音」;我們馬上會看到一個例子。 爲了計算標籤中的字母 ,BibTeX認爲大括號內包含的所有內容均爲 單個字母。
中文提供對任何非標準的字符編碼隨機支持 - 實際上有時它的工作原理,大部分不正式,不支持的時間(More details)。對於.tex,如果我不用英文寫,我用UTF-8保存.tex,用\ usepackage [utf8 ] {inputenc}
即使在最新的版本中,BibTeX也存在非ASCII字符的巨大問題如果您更喜歡現代系統,我想推薦biblatex和biber的組合,兩者仍處於測試階段即使在生產環境中它們也能很好地工作,通過這種組合,與LaTeX書目有關的大多數問題都將消失,作爲附註,biblatex documentation也包含了關於傳統BibTeX的編碼問題的章節(第2.4.3節)
可以更改在運行中輸入編碼:
\inputencoding{latin2}
\bibliography{mybib}
\inputencoding{utf8}
的\inputencoding
命令由inputenc
包提供。
- 1. 乳膠文檔中奇數Bibtex行爲
- 2. 乳膠編號?
- 3. 乳膠和multibib
- 4. lscape和超乳膠乳
- 5. 生成膠乳源文件
- 6. 包括乳膠圖文件
- 7. matplotlib乳膠字體編碼錯誤
- 8. 乳膠和R束?
- 9. 乳膠semiverbatim和fancyvrb
- 10. 乳膠 - \ addsec和headsepline
- 11. vim和乳膠盒
- 12. 在java中替換bibtex或乳膠{\ dg}字符串命令
- 13. 從python編譯膠乳
- 14. 乳膠+源代碼導入
- 15. 乳膠重拍頁碼
- 16. CodeCogs乳膠編輯器不起作用
- 17. 的Vim和乳膠套房
- 18. matplotlib不能解碼UTF-8膠乳
- 19. 跳出gvim中的「主乳膠文件」
- 20. 乳膠不能PHP的exec()
- 21. 編譯乳膠問題和嵌入Python代碼
- 22. 乳膠和文本matplotlib標題
- 23. 乳膠寬和長表
- 24. 冰島,UTF8和乳膠
- 25. 問題乳膠和pdfpages
- 26. Inkscape和乳膠擴展
- 27. Django模板和乳膠
- 28. Matplotlib圖例乳膠文本
- 29. 文本在數字乳膠
- 30. 乳膠:在兩列文章