https://github.com/dylanjm/ox-jdf
Org-Mode Template for the JDF Style Guide
https://github.com/dylanjm/ox-jdf
Last synced: 4 months ago
JSON representation
Org-Mode Template for the JDF Style Guide
- Host: GitHub
- URL: https://github.com/dylanjm/ox-jdf
- Owner: dylanjm
- License: mit
- Created: 2020-01-13T22:39:29.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2020-03-04T02:56:38.000Z (over 6 years ago)
- Last Synced: 2025-07-20T17:04:01.257Z (about 1 year ago)
- Language: TeX
- Size: 828 KB
- Stars: 0
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.org
- License: LICENSE
Awesome Lists containing this project
README
#+title: Joyner Document Format Org Template
** About
This repo is an Emacs Org-Mode recreation of the Joyner Document Format template used in several OMSCS classes. The /official/ LaTeX class can be found on github, at: https://github.com/iamjakewarner/jdf. This project simply allows users to satisfy the style requirements of the Joyner Document Format (JDF) while leveraging the powerful tools that Org-Mode has to offer. Here are a few reasons why using =ox-jdf= and =org-mode= could be useful to you:
+ All files are written in plain text. Simplicity lets you focus more on the content.
+ Built-in code block evaluation. Have a piece of code you want to share and evaluate? Org-Mode can handle nearly any language and can combine different languages within one document.
+ Easy to use references, citations, labels, and footnotes.
+ Org-Mode exports to an intermediary =.tex= file so you can make any neccesary modifications. (See next bullet point)
+ But don't worry about changing the =.tex= file! You can place LaTeX directly into your document without issue.
+ Insane table support! You can treat org-tables as spreadsheets with formulas and lookup values.
+ Much, much more!
| Org File | PDF Export |
|----------------------------+----------------------------|
| [[file:assets/org-format.png]] | [[file:assets/pdf-format.png]] |
| | |
** Installation
This packages is currently *not* on MELPA, so you can download it one of two ways:
*** Manual Install
1. Clone or download this repo to your local computer and ensure that it is in your =load-path=.
2. In your =init.el= file, put =(require 'ox-jdf-report)=
*** Straight Package Manager
Put the following in your =init.el= file:
#+begin_src emacs-lisp
(use-package ox-jdf-report
:straight (:host github :repo "dylanjm/ox-jdf"))
#+end_src
Make sure that you have the following packages installed and ready to use by your config:
+ [[https://github.com/raxod502/straight.el][straight.el]]
+ [[https://github.com/jwiegley/use-package][use-package.el]]
** Setup
In order for this to work you'll need the following software and packages:
+ Emacs >= 26.0.1
+ =org-mode= >= 9.0
+ Current LaTeX installation (MacTeX, TinyTeX, etc)
+ =latexmk= (Should come with MacTeX)
+ [[https://github.com/jkitchin/org-ref][=org-ref=]]
Make sure you, at-least, have the following three lines (or some equivalent) in your init.el
#+begin_src emacs-lisp
(require 'ox-jdf-report)
(require 'org-ref)
(require 'org)
#+end_src
Once you've setup your config to load =ox-jdf-report=, open up the file =example/jdf-starter-org=. This is an example format of how to use the file. Note the file-variable settings at the top of the file. Those will be required to properly export the file to PDF. When you are ready to export use =C-c C-e J o= to export the file to PDF and open it in your default PDF viewer. You can also run the command =M-x jdf-export-to-pdf-and-open= to get the same results.
** Things to Note
+ *Note:* An odd hack is required to get multi-line titles. You'll need to put this at the top of yourfile to get a title to have a linebreak:
#+begin_example
#+MACRO: NEWLINE @@latex:\\@@ @@html:
@@
#+TITLE: Joyner Document Format 2.0 {{{NEWLINE}}} For Use in CS6460, CS6750, and CS7637
#+end_example
+ *Note:* Subheading 4 and higher are classified as a run-in sidehead. In order for it to format correctly upon export there *cannot* be an empty line between the heading and the associated text.
#+begin_example
# Right
: **** Heading 4
: This is the text associated with the run-in sidehead.
# Wrong
: **** Heading 4
:
: This is the text associated with the run-in sidehead.
#+end_example
** Contribute
Feel free to open an issue if you find a bug or a feature request.