Klimi's new dotfiles with stow.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

989 lines
45 KiB

4 years ago
  1. #+TITLE: The org-ref manual
  2. #+AUTHOR: John Kitchin
  3. #+DATE: 2015-03-15 Sun
  4. #+OPTIONS: toc:nil ^:{}
  5. #+LATEX_HEADER: \usepackage{natbib}
  6. #+LATEX_HEADER: \usepackage[version=3]{mhchem}
  7. #+latex_header: \usepackage{makeidx}
  8. #+latex_header: \makeindex
  9. # This ridiculousness is to make the index start in the middle of a page.
  10. # https://tex.stackexchange.com/questions/23870/index-shouldnt-start-new-page
  11. #+latex_header: \makeatletter
  12. #+latex_header: \renewenvironment{theindex}
  13. #+latex_header: {\section*{\indexname}%
  14. #+latex_header: \@mkboth{\MakeUppercase\indexname}%
  15. #+latex_header: {\MakeUppercase\indexname}%
  16. #+latex_header: \thispagestyle{plain}\parindent\z@
  17. #+latex_header: \parskip\z@ \@plus .3\p@\relax
  18. #+latex_header: \columnseprule \z@
  19. #+latex_header: \columnsep 35\p@
  20. #+latex_header: \let\item\@idxitem}
  21. #+latex_header: {}
  22. #+latex_header: \makeatother
  23. #+latex_header: \usepackage{glossaries}
  24. #+latex_header: \makeglossaries
  25. #+latex_header_extra: \newglossaryentry{acronym}{name={acronym},description={An acronym is an abbreviation used as a word which is formed from the initial components in a phrase or a word. Usually these components are individual letters (as in NATO or laser) or parts of words or names (as in Benelux)}}
  26. #+latex_header_extra: \newacronym{tla}{TLA}{Three Letter Acronym}
  27. \maketitle
  28. \tableofcontents
  29. * Introduction to org-ref
  30. Org-ref is a library for org-mode cite:Dominik201408 that provides rich support for citations, labels and cross-references in org-mode. org-ref is especially suitable for org-mode documents destined for LaTeX export and scientific publication. org-ref is also extremely useful for research documents and notes. org-ref bundles several other libraries that provide functions to create and modify bibtex entries from a variety of sources, but most notably from a DOI.
  31. The basic idea of org-ref is that it defines a convenient interface to insert citations from a reference database (e.g. from a bibtex file(s)), and a set of functional org-mode links for citations, cross-references and labels that export properly to LaTeX, and that provide clickable functionality to the user. org-ref interfaces with helm-bibtex to facilitate citation entry, and it can also use reftex.
  32. org-ref provides a fairly large number of utilities for finding bad citations, extracting bibtex entries from citations in an org-file, and functions for interacting with bibtex entries. We find these utilities indispensable in scientific writing.
  33. org-ref is [[*Customizing org-ref][customizable]].
  34. org-ref has been in development since sometime in 2013. It was written to aid in the preparation of scientific manuscripts. We have published over a dozen scientific articles with it so far:
  35. - cite:hallenbeck-2013-effec
  36. - cite:mehta-2014-ident-poten
  37. - cite:xu-2014-relat-elect
  38. - cite:xu-2014-probin-cover
  39. - cite:miller-2014-simul-temper
  40. - cite:curnan-2014-effec-concen
  41. - cite:boes-2015-estim-bulk
  42. - cite:xu-2015-linear-respon
  43. - cite:xu-2015-relat-between
  44. - cite:boes-2016-neural-networ
  45. - cite:boes-2017-neural-networ
  46. - cite:xu-2017-first-princ
  47. - cite:geng-2017-first-princ
  48. Be sure to check out the supporting information files for each of these. The org source for the supporting information is usually embedded in the supporting information. You may also find these two perspective articles cite:kitchin-2015-examp,kitchin-2015-data-surfac-scien interesting, as well as this article on data sharing cite:kitchin-2016-autom-data we wrote.
  49. There has been a lot of recent discussion on the org-mode mailing list about a citation syntax for org-mode. It is not clear what the impact of this on org-ref will be. The new syntax will more cleanly support pre/post text, and it will be separate from the links used in org-ref. It is not clear if the new syntax will support all of the citation types, especially those in biblatex, that are supported in org-ref. The new citations are likely to be clickable, and could share functionality with org-ref. The new citation syntax will not cover labels and cross-references though, so these links from org-ref will still exist. We anticipate a long life for org-ref.
  50. Biblatex users should read this [[id:212B487E-CC38-4BDF-9F0E-6993845AF49B][section]].
  51. If you want to export this document to another format like PDF or HTML, see [[id:5BBB8F29-3C82-4C7B-8FDB-9D146751D187][Other forms of this document]].
  52. ** Basic usage of org-ref
  53. *** Bibliography links
  54. index:bibliography index:bibliographystyle
  55. org-ref provides a bibliography link to specify which bibtex files to use in the document. You should use the filename with extension, and separate filenames by commas. This link is clickable; clicking on a filename will open the file. Also, if your cursor is on a filename, you will see a minibuffer message about whether the file exists or not. On export, the bibliography will appear at the position where the link is defined. Usually this link goes near the end of your document, e.g. like [[bibliography link][here]].
  56. There is also a nobibliography link, which is useful for specifying a bibliography file, but not listing a bibliography in the exported document.
  57. There is also a bibliographystyle link that specifies the style. This link does nothing but export to a LaTeX command. For LaTeX export a bibliography and bibliographystyle link is /required/ if you use bibtex. If you use biblatex see [[id:212B487E-CC38-4BDF-9F0E-6993845AF49B][biblatex users]].
  58. *** Citations
  59. :PROPERTIES:
  60. :CUSTOM_ID: citations
  61. :END:
  62. index:cite
  63. org-ref uses the [[bibliography link]] to determine which bibtex files to get citations from, and falls back to the bibtex files defined in the variable ~reftex-default-bibliography~ or ~org-ref-default-bibliography~ if no bibliography link is found. Note that you *must* include a [[bibliography link]] in your document if you are exporting your document to pdf; ~org-ref-default-bibliography~ is not used by the [[BibTeX users][LaTeX exporter]].
  64. For simple citation needs, org-ref is simple to use. At the point you want to insert a citation, you select the "Org -> org-ref -> Insert citation" menu (or use the key-binding ~C-c ]~ by default), select the reference(s) you want in the helm-bibtex buffer and press enter. The citation will be inserted automatically into your org-file. You "select" an entry by using the arrow keys (or ~C-n~ and ~C-p~) to move up and down to the entry you want. You can also narrow the selection by typing a pattern to match, e.g. author name, title words, year, BibTeX key and entry types. For any other field (e.g. keywords), you will need to add it to the variable ~bibtex-completion-additional-search-fields~. You can select multiple entries by pressing ~C-SPC~ to mark entries in the helm-bibtex buffer.
  65. If the cursor is on a citation key, you should see a message in the minibuffer that summarizes which citation it refers to. If you click on a key, you should see a helm selection buffer with some actions to choose, including opening the bibtex entry, opening/getting a pdf for the entry, searching the entry in Web of Science, etc...
  66. The default citation type is [[*Customizing org-ref][customizable]], and set to "cite". If you want another type of citation type, then type ~C-u~ before pressing enter in the helm-bibtex selection buffer. You will be prompted for the type of citation you actually want.
  67. Here is a list of supported citation types. You can customize this if you want. If you do not know what all these types are, you probably do not need them. The default cite is what you need. See http://tug.ctan.org/macros/latex/contrib/natbib/natnotes.pdf
  68. for the cite commands supported in bibtex index:natbib, and http://ctan.mirrorcatalogs.com/macros/latex/contrib/biblatex/doc/biblatex.pdf
  69. for the commands supported in biblatex. For most scientific journals, only bibtex is supported. index:biblatex
  70. #+BEGIN_SRC emacs-lisp
  71. org-ref-cite-types
  72. #+END_SRC
  73. #+RESULTS:
  74. | cite | nocite | citet | citet* | citep | citep* | citealt | citealt* | citealp | citealp* | citenum | citetext | citeauthor | citeauthor* | citeyear | citeyear* | Citet | Citep | Citealt | Citealp | Citeauthor | Cite | parencite | Parencite | footcite | footcitetext | textcite | Textcite | smartcite | Smartcite | cite* | parencite* | supercite | autocite | Autocite | autocite* | Autocite* | Citeauthor* | citetitle | citetitle* | citedate | citedate* | citeurl | fullcite | footfullcite | notecite | Notecite | pnotecite | Pnotecite | fnotecite | cites | Cites | parencites | Parencites | footcites | footcitetexts | smartcites | Smartcites | textcites | Textcites | supercites | autocites | Autocites | bibentry |
  75. If the cursor is on a citation, or at the end of the citation, and you add another citation, it will be appended to the current citation.
  76. index:cite!replace
  77. If you want to /replace/ an existing key in a citation, put the cursor on the key, run the insert citation command, and type ~C-u C-u~ before pressing enter in the helm-bibtex selection buffer. The key will be replaced. Of course, you can just delete it yourself, and add a new key.
  78. [[index:cite!shift]]
  79. Finally, if you do not like the order of the keys in a citation, you can put your cursor on a key and use shift-arrows (left or right) to move the key around. Alternatively, you can run the command ~org-ref-sort-citation-link~ which will sort the keys by year, oldest to newest.
  80. You may want to bind a hydra menu to a key-binding or key-chord. For example:
  81. #+BEGIN_SRC emacs-lisp
  82. (key-chord-define-global "kk" 'org-ref-cite-hydra/body)
  83. #+END_SRC
  84. This will allow you to quickly press ~kk~ while on a cite link to access functions that can act on the link.
  85. Alternatively, there is now a keymap defined on cite links. By default this map is defined in the variable ~org-ref-cite-keymap~. Note if you change any of these, you have to either restart emacs or run ~org-ref-generate-cite-links~. I am a fan of the [[http://ergoemacs.org/emacs/emacs_hyper_super_keys.html][hyper]] key, so the following are defined by default:
  86. | H-b | Open the citation to the bibtex entry |
  87. | H-u | Open the citation URL |
  88. | H-p | Open the citation PDF (if it exists) |
  89. | H-n | Open the citation notes |
  90. | H-c | Open Web of Science citing articles |
  91. | H-e | Email the bibtex entry and pdf |
  92. | H-f | Copy a formatted entry string |
  93. | H-g | Open Google Scholar |
  94. | H-w | Copy the key at point |
  95. | H-y | Paste the key in an existing link |
  96. There are navigation bindings:
  97. | C-left | Jump to previous key |
  98. | C-right | Jump to next key |
  99. | S-left | move key to the left |
  100. | S-right | move key to the right |
  101. You can also sort
  102. | S-up | sort keys by ascending year |
  103. *** Pre/post text support
  104. org-ref has basic and limited support for pre/post text in citations. You can get pre/post text by using a description in a cite link, with pre/post text separated by ::. For example, [[cite:Dominik201408][See page 20::, for example]]. It is not easy (maybe not possible) to extend this for the humanities style of citations (e.g. harvard) with nested pre/post text on multiple citations. If anyone knows how to do it, pull requests are welcome! There is an ongoing effort in org-mode for a new citation syntax that may make this more feasible.
  105. If you use helm-bibtex and would like pre/post text support enabled, you can add ~org-ref-format-citation~ to ~bibtex-completion-format-citation-functions~:
  106. #+BEGIN_SRC emacs-lisp
  107. (setf (cdr (assoc 'org-mode bibtex-completion-format-citation-functions)) 'org-ref-format-citation)
  108. #+END_SRC
  109. See also: [[https://github.com/tmalsburg/helm-bibtex#format-of-citations][Format of citations]] and [[https://github.com/tmalsburg/helm-bibtex#latex-citation-commands][Insert LaTeX cite commands]]. Note that pre/post prompt can also be switched off by setting the variable ~bibtex-completion-cite-prompt-for-optional-arguments~ to nil.
  110. *** label links
  111. index:label
  112. LaTeX uses labels to define places you can refer to. These can be labels in the captions of figures and tables, or labels in sections. We illustrate some uses here.
  113. label links are "functional" if you put your cursor on the link, you will get a message in the minibuffer showing you the number of occurrences of that label in the buffer. That number should be one! It is most preferable to put a label link into a caption like this.
  114. #+caption: Another simple table. label:tab-ydata
  115. | y |
  116. | 4 |
  117. | 5 |
  118. org-ref can help you insert unique labels with the command elisp:org-ref-helm-insert-label-link. This will show you the existing labels, and insert your new label as a link. There is no default key-binding for this.
  119. *** ref links
  120. :PROPERTIES:
  121. :ID: 290260A1-F07C-4852-B4B3-CEE3E768AA3B
  122. :CUSTOM_ID: ref-links
  123. :END:
  124. index:ref
  125. A ref link refers to a label of some sort. For example, you can refer to a table name, e.g. Table ref:table-1. You have to provide the context before the ref link, e.g. Table, Figure, Equation, Section, and so on.
  126. #+name: table-1
  127. #+caption: A simple table.
  128. | x |
  129. | 1 |
  130. | 2 |
  131. Or you can refer to an org-mode label as in Table ref:table-3.
  132. Note: You may need to set org-latex-prefer-user-labels to t if you refer to times by their "name" for the export to use the name you create.
  133. #+BEGIN_SRC emacs-lisp
  134. (setq org-latex-prefer-user-labels t)
  135. #+END_SRC
  136. #+RESULTS:
  137. : t
  138. #+caption: Another simple table. label:table-3
  139. | y |
  140. |---|
  141. | 3 |
  142. | 2 |
  143. You can also refer to an org-ref label link as in Table ref:tab-ydata.
  144. To help you insert ref links, use the "Org -> org-ref -> Insert ref" menu, or run the command elisp:org-ref-helm-insert-ref-link. There is no default key-binding for this.
  145. ref links are functional. If you put the cursor on a ref link, you should see a message in the minibuffer with some context of the corresponding label. If you click on the ref link, the cursor will jump to the label.
  146. A brief note about references to a section. You can make a ref link to a CUSTOM_ID. Section ref:sec-misc has a label link in the headline. That works, but is not too pretty. Section ref:ref-links uses the CUSTOM_ID property. For this to work, you should set ~org-latex-prefer-user-labels~ to t.
  147. Also note that "#+tblname:" and "#+label:" are deprecated in org-mode now, and "#+name:" is preferred.
  148. **** Miscellaneous ref links label:sec-misc
  149. index:ref!pageref index:ref!nameref index:ref!eqref
  150. org-ref also provides these links:
  151. - pageref :: The page a label is on
  152. - nameref :: The name of a section a label is in
  153. - eqref :: Puts the equation number in parentheses
  154. - autoref :: A command from hyperref that automatically prefixes the reference number.
  155. - cref & Cref :: [[https://www.ctan.org/tex-archive/macros/latex/contrib/cleveref?lang=en][cleveref – Intelligent cross-referencing]] (crefrange is not supported)
  156. Note for eqref, you must use a LaTeX label like this:
  157. \begin{equation}
  158. e^x = 4 \label{eq:1}
  159. \end{equation}
  160. Then you can refer to Eq. eqref:eq:1 in your documents.
  161. Autoref works like this: autoref:table-3, autoref:sec-misc.
  162. You can specify the default ref link type in `org-ref-default-ref-type'.
  163. *** Some other links
  164. [[index:list of tables]] [[index:list of figures]]
  165. org-ref provides clickable links for a list-of-tables:nil and list-of-figures:nil. We have to put some text in the link, anything will do. These export as listoftables and listoffigures LaTeX commands, and they are clickable links that open a mini table of contents with links to the tables and figures in the buffer. There are also interactive commands for this: elisp:org-ref-list-of-tables and elisp:org-ref-list-of-figures.
  166. *** Controlling link messages and tooltips
  167. Org-ref is setup to provide messages in the minibuffer when your cursor is on a link, and tooltips when your mouse hovers over a link. If this is distracting you can turn it off by putting this in your init file:
  168. #+BEGIN_SRC emacs-lisp
  169. (setq org-ref-show-citation-on-enter nil)
  170. #+END_SRC
  171. Alternatively, you can turn this on and off interactively with the commands:
  172. - org-ref-mouse-messages-on
  173. - org-ref-mouse-messages-off
  174. Org-ref can also be configured to show bad label,ref and cite links by setting this in your init files:
  175. #+BEGIN_SRC emacs-lisp
  176. (setq org-ref-show-broken-links t)
  177. #+END_SRC
  178. #+RESULTS:
  179. : t
  180. This may be slow in large files, so you can turn it off by setting that variable to nil.
  181. ** org-ref customization of helm-bibtex
  182. index:helm-bibtex
  183. org-ref adds a few new features to helm-bibtex. First, we add keywords as a searchable field. Second, org-ref modifies the helm-bibtex search buffer to include the keywords. Since keywords now can have a central role in searching, we add some functionality to add keywords from the helm-bibtex buffer as a new action.
  184. We change the order of the actions in helm-bibtex to suit our work flow, and add some new actions as well. We define a format function for org-mode that is compatible with the usage defined in section [[#citations]]. Finally, we add some new fallback options for additional scientific search engines.
  185. ** Some basic org-ref utilities
  186. [[index:bibtex!clean entry]]
  187. The command ~org-ref~ does a lot for you automatically. It will check the buffer for errors, e.g. multiply-defined labels, bad citations or ref links, and provide easy access to a few commands through a helm buffer.
  188. ~org-ref-clean-bibtex-entry~ will sort the fields of a bibtex entry, clean it, and give it a bibtex key. By default, this function does a lot of cleaning:
  189. 1. adds a comma if needed in the first line of the entry
  190. 2. makes sure the DOI field is an actual DOI, and not a URL
  191. 3. fixes bad year entries
  192. 4. fixes empty pages
  193. 5. escapes ampersand and percentage signs
  194. 6. generate a key according to your setup
  195. 7. runs your hook functions
  196. 8. sorts the fields in the entry
  197. 9. checks the entry for non-ascii characters
  198. 10. converts article title to title case (note: see below to convert titles in other entry types)
  199. This function has a hook ~org-ref-clean-bibtex-entry-hook~, which you can add functions to of your own. Each function must work on a bibtex entry at point. (Note: the default behavior can be changed by removing the relevant functions from the initial value of ~org-ref-clean-bibtex-entry-hook~.)
  200. #+BEGIN_SRC emacs-lisp
  201. (add-hook 'org-ref-clean-bibtex-entry-hook 'org-ref-replace-nonascii)
  202. #+END_SRC
  203. ~org-ref-extract-bibtex-entries~ will create a bibtex file from the citations in the current buffer.
  204. ** LaTeX export
  205. index:export!LaTeX
  206. All org-ref links are designed to export to the corresponding LaTeX commands for citations, labels, refs and the bibliography/bibliography style. Once you have the LaTeX file, you have to build it, using the appropriate latex and bibtex commands. You can have org-mode do this for you with a setup like:
  207. #+BEGIN_SRC emacs-lisp
  208. (setq org-latex-pdf-process
  209. '("pdflatex -interaction nonstopmode -output-directory %o %f"
  210. "bibtex %b"
  211. "pdflatex -interaction nonstopmode -output-directory %o %f"
  212. "pdflatex -interaction nonstopmode -output-directory %o %f"))
  213. #+END_SRC
  214. I have also had success with this setup:
  215. #+BEGIN_SRC emacs-lisp
  216. (setq org-latex-pdf-process (list "latexmk -shell-escape -bibtex -f -pdf %f"))
  217. #+END_SRC
  218. *** BibTeX users
  219. In order to have your citations compiled by BibTex, you *must* include a [[bibliography link]]. ~org-ref~ has a customization variable for setting the default bibliography, ~org-ref-default-bibliography~, but this is *not used in LaTeX export*; you have to set it explicitly in your file. You will also need to include a [[bibliographystyle link]], unless you are using a LaTeX style that includes that for you.
  220. *** biblatex users
  221. :PROPERTIES:
  222. :ID: 212B487E-CC38-4BDF-9F0E-6993845AF49B
  223. :END:
  224. In the latex header you specify the style and bibliography file using addbibresource. Here is an example:
  225. #+BEGIN_EXAMPLE
  226. #+latex_header: \usepackage[citestyle=authoryear-icomp,bibstyle=authoryear, hyperref=true,backref=true,maxcitenames=3,url=true,backend=biber,natbib=true] {biblatex}
  227. #+latex_header: \addbibresource{tests/test-1.bib}
  228. #+END_EXAMPLE
  229. Sometimes it is necessary to tell bibtex what dialect you are using to support the different bibtex entries that are possible in biblatex. You can do it like this globally.
  230. #+BEGIN_SRC emacs-lisp
  231. (setq bibtex-dialect 'biblatex)
  232. #+END_SRC
  233. #+RESULTS:
  234. : biblatex
  235. Or like this in a bibtex file:
  236. #+BEGIN_EXAMPLE
  237. % -*- mode:bibtex; eval: (bibtex-set-dialect 'biblatex); -*-
  238. #+END_EXAMPLE
  239. Make sure you invoke biblatex in the org-latex-pdf-process. Here is one way to do it.
  240. #+BEGIN_SRC emacs-lisp
  241. (setq org-latex-pdf-process
  242. '("latexmk -shell-escape -bibtex -pdf %f"))
  243. #+END_SRC
  244. Finally, where you want the bibliography put this command:
  245. #+BEGIN_EXAMPLE
  246. \printbibliography
  247. #+END_EXAMPLE
  248. ** Other exports
  249. index:export!html index:export!ascii
  250. There is some basic support for HTML and ascii export. Not all bibtex entry types are supported, but basic support exists for articles and books. For a markdown export, the cite links are exported as Pandoc style links. During HTML export, the references get the HTML class ~org-ref-reference~, the bibliography headline has the class ~org-ref-bib-h1~ and the list of references has the class ~org-ref-bib~.
  251. * org-ref-ivy
  252. org-ref provides an alternative to reftex and helm with ivy as the backend completion engine for searching and entering citations.
  253. You can set this backend in your init file like this
  254. #+BEGIN_SRC emacs-lisp
  255. (setq org-ref-completion-library 'org-ref-ivy-cite)
  256. (require 'org-ref)
  257. #+END_SRC
  258. There are some non-standard ivy features in org-ref ;)
  259. You still use C-c ] to search for a bibtex entry, and Ret to insert it as a citation. C-c ] C-u Ret will prompt you for a different citation type.
  260. 1. You can mark entries with C-space like in helm, and pressing enter will insert the citations.
  261. 2. C-, will show you the only the marked entries, and C-. will show them all again.
  262. 3. C-up and C-down will move an entry up and down to reorder them.
  263. 4. In the selection buffer C-y will sort in increasing year, C-M-y will sort in decreasing year.
  264. 5. C-Ret will insert the current entry and move to the next one.
  265. C-u C-c ] will insert a ref link. You will see a list of labels to select. Pres Ret to enter a ref link, or C-u Ret to select a different type of ref.
  266. C-u C-u C-c ] will insert a label link. You should see a list of all the current labels to help you avoid duplicating them.
  267. * Other libraries in org-ref
  268. These are mostly functions for adding entries to bibtex files, modifying entries or for operating on bibtex files. Some new org-mode links are defined.
  269. ** doi-utils
  270. index:doi
  271. This library adds two extremely useful tools for getting bibtex entries and pdf files of journal manuscripts. Add this to your emacs setup:
  272. #+BEGIN_SRC emacs-lisp
  273. (require 'doi-utils)
  274. #+END_SRC
  275. This provides two important commands:
  276. - ~doi-utils-add-bibtex-entry-from-doi~
  277. This will prompt you for a DOI, and a bibtex file, and then try to get the bibtex entry, and pdf of the article.
  278. - ~doi-utils-add-entry-from-crossref-query~
  279. This will prompt you for a query string, which is usually the title of an article, or a free-form text citation of an article. Then you will get a helm buffer of matching items, which you can choose from to insert a new bibtex entry into a bibtex file.
  280. This library also redefines the org-mode doi link. Now, when you click on this link you will get a menu of options, e.g. to open a bibtex entry or a pdf if you have it, or to search the doi in some scientific search engines. Try it out doi:10.1021/jp511426q.
  281. *** Bibtex key format
  282. The key is formatted according to the settings of bibtex-autokey-* variables. I use these settings. Look at the documentation of them to see how to get the format you want. The function (bibtex-generate-autokey) does this.
  283. The settings I use are:
  284. #+BEGIN_SRC emacs-lisp
  285. (setq bibtex-autokey-year-length 4
  286. bibtex-autokey-name-year-separator "-"
  287. bibtex-autokey-year-title-separator "-"
  288. bibtex-autokey-titleword-separator "-"
  289. bibtex-autokey-titlewords 2
  290. bibtex-autokey-titlewords-stretch 1
  291. bibtex-autokey-titleword-length 5)
  292. #+END_SRC
  293. *** Troubleshooting doi-utils
  294. Occasionally weird things happen with a DOI. The first thing you should check is if the json data for the DOI can be retrieved. You can do that at the command line, or in a sh block like this:
  295. #+BEGIN_SRC sh
  296. curl -LH "Accept: application/citeproc+json" "http://doi.org/10.1021/jp511426q"
  297. #+END_SRC
  298. If you do not get json data, doi-utils will not be able to generate the bibtex entry.
  299. Not all PDFs can be retrieved. doi-utils uses a set of functions to attempt this. Here is the list.
  300. #+BEGIN_SRC emacs-lisp
  301. doi-utils-pdf-url-functions
  302. #+END_SRC
  303. #+RESULTS:
  304. | aps-pdf-url | science-pdf-url | nature-pdf-url | wiley-pdf-url | springer-chapter-pdf-url | springer-pdf-url | acs-pdf-url-1 | acs-pdf-url-2 | iop-pdf-url | jstor-pdf-url | aip-pdf-url | science-direct-pdf-url | linkinghub-elsevier-pdf-url | tandfonline-pdf-url | ecs-pdf-url | ecst-pdf-url | rsc-pdf-url | pnas-pdf-url | sage-pdf-url | jneurosci-pdf-url | ieee-pdf-url | acm-pdf-url | generic-full-pdf-url |
  305. You can check if a url for the PDF can be found like this:
  306. #+BEGIN_SRC emacs-lisp
  307. (doi-utils-get-pdf-url "10.1021/jp511426q")
  308. #+END_SRC
  309. #+RESULTS:
  310. : http://pubs.acs.org/doi/pdf/10.1021/jp511426q
  311. ** org-ref-bibtex
  312. These are functions I use often in bibtex files.
  313. *** Generate new bibtex files with adapted journal names
  314. The variable ~org-ref-bibtex-journal-abbreviations~ contains a mapping of a short string to a full journal title, and an abbreviated journal title. We can use these to create new versions of a bibtex file with full or abbreviated journal titles. You can add new strings like this:
  315. #+BEGIN_SRC emacs-lisp
  316. (add-to-list 'org-ref-bibtex-journal-abbreviations
  317. '("JIR" "Journal of Irreproducible Research" "J. Irrep. Res."))
  318. #+END_SRC
  319. - org-ref-bibtex-generate-longtitles :: Generate a bib file with long titles as
  320. defined in `org-ref-bibtex-journal-abbreviations'
  321. - org-ref-bibtex-generate-shorttitles :: Generate a bib file with short titles as
  322. defined in `org-ref-bibtex-journal-abbreviations'
  323. *** Modifying bibtex entries
  324. - org-ref-stringify-journal-name :: replace a journal name with a string in
  325. `org-ref-bibtex-journal-abbreviations'
  326. - org-ref-set-journal-string :: in a bibtex entry run this to replace the journal
  327. with a string selected interactively.
  328. - org-ref-title-case-article :: title case the title in an article entry.
  329. - org-ref-title-case :: title case the title for entries listed in `org-ref-title-case-types'.
  330. - org-ref-sentence-case-article :: sentence case the title in an article entry.
  331. - org-ref-replace-nonascii :: replace nonascii characters in a bibtex
  332. entry. Replacements are in `org-ref-nonascii-latex-replacements'. This
  333. function is a hook function in org-ref-clean-bibtex-entry.
  334. The non-ascii characters are looked up in a list of cons cells. You can add your own non-ascii replacements like this. Note backslashes must be escaped doubly, so one =\= is =\\\\= in the cons cell.
  335. #+BEGIN_SRC emacs-lisp
  336. (add-to-list 'org-ref-nonascii-latex-replacements
  337. '("æ" . "{\\\\ae}"))
  338. #+END_SRC
  339. These functions are compatible with ~bibtex-map-entries~, so it is possible to conveniently apply them to all the entries in a file like this:
  340. #+BEGIN_SRC emacs-lisp
  341. (bibtex-map-entries 'org-ref-title-case-article)
  342. #+END_SRC
  343. *** Bibtex entry navigation
  344. - org-ref-bibtex-next-entry :: bound to M-n
  345. - org-ref-bibtex-previous-entry :: bound to M-p
  346. *** Hydra menus for bibtex entries and files
  347. - Functions to act on a bibtex entry or file
  348. - org-ref-bibtex-hydra/body :: gives a hydra menu to a lot of useful functions
  349. like opening the pdf, or the entry in a browser, or searching in a
  350. variety of scientific search engines.
  351. - org-ref-bibtex-new-entry/body :: gives a hydra menu to add new bibtex entries.
  352. - org-ref-bibtex-file/body :: gives a hydra menu of actions for the bibtex file.
  353. You will want to bind the hydra menus to a key. You only need to bind the first one, as the second and third can be accessed from the first hydra. You can do that like this before you require ~org-ref-bibtex~:
  354. #+BEGIN_SRC emacs-lisp
  355. (setq org-ref-bibtex-hydra-key-binding "\C-cj")
  356. #+END_SRC
  357. Or this if you like key-chord:
  358. #+BEGIN_SRC emacs-lisp
  359. (key-chord-define-global "jj" 'org-ref-bibtex-hydra/body)
  360. #+END_SRC
  361. *** Formatted bibtex entry citations
  362. org-ref has some limited capability to make formatted bibliography entries from a bibtex entry or citation link. This is generally a hard problem, and the first solution is not a replacement for a dedicated citation processor like BibTeX. Two variable determine the behavior of formatted citations:
  363. - Formats are from `org-ref-formatted-citation-formats' is an a-list of (backend . formats). formats is an alist of (entry-type . format-string).
  364. - The variable `org-ref-formatted-citation-backend' determines which set of format strings is used. The default is "text", and "org" format strings are also defined.
  365. So, if you click on a citation link, there should be a menu option to copy a formatted citation, which will copy the citation string to the clipboard.
  366. If you are on a bibtex entry, the `org-ref-bibtex-hydra/body' has an option to copy a formatted citation for the entry your cursor is in.
  367. Finally, depending on your org-ref backend, there may be an action in the org-ref-insert-link command.
  368. For the second approach see [[./citeproc/readme.org]]. It is more advanced in someways, but it is currently limited to a few formats, and is a long-term work in progress.
  369. ** org-ref-wos
  370. This is a small utility for Web of Science/Knowledge (WOK) (http://apps.webofknowledge.com).
  371. #+BEGIN_SRC emacs-lisp
  372. (require 'org-ref-wos)
  373. #+END_SRC
  374. #+RESULTS:
  375. : org-ref-wos
  376. - wos :: Convenience function to open WOK in a browser.
  377. - wos-search :: Search WOK with the selected text or word at point
  378. There is also a new org-mode link that opens a search: [[wos-search:alloy and segregation]]
  379. ** org-ref-scopus
  380. This is a small utility to interact with Scopus (http://www.scopus.com). Scopus is search engine for scientific literature. It is owned by Elsevier. You must have a license to use it (usually provided by your research institution).
  381. #+BEGIN_SRC emacs-lisp
  382. (require 'org-ref-scopus)
  383. #+END_SRC
  384. #+RESULTS:
  385. : org-ref-scopus
  386. Interactive functions:
  387. - scopus :: Convenience function to open Scopus in a browser.
  388. - scopus-basic-search :: Prompts for a query and opens it in a browser.
  389. - scopus-advanced-search :: Prompts for an advanced query and opens it in a browser.
  390. Some new links:
  391. Open a basic search in Scopus: [[scopus-search:alloy Au segregation]]
  392. Open an advanced search in Scopus: scopus-advanced-search:au-id(7004212771). See http://www.scopus.com/search/form.url?display=advanced&clear=t for details on the codes and syntax, and http://help.elsevier.com/app/answers/detail/a_id/2347/p/8150/incidents.c$portal_account_name/26389.
  393. A functional link to a document in Scopus by its "EID": eid:2-s2.0-72649092395. Clicking on this link will open a hydra menu to open the document in Scopus, find different kinds of related documents by keywords, authors or references, and to open a page in Scopus of citing documents.
  394. There is also a scopusid link for authors that will open their author page in Scopus: scopusid:7004212771
  395. ** org-ref-isbn
  396. index:isbn
  397. #+BEGIN_SRC emacs-lisp
  398. (require 'org-ref-isbn)
  399. #+END_SRC
  400. #+RESULTS:
  401. : org-ref-isbn
  402. This library provides some functions to get bibtex entries for books from their ISBN.
  403. - isbn-to-bibtex
  404. - isbn-to-bibtex-lead
  405. It also provides some variables for customizing the bibtex entry.
  406. - org-ref-isbn-clean-bibtex-entry-hook
  407. - org-ref-isbn-exclude-fields
  408. - org-ref-isbn-field-name-replacements
  409. ** org-ref-pubmed
  410. index:pubmed
  411. [[http://www.ncbi.nlm.nih.gov/pubmed][PubMed]] comprises more than 24 million citations for biomedical literature from MEDLINE, life science journals, and online books. Citations may include links to full-text content from PubMed Central and publisher web sites. This library provides some functions to initiate searches of PubMed from Emacs, and to link to PubMed content.
  412. #+BEGIN_SRC emacs-lisp
  413. (require 'org-ref-pubmed)
  414. #+END_SRC
  415. #+RESULTS:
  416. : org-ref-pubmed
  417. This library provides a number of new org-mode links to PubMed entries. See http://www.ncbi.nlm.nih.gov/pmc/about/public-access-info/#p3 for details of these identifiers. These links open the page in PubMed for the identifier.
  418. pmcid:PMC3498956
  419. pmid:23162369
  420. nihmsid:NIHMS395714
  421. Also, you can retrieve a bibtex entry for a PMID with
  422. - ~pubmed-insert-bibtex-from-pmid~
  423. There are some utility functions that may be helpful.
  424. - pubmed :: Open [[http://www.ncbi.nlm.nih.gov/pubmed][PubMed]] in a browser
  425. - pubmed-advanced :: Open [[http://www.ncbi.nlm.nih.gov/pubmed/advanced][PubMed]] at advanced search page.
  426. - pubmed-simple-search :: Prompts you for a simple query and opens it in PubMed.
  427. There is a new org-mode link to PubMed searches: [[pubmed-search:alloy segregation]]
  428. ** org-ref-arxiv
  429. index:arxiv
  430. This library provides an org-mode link to http://arxiv.org entries: arxiv:cond-mat/0410285, and a function to get a bibtex entry and pdfs for arxiv entries:
  431. #+BEGIN_SRC emacs-lisp
  432. (require 'org-ref-arxiv)
  433. #+END_SRC
  434. #+RESULTS:
  435. : org-ref-arxiv
  436. - ~arxiv-add-bibtex-entry~
  437. - ~arxiv-get-pdf~
  438. ** org-ref-sci-id
  439. :PROPERTIES:
  440. :ID: AD7C70CF-1BB8-4610-B9AD-580790250459
  441. :END:
  442. index:orcid [[index:researcher id]]
  443. #+BEGIN_SRC emacs-lisp
  444. (require 'org-ref-sci-id)
  445. #+END_SRC
  446. #+RESULTS:
  447. : org-ref-sci-id
  448. This package just defines two new org-mode links for http://www.orcid.org, and http://www.researcherid.com. Here are two examples:
  449. orcid:0000-0003-2625-9232
  450. researcherid:A-2363-2010
  451. ** x2bib
  452. index:bibtex!conversion
  453. #+BEGIN_SRC emacs-lisp
  454. (require 'x2bib)
  455. #+END_SRC
  456. #+RESULTS:
  457. : x2bib
  458. If you find you need to convert some bibliographies in some format into bibtex, this library is a starting point. This code is mostly wrappers around the command line utilities at http://sourceforge.net/p/bibutils/home/Bibutils. I thankfully have not had to use this often, but it is here when I need it again.
  459. - ris2bib :: Convert an RIS file to a bibtex file.
  460. - medxml2bib :: Convert PubMed XML to bibtex.
  461. - clean-entries :: Map over a converted bibtex file and "clean it".
  462. ** org-ref-latex
  463. This provides some org-ref like capabilities in LaTeX files, e.g. the links are clickable with tooltips.
  464. ** org-ref-pdf
  465. =org-ref-pdf= allows Emacs to get bibliography information from pdf files that contain a DOI. You must have =pdftotext= installed where Emacs can find it. This library is known to not work on Windows very well.
  466. - Drag and drop a PDF onto a bibtex file to add a bibtex entry
  467. - If you have a pdf file open in Emacs (from, for example, an email attachment), use ~org-ref-pdf-to-bibtex~ to try to extract and write the bibliography information to a bib file, (defaulting to ~org-ref-default-bibliography~) and save the pdf to ~org-ref-pdf-directory~.
  468. ** org-ref-url-utils
  469. Allows you to drag-n-drop a webpage from a browser onto a bibtex file to add a bibtex entry (as long as it is from a recognized publisher that org-ref knows about). This library does not work well on Windows.
  470. * Appendix
  471. ** Customizing org-ref
  472. :PROPERTIES:
  473. :ID: 32B558A3-7B48-4581-982B-082017B0AEE8
  474. :END:
  475. index:customization
  476. You will probably want to customize a few variables before using org-ref. One way to do this is through the Emacs customization interface: [[elisp:(customize-group "org-ref")]].
  477. Also see: [[elisp:(customize-group "org-ref-bibtex")]].
  478. Here is my minimal setup:
  479. #+BEGIN_SRC emacs-lisp
  480. (setq reftex-default-bibliography '("~/Dropbox/bibliography/references.bib"))
  481. (setq org-ref-bibliography-notes "~/Dropbox/bibliography/notes.org"
  482. org-ref-default-bibliography '("~/Dropbox/bibliography/references.bib")
  483. org-ref-pdf-directory "~/Dropbox/bibliography/bibtex-pdfs/")
  484. #+END_SRC
  485. You can also specify different completion backends. The default is `org-ref-helm-bibtex'.
  486. - org-ref-helm-bibtex :: The default backend that uses helm-bibtex
  487. - org-ref-reftex :: A backend that uses reftex
  488. - org-ref-helm-cite :: An alternative helm completion backend (does not use helm-bibtex)
  489. - org-ref-ivy-cite :: uses ivy for the backend
  490. To use one of these, add a line like this before you "require" org-ref.
  491. #+BEGIN_SRC emacs-lisp
  492. (setq org-ref-completion-library 'org-ref-ivy-cite)
  493. #+END_SRC
  494. ** Customizing how PDFs are opened
  495. *** Using doc-view or pdf-tools
  496. There are a few different ways in which PDFs can be opened from org-ref. By default, org-ref uses the function ~org-ref-open-pdf-at-point~, which looks for the corresponding file in the directory specified in ~org-ref-library-path~. If the file was found, it opens it externally with ~org-open-file~. To open the PDF from within Emacs, using doc-view or pdf-tools, you will need to modify the function slightly and assign it to the variable ~org-ref-open-pdf-function~, as in the example below.
  497. #+BEGIN_SRC emacs-lisp
  498. (defun my/org-ref-open-pdf-at-point ()
  499. "Open the pdf for bibtex key under point if it exists."
  500. (interactive)
  501. (let* ((results (org-ref-get-bibtex-key-and-file))
  502. (key (car results))
  503. (pdf-file (funcall org-ref-get-pdf-filename-function key)))
  504. (if (file-exists-p pdf-file)
  505. (find-file pdf-file)
  506. (message "No PDF found for %s" key))))
  507. (setq org-ref-open-pdf-function 'my/org-ref-open-pdf-at-point)
  508. #+END_SRC
  509. An alternative approach adapted from https://github.com/jkitchin/org-ref/issues/184 to use pdfview is described here. First, install org-pdfview (on MELPA).
  510. Add this to your init file:
  511. #+BEGIN_SRC emacs-lisp
  512. ;; PDF links for org-mode
  513. (with-eval-after-load "pdf-tools"
  514. (use-package org-pdfview
  515. :config
  516. ;; https://lists.gnu.org/archive/html/emacs-orgmode/2016-11/msg00169.html
  517. ;; Before adding, remove it (to avoid clogging)
  518. (delete '("\\.pdf\\'" . default) org-file-apps)
  519. ;; https://lists.gnu.org/archive/html/emacs-orgmode/2016-11/msg00176.html
  520. (add-to-list 'org-file-apps
  521. '("\\.pdf\\'" . (lambda (file link)
  522. (org-pdfview-open link))))))
  523. #+END_SRC
  524. *** A note for Mendeley, JabRef and Zotero users
  525. If ~bibtex-completion-pdf-field~ is defined, the function below should work with JabRef and Zotero. For more information, see https://github.com/tmalsburg/helm-bibtex#pdf-files.
  526. #+BEGIN_SRC emacs-lisp
  527. (defun my/org-ref-open-pdf-at-point ()
  528. "Open the pdf for bibtex key under point if it exists."
  529. (interactive)
  530. (let* ((results (org-ref-get-bibtex-key-and-file))
  531. (key (car results))
  532. (pdf-file (car (bibtex-completion-find-pdf key))))
  533. (if (file-exists-p pdf-file)
  534. (org-open-file pdf-file)
  535. (message "No PDF found for %s" key))))
  536. (setq org-ref-open-pdf-function 'my/org-ref-open-pdf-at-point)
  537. #+END_SRC
  538. Mendeley users should set to:
  539. #+BEGIN_SRC emacs-lisp
  540. (setq org-ref-open-pdf-function 'org-ref-get-mendeley-filename)
  541. #+END_SRC
  542. ** Setting up notes to work with multiple notes.org files
  543. Adapted from https://github.com/jkitchin/org-ref/issues/443. This setup lets helm-bibtex find the note file for an entry.
  544. #+BEGIN_SRC emacs-lisp
  545. ;; Tell org-ref to let helm-bibtex find notes for it
  546. (setq org-ref-notes-function
  547. (lambda (thekey)
  548. (let ((bibtex-completion-bibliography (org-ref-find-bibliography)))
  549. (bibtex-completion-edit-notes
  550. (list (car (org-ref-get-bibtex-key-and-file thekey)))))))
  551. #+END_SRC
  552. ** Customizing the notes format
  553. A user asked about customizing note formats in https://github.com/jkitchin/org-ref/issues/225. The issue is that helm-bibtex command creates notes as defined in `bibtex-completion-notes-template-one-file' and org-ref creates the notes as defined in `org-ref-open-bibtex-notes'. They wanted some consistency so they got the same results either way they open the notes. @jagrg suggested this approach:
  554. #+BEGIN_SRC emacs-lisp
  555. (defun my/org-ref-notes-function (candidates)
  556. (let ((key (helm-marked-candidates)))
  557. (funcall org-ref-notes-function (car key))))
  558. (helm-delete-action-from-source "Edit notes" helm-source-bibtex)
  559. ;; Note that 7 is a magic number of the index where you want to insert the command. You may need to change yours.
  560. (helm-add-action-to-source "Edit notes" 'my/org-ref-notes-function helm-source-bibtex 7)
  561. #+END_SRC
  562. ** Other things org-ref supports
  563. *** org-completion
  564. index:completion index:link!completion
  565. Most org-ref links support org-mode completion. You can type ~C-c C-l~ to insert a link. You will get completion of the link type, type some characters and press tab. When you select the type, press tab to see the completion options. This works for the following link types:
  566. - bibliography
  567. - bibliographystyle
  568. - all cite types
  569. - ref
  570. *** Storing org-links to labels
  571. :PROPERTIES:
  572. :ID: AD9663C7-1369-413F-842A-157916D4BB75
  573. :CUSTOM_ID: sec-store-links
  574. :END:
  575. index:link!storing
  576. If you are on a label link, or on a table name, or on an org-mode label you can "store" a link to it by typing C-c l. Then you can insert the corresponding ref link with ~C-c C-l~. This will insert a ref link or custom_id link as needed. This usually works, but it is not used by me too often, so it is not tested too deeply.
  577. *** Storing links to bibtex entries
  578. If you have a bibtex file open, you type ~C-c C-l~ with your cursor in a bibtex entry to store a link to that entry. In an org buffer if you then type ~C-c l~, you can enter a cite link.
  579. *** Indexes
  580. index:index
  581. org-ref provides links to support making an index in LaTeX. (http://en.wikibooks.org/wiki/LaTeX/Indexing).
  582. - index :: creates an index entry.
  583. - printindex :: Generates a temporary index of clickable entries. Exports to the LaTeX command.
  584. You will need to use the makeidx package, and use this in the LaTeX header.
  585. #+begin_example
  586. #+LATEX_HEADER: \usepackage{makeidx}
  587. #+LATEX_HEADER: \makeindex
  588. #+end_example
  589. You will have to incorporate running makeindex into your PDF build command.
  590. This is not supported in anything but LaTeX export.
  591. *** Glossaries
  592. index:glossary
  593. org-ref provides some support for glossary and acronym definitions.
  594. - gls :: a reference to a term
  595. - glspl :: plural reference to a term
  596. - Gsl :: capitalized reference to a term
  597. - Glspl :: capitalized plural reference to a term
  598. - gslink :: Link to alternative text in the link description.
  599. - glssymbol :: The symbol term
  600. - glsdesc :: The description of the term
  601. - acrshort :: Short version of the acroynm
  602. - acrfull :: The full definition of the acronym
  603. - acrlong :: The full definition of the acronym with (abbrv).
  604. There are two useful commands:
  605. - org-ref-add-glossary-entry :: Add a new entry to the file
  606. - org-ref-add-acronym-entry :: Add a new acronym to the file
  607. Here is an example of glossary link for an [[gls:acronym][acronym]] and an actual [[acrshort:tla][TLA]]. Each link has a tool tip on it that shows up when you hover the mouse over it. These links will export as the LaTeX commands need by the glossaries package.
  608. You will need to incorporate running the command makeglossaries into your PDF build command. You also need use the glossaries LaTeX package.
  609. Here is a minimal working example of an org file that makes a glossary.
  610. #+BEGIN_EXAMPLE
  611. #+latex_header: \usepackage{glossaries}
  612. #+latex_header: \makeglossaries
  613. #+latex_header_extra: \newglossaryentry{computer}{name=computer,description={A machine}}
  614. A gls:computer is good for computing. Gls:computer is capitalized. We can also use a bunch of glspl:computer to make a cluster. Glspl:computer are the wave of the future.
  615. \printglossaries
  616. #+END_EXAMPLE
  617. This is not supported in anything but LaTeX export.
  618. \glsaddall
  619. \printglossaries
  620. ** Prelude users
  621. An issue related to using org-ref with prelude was [[https://github.com/jkitchin/org-ref/issues/583][reported]], along with a solution that loads org-ref before loading prelude. The solution was to create a file like ~/.emacs.d/personal/preload/preload.el with these contents.
  622. #+BEGIN_SRC emacs-lisp
  623. (package-initialize)
  624. (setq reftex-default-bibliography '("~/bibliography/references.bib"))
  625. (setq org-ref-bibliography-notes "~/bibliography/notes.org"
  626. org-ref-default-bibliography '("~/bibliography/references.bib")
  627. org-ref-pdf-directory "~/bibliography/bibtex-pdfs/")
  628. (require 'org-ref)
  629. (provide 'preload)
  630. ;;; preload.el ends here
  631. #+END_SRC
  632. ** Other forms of this document
  633. :PROPERTIES:
  634. :ID: 5BBB8F29-3C82-4C7B-8FDB-9D146751D187
  635. :END:
  636. *** Build notes
  637. Before building this file you need to require the following libraries so the links will be resolved.
  638. #+BEGIN_SRC emacs-lisp
  639. (require 'org-id)
  640. (require 'org-ref-wos)
  641. (require 'org-ref-scopus)
  642. (require 'org-ref-pubmed)
  643. #+END_SRC
  644. #+RESULTS:
  645. : org-ref-pubmed
  646. *** PDF
  647. You may want to build a pdf of this file. Here is an emacs-lisp block that will create and open the PDF.
  648. #+BEGIN_SRC emacs-lisp
  649. (let ((org-export-with-broken-links t)
  650. (org-latex-pdf-process
  651. '("pdflatex -interaction nonstopmode -shell-escape -output-directory %o %f"
  652. "bibtex %b"
  653. "makeindex %b"
  654. "pdflatex -interaction nonstopmode -shell-escape -output-directory %o %f"
  655. "pdflatex -interaction nonstopmode -shell-escape -output-directory %o %f")))
  656. (org-open-file (org-latex-export-to-pdf)))
  657. #+END_SRC
  658. #+RESULTS:
  659. *** HTML
  660. You may want to build an html version of this file. Here is an emacs-lisp block that will create and open the html in your browser. You will see the bibliography is not perfect, but it is pretty functional.
  661. #+BEGIN_SRC emacs-lisp
  662. (let ((org-export-with-broken-links t))
  663. (browse-url (org-html-export-to-html)))
  664. #+END_SRC
  665. #+RESULTS:
  666. : #<process open org-ref.html>
  667. * Index
  668. This is a functional link that will open a buffer of clickable index entries:
  669. # This eliminates the duplicate Index section name
  670. \renewcommand{\indexname}{}
  671. printindex:nil
  672. * References
  673. <<bibliographystyle link>>
  674. bibliographystyle:unsrt
  675. <<bibliography link>>
  676. bibliography:org-ref.bib