Я пытаюсь использовать, org-mode
чтобы сделать почти все. В своей научной деятельности я хотел бы набросать целую статью в .org
файле и затем экспортировать в LaTeX. Я не хочу загружать .bib
файл bibtex в, так init.el
как у меня может быть несколько файлов . Сейчас я добавил это в начало моего .org
файла:
#+BEGIN_SRC elisp
(setq reftex-default-bibliography '("./references.bib"))
#+END_SRC
Но я должен выполнить это каждый раз вручную. Есть ли способ сделать это автоматически? Оптимальным было бы иметь директиву в начале каждого .org
файла, говорящую emacs: «хорошо, теперь вы должны загрузить этот .bib
файл». Любой намек? Благодарю.
org-mode
reftex-mode
bibtex
petrux
источник
источник
M-x add-file-local-variable
#+STARTUP: do this
.add-file-local-variable-prop-line
I, я могу сгенерировать# -*- reftex-default-bibliography: ("./references.bib"); -*-
строку в начале файла.Ответы:
Добавление строки, подобной следующей, достаточно, чтобы указать, к
org-mode
какому.bib
файлу обращаться:refs
это имя файла BibTeX (.bib
расширение опущено), иplain
этоbibliographystyle
.Затем вы можете позвонить
org-reftex-citation
(привязан кC-c C-x [
по умолчанию), чтобы вставить ссылки.Из документации:
Как видно из последнего предложения, вам нужно добавить
в ваш файл инициализации, чтобы убедиться, что ссылки экспортируются в LaTeX должным образом. Когда я настроил это для себя, я обнаружил, что мне также нужно настроить
org-latex-pdf-process
, чтобы экспорт PDF работал:добавление
Если вы не хотите использовать привязку по умолчанию для
org-reftex-citation
, вы можете настроить привязку ключа для нее. Например, следующаяorg-reftex-citation
привязка к привязке по умолчанию дляreftex-citation
:источник
# -*- reftex-default-bibliography: ("./references.bib"); -*-
эквивалента, с тем преимуществом, что я могу использовать обычную привязку ключа RefTeX для добавления новой ссылки. Я что-то пропустил? Должны ли мы отредактировать ответ, чтобы сделать его более полным для любого будущего читателя? Благодарю.org-reftex-citation
к той же последовательности клавиш, которуюreftex-citation
обычно использует ... Смотрите обновления моего ответа.org-reftex-citation
? Если добавить второй#+BIBLIOGRAPHY
, затем первый , кажется, игнорируются.(setq reftex-default-bibliography '("./a.bib" "./b.bib"))
кажется, сделать трюк. Так и есть# -*- reftex-default-bibliography: ("./refs1.bib" "./refs2.bib"); -*-
, хотя и выдает предупреждение, что эта переменная не должна определяться локально.Похоже, что ox-bibtex не входит в последнюю версию org (8.2.10-34-gc41bbc-elpa). Поэтому я искал его в Интернете и поместил в каталог / org / lisp / после загрузки. Но я столкнулся со следующей ошибкой при попытке выполнить экспорт с использованием некоторого bibtex.
Затем я проверяю файл 'org-element.el', конечно же, нет такой предопределенной функции. Но почему там нет? Онлайновый документ API org-element упомянул об этом один раз .
Поэтому я думаю, что в настоящее время невозможно использовать RefTeX в качестве способа, описанного в документе, если вы не желаете перейти на бета-версию или более старую. Видеть
Здесь я поделюсь своим способом использования бета-версии
git clone git://orgmode.org/org-mode.git
Переместите папку
~/.emacs.d/
и назовите ее какorg-beta
Измените
load-path
, пусть бета-версия затеняет другую версию, и включите пользовательский каталог(необязательно) вы можете использовать команду make для компиляции исходного файла и сборки документа
Теперь вы можете
(require 'ox-bibtex)
. Я предпочитаю писать так:(eval-after-load 'org (require 'ox-bibtex))
Чтобы создать список ссылок в нужном месте, поместите что-то вроде
#+BIBLIOGRAPHY: your_bib_lib_name plain option:-d
конца файла org. Дополнительные параметры см. В справочном документе вox-bibtex.el
Для правильной работы экспортной части HTML вам может потребоваться последняя версия bibtex2html, то есть 1.98. Чтобы собрать его из исходного кода, загрузите его с github и следуйте инструкциям в справочном документе «README».
Если вы используете Windows, как я, используйте Cygwin64 со всеми пакетами devel. Используя Cygwin64, перейдите в каталог bibtex2html и введите «
./configure
ждать окончания», затем введите «make
ждать окончания». Теперь в этой директории, вы получитеbib2bib.exe
,bibtex2html.exe
иaux2bib
. Скопируйте их в какой-нибудь каталог в вашей среде varPATH
. Проверьте это, набравbibtex2html
в cmd.Я должен сделать вышеупомянутую работу, потому что я использую texlive2014. Если вы пользователь miktek, bibtex2html 1.95 может хорошо работать, и его легко установить с помощью установщика Windows.
Чтобы заставить часть экспорта PDF работать правильно, используйте следующий код для инициализации вашего режима org:
Это часть «bibtex», которая делает работу. Я использую команду оболочки escape для отчеканенного пакета латекса.
источник
contrib/lisp
, в которые входит ox-bibtex. Таким образом , вы должны установить орг-режим из источника , включаяcontrib/lisp
или просто скопироватьox-bibtex.el
на свой путь нагрузки.org-mode
из исходного кода, чтобы получитьcontrib
каталог. Как объясняется здесь , Org имеет свой собственный архив ELPA. Все, что вам нужно сделать, это добавить этот архив вpackage-archives
; затем вы можете установить (и обновить),org-plus-contrib
используя менеджер пакетов. Конечно, это не значит, что предлагаемый вами подход не работает; Я просто хотел упомянуть (для всех, кто сталкивается с этим обсуждением), что есть другой подход, который не включает в себя накладные расходы на обновление поorg-mode
отдельностиgit
.