Academic Writing

BibTeX và BibLaTeX được giải thích

BibTeX và BibLaTeX lưu trữ trích dẫn trong một tệp tương tự, nhưng chúng xử lý và định dạng dữ liệu đó theo những cách hoàn toàn khác nhau. Đây là sự khác biệt ở backend thực sự phân tách chúng, vì sao BibLaTeX xử lý các nguồn không phải tiếng Anh và các nguồn bất thường tốt hơn, và việc chuyển đổi thực sự tốn kém những gì.

5 min
Table comparing BibTeX vs BibLaTeX by formatting logic, backend processor and Unicode support

Nghiên cứu sinh tiến sĩ mở mẫu luận văn LaTeX cũ của người hướng dẫn để bắt đầu viết luận văn của riêng mình, nhưng lại thấy một tệp References.bib nằm cạnh lệnh bibliographystyle trỏ tới apalike. Anh ta hoàn toàn không biết hệ thống trích dẫn của hai thứ đó là gì. Thư mục không chứa gì cho thấy điều này một cách trực tiếp, và hơn nữa, tác giả ban đầu của mẫu giờ đã ở cách đó ba vị trí postdoc và một châu lục.

BibTeX so với BibLaTeX mới là câu hỏi thực sự ẩn dưới sự bối rối đó. Cả hai đều lưu dữ liệu trích dẫn trong một tệp tương tự, nhưng chúng xử lý, định dạng và xuất dữ liệu đó bằng những cơ chế hoàn toàn khác nhau. Biết được một tài liệu đang dùng hệ nào, và thực sự thay đổi gì nếu chuyển đổi, là khác biệt giữa một buổi chiều bị lãng phí vì bối rối và một buổi chiều dành cho việc viết.

Trích dẫn một nguồn đúng cách chỉ luôn là một nửa của câu hỏi về phong cách tham khảo, và phần được trình bày trong hướng dẫn về phong cách tham khảo của TextPulse còn rộng hơn nhiều so với bất kỳ hệ dàn trang nào. Bài viết này chỉ tập trung hẹp vào nhánh riêng của câu hỏi đó trong LaTeX: BibTeX hay BibLaTeX, và điều gì thực sự phân biệt chúng.

BibTeX so với BibLaTeX: Điểm tách biệt thực sự xảy ra ở đâu

BibTeX là hệ cũ hơn trong hai hệ, và nó thực hiện cùng lúc hai nhiệm vụ. Nó đọc dữ liệu nằm trong một tệp .bib, và nó định dạng dữ liệu đó thành một danh mục tài liệu tham khảo hoàn chỉnh, được dẫn dắt bởi một tệp kiểu riêng, một tệp .bst, tệp này quyết định mỗi mục nhập nên trông như thế nào. Ngôn ngữ .bst nhỏ và được thiết kế chuyên biệt cho đúng một nhiệm vụ này, và đó cũng là giới hạn của nó, việc mở rộng nó để bao phủ một loại nguồn mà tác giả ban đầu của nó chưa từng dự định là một kỹ năng chuyên môn riêng.

BibLaTeX tách hai nhiệm vụ đó ra. Việc định dạng diễn ra ngay trong LaTeX, được điều khiển bởi các macro LaTeX thông thường trong phần tiền đề của chính tài liệu, thay vì bởi một tệp kiểu riêng biệt. Việc xử lý dữ liệu, đọc, sắp xếp và chuẩn bị các mục trong tệp .bib để xuất ra, được đảm nhiệm bởi một chương trình backend chuyên dụng gọi là Biber, mà BibLaTeX tự động gọi trong quá trình biên dịch. BibTeX xử lý và định dạng trong một bước, còn BibLaTeX tách hai nhiệm vụ giữa các macro LaTeX và Biber. Sự tách biệt về kiến trúc đó mới là câu trả lời thực sự cho điều phân biệt chúng.

BibTeXBibLaTeX
Logic định dạngMột tệp kiểu .bst riêng biệtCác macro LaTeX bên trong tài liệu
Bộ xử lý backendBibTeX tự nó, trong một bướcBiber, được chạy tự động tại thời điểm biên dịch
Hỗ trợ UnicodeKhông có hỗ trợ gốcĐầy đủ
Thư mục tài liệu đa ngôn ngữCần một gói bổ trợTích hợp sẵn, theo thiết lập ngôn ngữ của tài liệu
Lệnh tiền đề điển hìnhbibliographystyle cộng bibliographyusepackage biblatex cộng addbibresource

Tại sao BibLaTeX xử lý tốt hơn các nguồn không phải tiếng Anh và các nguồn bất thường

Khoảng trống về Unicode tự nó giải thích phần lớn vấn đề với tiếng không phải tiếng Anh. BibTeX không có hỗ trợ Unicode gốc, vì vậy tên tác giả hoặc nhan đề chứa một ký tự nằm ngoài bộ Latin cơ bản trước hết cần một cách xử lý thay thế. Backend Biber của BibLaTeX hỗ trợ Unicode đầy đủ, vì vậy các ký tự có dấu, các hệ chữ không phải Latin và mọi thứ khác trong ngôn ngữ gốc của một nguồn đều đi thẳng vào tệp .bib và được xuất ra với định dạng đúng.

Xử lý ngôn ngữ vượt ra ngoài từng ký tự riêng lẻ. BibLaTeX tự động điều chỉnh các thuật ngữ nối, chẳng hạn như edition hoặc editor, để khớp với ngôn ngữ mà tài liệu được đặt theo thông qua babel hoặc polyglossia, và nó đã tiếp nhận các chức năng trước đây nằm trong một số gói bổ trợ riêng biệt dành cho thư mục tài liệu đa ngôn ngữ hoặc nhiều phần. Các kiểu BibTeX cổ điển thường được viết cho một ngôn ngữ, gần như luôn là tiếng Anh, vì vậy một tài liệu trích dẫn nguồn tiếng Pháp hoặc tiếng Đức theo thông lệ cần thêm một gói riêng chỉ cho mục đích đó.

Nửa sau của khẳng định này xuất phát từ cùng một sự tách biệt về kiến trúc. Bằng cách giữ các quy tắc định dạng của mình trong các macro LaTeX thay vì một ngôn ngữ kiểu dáng nhỏ được thiết kế chuyên biệt, BibLaTeX có thể hỗ trợ một tập hợp rộng hơn các kiểu mục nhập theo mặc định. Những kiểu này bao gồm các nguồn như tài nguyên trực tuyến, bộ dữ liệu và các công trình nhiều tập mà thiết kế ban đầu của BibTeX chưa từng tính đến. Một nhà nghiên cứu trích dẫn một bộ dữ liệu, một bản tiền in hoặc một báo cáo chỉ tồn tại trực tuyến thường sẽ thấy đã có sẵn một kiểu mục nhập BibLaTeX được xây dựng cho nó, trong khi một quy trình BibTeX có nghĩa là phải uốn một kiểu hiện có, thường là kiểu miscellaneous bao quát, để phù hợp.

Nhân hóa bài viết của bạn

Biến đổi văn bản có hỗ trợ AI của bạn và làm cho nó nghe tự nhiên như do con người viết, mà không chạm vào các từ quan trọng hoặc trích dẫn.

Bắt đầu miễn phí

Làm thế nào để biết tài liệu của bạn đang dùng cái nào

Phần đầu tài liệu quyết định điều đó chỉ trong vài giây. Một tài liệu nạp biblatex, với dòng addbibresource trỏ tới một tệp .bib, đang chạy BibLaTeX. Một tài liệu thay vào đó gọi bibliographystyle rồi bibliography gần cuối tệp, mà không có bất kỳ nhắc đến biblatex nào ở đâu trong phần đầu tài liệu, đang chạy BibTeX cổ điển.

  • Tìm trong phần đầu tài liệu từ biblatex. Nếu nó xuất hiện trong một dòng gói, tài liệu đang dùng BibLaTeX.
  • Tìm addbibresource. Nó chỉ tồn tại trong BibLaTeX, còn BibTeX cổ điển dùng bibliography thay thế.
  • Kiểm tra chương trình mà quá trình biên dịch gọi. Một tài liệu BibLaTeX cần Biber chạy trong chuỗi biên dịch, không phải BibTeX.
  • Kiểm tra các lệnh trích dẫn trong văn bản. parencite và textcite chỉ có trong BibLaTeX, còn cite đơn lẻ hoạt động trong cả hai, đó là lý do vì sao việc kiểm tra phần đầu tài liệu đứng trước.

Việc chuyển từ BibTeX sang BibLaTeX thực sự tốn gì

Tệp .bib tự nó vẫn gần như nguyên vẹn sau khi chuyển đổi, vì cả hai hệ thống đều đọc cùng một định dạng mục cơ sở. Phần lớn các trường được chuyển trực tiếp, và BibLaTeX chấp nhận các tên trường gốc của BibTeX như các bí danh, mặc dù nó cũng cung cấp các lựa chọn chính xác hơn, chẳng hạn một trường ngày thay cho các trường năm và tháng tách biệt.

Khi hệ thống trích dẫn của một tài liệu đã được xác nhận, việc tạo bất kỳ mục mới nào theo đúng dạng sẽ dễ hơn với một bibtex generator chuyên dụng hơn là gõ các trường thô từ trí nhớ, đặc biệt đối với một kiểu nguồn chỉ xuất hiện một lần trong toàn bộ tài liệu.

Chi phí thực sự nằm ở phần đầu tài liệu và chuỗi xây dựng, không nằm ở dữ liệu. bibliographystyle và bibliography cần được thay bằng biblatex và addbibresource, mọi lệnh trích dẫn vay mượn từ natbib cần được kiểm tra đối chiếu với các lệnh tương ứng của BibLaTeX, và trình biên dịch hoặc trình soạn thảo cần được chỉ định chạy Biber thay vì BibTeX trong quá trình xây dựng. Bước cuối cùng đó là bước thường khiến người ta vấp phải, một trình soạn thảo vẫn được cấu hình cho chuỗi xây dựng cũ sẽ tạo ra một tài liệu không có thư mục tài liệu tham khảo nào cả, và cũng không có lỗi nào chỉ ra nguyên nhân thực sự.

Không điều nào trong số này là khó khi đã xác định được, và đó chính là vấn đề. Mỗi phần đều là một thay đổi nhỏ, được ghi chép rõ ràng, nhưng một mẫu kế thừa mà không có giải thích thường sẽ thất bại âm thầm ngay ở bước đầu tiên, bước xây dựng, trước khi người viết thậm chí kịp thấy liệu chính các trích dẫn có hoạt động hay không.

Bạn Có Nên Chuyển Đổi, Hay Để Nguyên Một Mẫu Đang Hoạt Động?

Nếu bạn đã đang tạo ra một tài liệu hoạt động với BibTeX cổ điển, tức là không cần các tính năng mới, chỉ tham chiếu các nguồn bằng tiếng Anh, và không bao giờ cần một kiểu nguồn nào khác ngoài bài báo, sách và báo cáo hội nghị, thì hầu như không có lý do gì để chuyển đổi giữa chừng một dự án. Một mẫu luận văn đang hoạt động, chỉ còn hai tháng nữa là đến hạn, không phải là nơi thích hợp để gánh chi phí di chuyển nêu trên.

Một tài liệu trích dẫn nguồn bằng nhiều ngôn ngữ, lấy dữ liệu từ các bộ dữ liệu, trang web hoặc các loại nguồn phi chuẩn khác, hoặc được thừa kế cụ thể vì tác giả ban đầu đã xây dựng nó xoay quanh BibLaTeX, là một trường hợp khác. Ở đó, câu hỏi không phải là có nên chuyển đổi hay không, mà là liệu tài liệu đó có từng thực sự chạy BibTeX cổ điển hay không, và đó chính là mục đích của bước kiểm tra phần đầu tài liệu ở trên.

Định dạng lại danh mục tài liệu tham khảo cho một tạp chí khác có trang riêng của nó, và sự khác biệt giữa một thư mục chú giải và một tổng quan tài liệu cũng vậy.

Tuy nhiên, không phải mọi vấn đề về trích dẫn đều là vấn đề của LaTeX. Một trình tạo trích dẫn lấy trực tiếp một tài liệu tham khảo từ hồ sơ của nhà xuất bản giải quyết cùng một nhiệm vụ nền tảng cho bất kỳ ai làm việc trong Word thay vì LaTeX, mà không cần một tệp .bst hay một lần chạy Biber nào trong tầm mắt.

XLinkedInFacebook

Câu hỏi thường gặp

BibTeX và BibLaTeX khác nhau ở chỗ công việc định dạng diễn ra ở đâu. BibTeX tự đọc và định dạng dữ liệu trích dẫn, được hướng dẫn bởi một tệp kiểu .bst riêng. BibLaTeX tách nhiệm vụ đó ra, một chương trình backend gọi là Biber xử lý dữ liệu, còn việc định dạng được kiểm soát bởi các macro LaTeX thông thường trong tài liệu. Sự tách biệt đó là lý do BibLaTeX xử lý Unicode, nhiều ngôn ngữ và các kiểu nguồn bất thường dễ dàng hơn.

Sara

Content planner and copywriter at TextPulse. Sara runs the blog day to day, from planning and drafting through to publishing. She writes the practical guides: clear explanations of academic writing problems, aimed at the person who actually has to hand something in.