Saya mencoba menggunakannya org-mode
untuk melakukan hampir semua hal. Dalam kegiatan penulisan ilmiah saya, saya ingin membuat sketsa seluruh kertas dalam .org
file dan kemudian ekspor di LaTeX. Saya tidak ingin memuat .bib
file bibtex di init.el
karena saya bisa memiliki beberapa. Untuk saat ini, saya telah menambahkan ini di kepala .org
file saya :
#+BEGIN_SRC elisp
(setq reftex-default-bibliography '("./references.bib"))
#+END_SRC
Tetapi saya harus menjalankannya secara manual setiap waktu. Apakah ada cara untuk membuatnya otomatis? Yang optimal adalah memiliki arahan di awal setiap .org
file yang mengatakan emacs: "ok, sekarang Anda harus memuat file ini .bib
". Ada petunjuk? Terima kasih.
org-mode
reftex-mode
bibtex
petrux
sumber
sumber
M-x add-file-local-variable
#+STARTUP: do this
.add-file-local-variable-prop-line
I bisa menghasilkan# -*- reftex-default-bibliography: ("./references.bib"); -*-
baris di awal file.Jawaban:
Menambahkan baris seperti berikut ini sudah cukup untuk memberi tahu file
org-mode
mana yang.bib
akan dikonsultasikan:refs
adalah nama file BibTeX (.bib
ekstensi dihilangkan), danplain
adalahbibliographystyle
.Anda kemudian dapat memanggil
org-reftex-citation
(terikatC-c C-x [
secara default) untuk memasukkan referensi.Dari dokumentasi:
Seperti yang disarankan kalimat terakhir, Anda harus menambahkan
ke init-file Anda untuk memastikan referensi diekspor ke LaTeX dengan benar. Ketika saya mengatur ini untuk diri saya sendiri, saya menemukan bahwa saya juga perlu menyesuaikan
org-latex-pdf-process
untuk membuat ekspor PDF berfungsi:Tambahan
Jika Anda tidak ingin menggunakan pengikatan default untuk
org-reftex-citation
, Anda dapat mengatur pengikatan kunci khusus untuk pengikatan tersebut. Misalnya, yang berikut ini mengikatorg-reftex-citation
pengikatan default untukreftex-citation
:sumber
# -*- reftex-default-bibliography: ("./references.bib"); -*-
setara, dengan keuntungan bahwa saya dapat menggunakan pengikatan kunci RefTeX yang biasa untuk menambah referensi baru. Apakah saya melewatkan sesuatu? Haruskah kita mengedit jawaban untuk membuatnya lebih lengkap untuk pembaca masa depan? Terima kasih.org-reftex-citation
ke urutan kunci yang samareftex-citation
biasanya menggunakan ... Lihat pembaruan untuk jawaban saya.org-reftex-citation
? Jika saya menambahkan yang kedua#+BIBLIOGRAPHY
, maka yang pertama tampaknya diabaikan.(setq reftex-default-bibliography '("./a.bib" "./b.bib"))
tampaknya melakukan triknya. Begitu juga# -*- reftex-default-bibliography: ("./refs1.bib" "./refs2.bib"); -*-
, meskipun memunculkan peringatan bahwa variabel ini tidak boleh didefinisikan secara lokal.Tampaknya ox-bibtex tidak termasuk dalam paket org terbaru (8.2.10-34-gc41bbc-elpa). Jadi saya mencari secara online dan memasukkannya ke direktori / org / lisp / setelah diunduh. Tapi saya mengalami kesalahan berikut ketika mencoba melakukan ekspor yang melibatkan beberapa bibtex.
Lalu saya periksa file 'org-element.el', tentu saja tidak ada fungsi yang sudah ditentukan sebelumnya. Tetapi mengapa tidak ada? Dokumen API online dari elemen-org menyebutkannya sekaligus .
Jadi saya kira saat ini tidak mungkin untuk menggunakan RefTeX seperti yang dijelaskan dokumen kecuali Anda bersedia untuk beralih ke versi beta atau yang lebih lama. Lihat
Di sini saya membagikan cara saya untuk menggunakan versi beta
git clone git://orgmode.org/org-mode.git
Pindahkan folder ke
~/.emacs.d/
dan beri nama sebagaiorg-beta
Ubah
load-path
, biarkan versi beta membayangi versi lain, dan sertakan direktori kontribusi pengguna(opsional) Anda dapat menggunakan perintah make untuk mengompilasi file sumber dan membangun dokumen
Sekarang kamu bisa
(require 'ox-bibtex)
. Saya lebih suka menulis seperti ini:(eval-after-load 'org (require 'ox-bibtex))
Untuk menghasilkan daftar referensi di tempat yang tepat, letakkan sesuatu seperti
#+BIBLIOGRAPHY: your_bib_lib_name plain option:-d
di akhir file org. Opsi lainnya silakan merujuk ke dokumen bantuan diox-bibtex.el
Untuk membuat bagian ekspor HTML berfungsi dengan baik, Anda mungkin memerlukan bibtex2html terbaru, yaitu 1,98. Untuk membuatnya dari sumber, unduh dari github, dan ikuti instruksi di dokumen bantuan 'README'.
Jika Anda menggunakan windows seperti saya, gunakan Cygwin64 dengan semua paket devel. Menggunakan Cygwin64, cd ke dir bibtex2html, dan ketik
./configure
, tunggu selesai, lalu ketikmake
, tunggu selesai. Sekarang di dir ini, Anda akan dapatkanbib2bib.exe
,bibtex2html.exe
danaux2bib
. Salin mereka ke beberapa dir di var lingkungan AndaPATH
. Uji dengan mengetikkanbibtex2html
cmd.Saya harus melakukan pekerjaan di atas karena saya menggunakan texlive2014. Jika Anda adalah pengguna miktek, bibtex2html 1.95 mungkin berfungsi dengan baik, yang dapat dengan mudah diinstal dengan installer windows.
Untuk membuat bagian ekspor PDF berfungsi dengan benar, gunakan kode berikut untuk menginisialisasi mode-org Anda:
Ini adalah bagian 'bibtex' yang melakukan pekerjaan. Saya menggunakan perintah shell escape untuk paket lateks.
sumber
contrib/lisp
, yang termasuk ox-bibtex. Jadi Anda harus menginstal mode-org dari sumber termasukcontrib/lisp
atau hanya menyalinox-bibtex.el
ke path-load Anda.org-mode
dari sumber untuk mendapatkancontrib
direktori. Seperti yang dijelaskan di sini , Org memiliki arsip ELPA sendiri. Yang perlu Anda lakukan adalah menambahkan arsip itu kepackage-archives
; Anda kemudian dapat menginstal (dan memperbarui)org-plus-contrib
menggunakan manajer paket. Tentu saja, ini bukan untuk mengatakan bahwa pendekatan yang Anda sarankan tidak berhasil; Saya hanya ingin menyebutkan (untuk orang lain yang menemukan diskusi ini) bahwa ada pendekatan lain yang tidak melibatkan biaya tambahan karena harus memperbaruiorg-mode
secara terpisahgit
.