Estou tentando org-mode
fazer quase tudo. Na minha atividade de redação científica, gostaria de desenhar um artigo inteiro em um .org
arquivo e depois exportá-lo para o LaTeX. Eu não quero carregar o .bib
arquivo bibtex no init.el
como eu poderia ter vários. Por enquanto, adicionei isso no início do meu .org
arquivo:
#+BEGIN_SRC elisp
(setq reftex-default-bibliography '("./references.bib"))
#+END_SRC
Mas eu tenho que executá-lo manualmente sempre. Existe alguma maneira de torná-lo automático? O ideal seria ter uma diretiva no início de cada .org
arquivo dizendo emacs: "ok, agora você deve carregar este .bib
arquivo". Alguma dica? Obrigado.
org-mode
reftex-mode
bibtex
petrux
fonte
fonte
M-x add-file-local-variable
#+STARTUP: do this
.add-file-local-variable-prop-line
eu poderia gerar a# -*- reftex-default-bibliography: ("./references.bib"); -*-
linha no início do arquivo.Respostas:
Adicionar uma linha como a seguinte é suficiente para dizer
org-mode
qual.bib
arquivo consultar:refs
é o nome do arquivo BibTeX (.bib
extensão omitida) eplain
é obibliographystyle
.Você pode ligar
org-reftex-citation
(vinculadoC-c C-x [
por padrão) para inserir referências.A partir da documentação:
Como a última frase sugere, você precisará adicionar
para o seu arquivo init para garantir que as referências sejam exportadas para o LaTeX corretamente. Quando configurei isso por mim, descobri que também precisava personalizar
org-latex-pdf-process
para fazer com que as exportações de PDF funcionassem:Termo aditivo
Se você não quiser usar a ligação padrão
org-reftex-citation
, poderá configurar uma ligação de chave personalizada para ela. Por exemplo, o seguinte vinculaorg-reftex-citation
à ligação padrão parareftex-citation
:fonte
# -*- reftex-default-bibliography: ("./references.bib"); -*-
equivalente, com a vantagem de poder usar a ligação de chave RefTeX usual para adicionar uma nova referência. Estou esquecendo de algo? Vamos editar a resposta para torná-la mais completa para qualquer futuro leitor? Obrigado.org-reftex-citation
a mesma sequência de teclas quereftex-citation
normalmente usa ... Veja as atualizações na minha resposta.org-reftex-citation
? Se eu adicionar um segundo#+BIBLIOGRAPHY
, o primeiro parece ser ignorado.(setq reftex-default-bibliography '("./a.bib" "./b.bib"))
parece fazer o truque. O mesmo acontece# -*- reftex-default-bibliography: ("./refs1.bib" "./refs2.bib"); -*-
, embora emita um aviso de que essa variável não deve ser definida localmente.Parece que o ox-bibtex não está incluído no pacote organizacional mais recente (8.2.10-34-gc41bbc-elpa). Então eu procurei online e coloquei no diretório / org / lisp / uma vez baixado. Mas encontrei o seguinte erro ao tentar fazer uma exportação envolvendo alguns bibtex.
Então eu verifico o arquivo 'org-element.el', é claro que não existe essa função predefinida. Mas por que não existe? O documento da API on-line do elemento org o mencionou uma vez .
Então, acho que atualmente é impossível usar o RefTeX como a forma como o documento descreve, a menos que você esteja disposto a mudar para a versão beta ou outra mais antiga. Vejo
Aqui eu compartilho minha maneira de usar a versão beta
git clone git://orgmode.org/org-mode.git
Mova a pasta para
~/.emacs.d/
e nomeie-a comoorg-beta
Modifique
load-path
, deixe a versão beta sombrear outra versão e inclua o diretório de contribuição do usuário(opcional) você pode usar o comando make para compilar o arquivo de origem e criar o documento
Agora você pode
(require 'ox-bibtex)
. Eu prefiro escrever assim:(eval-after-load 'org (require 'ox-bibtex))
Para gerar a lista de referências no lugar certo, coloque algo como
#+BIBLIOGRAPHY: your_bib_lib_name plain option:-d
no final do arquivo organizacional. Mais opções, consulte o documento de ajuda emox-bibtex.el
Para que a peça de exportação HTML funcione corretamente, você pode precisar do bibtex2html mais recente, ou seja, 1,98. Para construí-lo a partir da fonte, faça o download no github e siga as instruções no documento de ajuda 'README'.
Se você estiver usando janelas como eu, use o Cygwin64 com todos os pacotes devel. Usando Cygwin64, cd para o diretório bibtex2html e digite
./configure
, wait finish e digitemake
, wait finish. Agora, neste dir, você vai terbib2bib.exe
,bibtex2html.exe
eaux2bib
. Copie-os para algum diretório no seu ambiente varPATH
. Teste-o digitandobibtex2html
o cmd.Eu tenho que fazer o trabalho acima porque uso texlive2014. Se você é um usuário miktek, o bibtex2html 1.95 pode funcionar bem, o que pode ser facilmente instalado com um instalador do Windows.
Para fazer com que a peça de exportação de PDF funcione corretamente, use o seguinte código para inicializar seu modo organizacional:
É a parte 'bibtex' que faz o trabalho. Eu uso o comando shell escape para um pacote de látex cunhado.
fonte
contrib/lisp
, que incluem ox-bibtex. Então você teria que instalar o modo organizacional a partir da fonte, incluindocontrib/lisp
ou apenas copiarox-bibtex.el
para o caminho de carregamento.org-mode
partir da fonte para obter ocontrib
diretório. Conforme explicado aqui , a Org possui seu próprio arquivo ELPA. Tudo o que você precisa fazer é adicionar esse arquivopackage-archives
; você pode instalar (e atualizar)org-plus-contrib
usando o gerenciador de pacotes. Obviamente, isso não quer dizer que a abordagem que você sugere não funcione; Eu só queria mencionar (para qualquer outra pessoa que se deparar com essa discussão) que existe outra abordagem que não envolve a sobrecarga de ter que atualizarorg-mode
separadamentegit
.