2010-03-17 20 views
52

Tôi viết luận án của tôi trong Latex, và tôi có tài liệu tham khảo trong một tập tin riêng thesis.bib trông như sauBiên soạn LaTex nguồn Yếm

@Article{xxx, 
    author =  "D.A. Reinhard", 
    title =  "Case Study", 
    year =   "1985", 
} 

và tôi tham khảo chúng trong tài liệu chính của tôi như ~ \ trích dẫn {xxx}

Khi tôi biên dịch, tài liệu chính với: pdflatex main.tex hơn nó hiển thị cho tôi dấu chấm hỏi thay vì tham chiếu thích hợp vào thư mục. Tôi có cần tự biên dịch mã nguồn gốc không? Nếu có, ai đó có thể vui lòng cho tôi biết lệnh cho Linux

Rất cám ơn!

Trả lời

17

Bạn phải chạy 'BibTeX':

latex paper.tex 
bibtex paper 
latex paper.tex 
latex paper.tex 
dvipdf paper.dvi 
70

Bạn cần phải biên dịch file BibTeX.

Giả sử bạn có article.texarticle.bib. Bạn cần phải chạy:

  • latex article.tex (điều này sẽ tạo ra một tài liệu với dấu hỏi ở vị trí của tài liệu tham khảo không rõ)
  • bibtex article (điều này sẽ phân tích tất cả các file .bib được bao gồm trong bài viết và tạo metainformation về tài liệu tham khảo)
  • latex article.tex (tài liệu này sẽ tạo ra với tất cả các tài liệu tham khảo ở các vị trí chính xác)
  • latex article.tex (chỉ trong trường hợp nếu tài liệu tham khảo thêm đánh số trang đã phá vỡ ở đâu đó)
+4

Ngoài ra, hãy xem xét sử dụng mk latex (http://www.phys.psu.edu/~collins/software/latexmk-jcc/), một chương trình perl tự động chạy bất cứ điều gì cần thiết (latex, bibtex, makeindex, v.v ... .) theo đúng thứ tự để tạo ra một tài liệu cuối cùng được cập nhật bất cứ khi nào bạn thay đổi một cái gì đó. – rcollyer

+1

Tôi mạnh mẽ thứ hai đề nghị của latexmk. Tôi không thể sống thiếu nó :) –

+0

Tôi đã chỉnh sửa câu trả lời này vì lệnh bibtex không cho phép mở rộng. (và phần mở rộng sẽ là ".aux" không ".tex" cho nó ngay cả khi nó đã làm) –

11

Tôi đang sử dụng texmaker làm trình chỉnh sửa. bạn phải biên dịch nó trong thiết bị đầu cuối như sau:

  1. pdflatex filename (có hoặc không có phần mở rộng)
  2. BibTeX filename (không có phần mở rộng)
  3. pdflatex filename (có hoặc không có phần mở rộng)
  4. pdflatex tên tệp (có hoặc không có tiện ích mở rộng)

nhưng đôi khi, khi bạn sử dụng \citep{}, tên của tham chiếu sẽ không hiển thị. Trong trường hợp này, tôi phải mở tệp references.bib để người tạo thư có thể nắm bắt các tham chiếu từ tệp references.bib. Sau mỗi phiên bản của tệp bib, tôi phải đóng và mở lại nó !! Vì vậy, nhà lập trình có thể nắm bắt nội dung của tệp .bbl mới mỗi lần. Nhưng hãy nhớ, bạn cũng phải chạy mã của bạn trong texmaker quá.

3

Chỉ trong trường hợp nó giúp ai đó, vì câu hỏi này (và câu trả lời) đã giúp tôi rất nhiều; Tôi quyết định tạo ra một bí danh mà chạy những 4 lệnh trong một vòng:

Chỉ cần thêm dòng sau vào tập tin ~/.bashrc của bạn (sửa đổi từ khóa main phù hợp với tên của .tex.bib bạn file)

alias texbib = 'pdflatex main.tex && bibtex main && pdflatex main.tex && pdflatex main.tex' 

Và bây giờ, bằng cách thực hiện chỉ lệnh texbib (bí danh), tất cả các lệnh này sẽ được thực thi tuần tự.