Staram org-mode
się robić prawie wszystko. W mojej działalności naukowej chciałbym naszkicować cały artykuł w .org
pliku, a następnie wyeksportować do LaTeX. Nie chcę ładować .bib
pliku bibtex do, init.el
ponieważ mogłem mieć wiele. Na razie dodałem to na początku mojego .org
pliku:
#+BEGIN_SRC elisp
(setq reftex-default-bibliography '("./references.bib"))
#+END_SRC
Ale muszę to wykonać ręcznie za każdym razem. Czy jest jakiś sposób, aby uczynić to automatycznym? Optymalne byłoby posiadanie dyrektywy na początku każdego .org
pliku z informacją emacs: „ok, teraz powinieneś załadować ten .bib
plik”. Jakaś wskazówka? Dzięki.
org-mode
reftex-mode
bibtex
petrux
źródło
źródło
M-x add-file-local-variable
#+STARTUP: do this
.add-file-local-variable-prop-line
I mógłbym wygenerować# -*- reftex-default-bibliography: ("./references.bib"); -*-
linię na początku pliku.Odpowiedzi:
Dodanie następującego wiersza wystarczy, aby powiedzieć,
org-mode
który.bib
plik ma zostać sprawdzony:refs
to nazwa pliku BibTeX (.bib
pominięte rozszerzenie) iplain
tobibliographystyle
.Następnie możesz zadzwonić
org-reftex-citation
(C-c C-x [
domyślnie powiązany ), aby wstawić odniesienia.Z dokumentacji:
Jak sugeruje ostatnie zdanie, musisz dodać
do pliku init, aby upewnić się, że referencje są poprawnie eksportowane do LaTeX. Kiedy skonfigurowałem to dla siebie, stwierdziłem, że muszę również dostosować
org-latex-pdf-process
, aby eksport PDF działał:Uzupełnienie
Jeśli nie chcesz używać domyślnego powiązania dla
org-reftex-citation
, możesz skonfigurować niestandardowe powiązanie klucza dla niego. Na przykład następująceorg-reftex-citation
powiązanie z domyślnym powiązaniem dlareftex-citation
:źródło
# -*- reftex-default-bibliography: ("./references.bib"); -*-
ekwiwalentu, z tą korzyścią, że mogę użyć zwykłego powiązania klucza RefTeX, aby dodać nowe odwołanie. Czy coś brakuje? Czy powinniśmy edytować odpowiedź, aby była bardziej kompletna dla przyszłego czytelnika? Dzięki.org-reftex-citation
tę samą sekwencję klawiszy, którejreftex-citation
normalnie używa ... Zobacz aktualizacje mojej odpowiedzi.org-reftex-citation
? Jeśli dodam drugi#+BIBLIOGRAPHY
, pierwszy wydaje się być ignorowany.(setq reftex-default-bibliography '("./a.bib" "./b.bib"))
wydaje się załatwić sprawę. Tak też jest# -*- reftex-default-bibliography: ("./refs1.bib" "./refs2.bib"); -*-
, choć generuje ostrzeżenie, że tej zmiennej nie należy definiować lokalnie.Wygląda na to, że ox-bibtex nie jest zawarty w najnowszym pakiecie org (8.2.10-34-gc41bbc-elpa). Przeszukałem go online i po pobraniu umieściłem w katalogu / org / lisp /. Ale natrafiłem na następujący błąd podczas próby eksportu z użyciem bibtex.
Następnie sprawdzam plik „org-element.el”, oczywiście nie ma takiej predefiniowanej funkcji. Ale dlaczego go nie ma? Dokument API online elementu org wspominał o tym raz .
Sądzę więc, że obecnie nie można używać RefTeX w sposób opisany w dokumencie, chyba że chcesz przejść na wersję beta lub starszą. Widzieć
Tutaj udostępniam sposób korzystania z wersji beta
git clone git://orgmode.org/org-mode.git
Przenieś folder
~/.emacs.d/
i nazwij go jakoorg-beta
Zmodyfikuj
load-path
, pozwól, aby wersja beta śledziła inną wersję i dołącz katalog użytkownika(opcjonalnie) możesz użyć polecenia make, aby skompilować plik źródłowy i skompilować dokument
Teraz możesz
(require 'ox-bibtex)
. Wolę pisać w ten sposób:(eval-after-load 'org (require 'ox-bibtex))
Aby wygenerować listę odnośników we właściwym miejscu, umieść coś podobnego
#+BIBLIOGRAPHY: your_bib_lib_name plain option:-d
na końcu pliku org. Więcej opcji można znaleźć w dokumencie pomocy wox-bibtex.el
Aby część eksportu HTML działała poprawnie, możesz potrzebować najnowszego bibtex2html, tj. 1,98. Aby zbudować go ze źródła, pobierz go z github i postępuj zgodnie z instrukcjami zawartymi w dokumencie pomocy „README”.
Jeśli używasz systemu Windows takiego jak ja, użyj Cygwin64 ze wszystkimi pakietami devel. Używając Cygwin64, przejdź do katalogu bibtex2html i wpisz
./configure
, czekaj zakończ, a następnie wpiszmake
, czekaj zakończ. Teraz w tym katalogu, dostanieszbib2bib.exe
,bibtex2html.exe
iaux2bib
. Skopiuj je do katalogu w swoim środowisku varPATH
. Przetestuj to, wpisującbibtex2html
cmd.Muszę wykonać powyższą pracę, ponieważ używam texlive2014. Jeśli jesteś użytkownikiem miktek, bibtex2html 1.95 może po prostu dobrze działać, co można łatwo zainstalować za pomocą instalatora systemu Windows.
Aby część eksportu PDF działała poprawnie, użyj następującego kodu, aby zainicjować tryb organizacji:
To część „bibtex” spełnia swoje zadanie. Używam polecenia ucieczki powłoki dla wybitej paczki lateksu.
źródło
contrib/lisp
, w tym ox-bibtex. Musisz więc zainstalować tryb organizacji ze źródła, w tymcontrib/lisp
lub po prostu skopiowaćox-bibtex.el
na ścieżkę ładowania.org-mode
ze źródła, aby uzyskaćcontrib
katalog. Jak wyjaśniono tutaj , Org ma własne archiwum ELPA. Wszystko, co musisz zrobić, to dodać to archiwumpackage-archives
; następnie możesz zainstalować (i zaktualizować)org-plus-contrib
za pomocą menedżera pakietów. Oczywiście nie oznacza to, że proponowane podejście nie działa; Chciałem tylko wspomnieć (dla każdego, kto spotyka się z tą dyskusją), że istnieje inne podejście, które nie wiąże się z koniecznościąorg-mode
osobnej aktualizacjigit
.