Giter VIP home page Giter VIP logo

org-edit-latex's Introduction

MELPA

Org Edit LaTeX

With this package, you can edit a latex fragment/environment in an edit buffer, and you can even complete and preview LaTeX in the edit buffer.

The latest release of Org (version 9.1) provides a similar feature, i.e. edit a latex environment in an edit buffer. But there are still some features offered here are not in org yet. Some of them are:

  • Complete based on your latex header.

    With org-edit-latex, you can complete your latex commands according to the #+latex_header: lines in your main org buffer (powered by AucTeX). This is not possible in vanilla org.

  • Preview in the edit buffer.

    You don't have to quit your edit buffer to do the preview. You can just preview at point! With the fantastic AucTeX working behind, you can cache your preamble and preview really fast (faster than org-preview).

  • Edit and preview latex fragments in edit buffer.

    Besides LaTeX environments, you can also edit/preview latex fragments in edit buffer. This may not count as a feature. but in case you need it, it's there.

This package has been tested on Org 8.0 and above. Feel free to use it on Org mode shipped with emacs.

org-edit-latex

Install

First, download org-edit-latex and add following to your init file:

(require 'org-edit-latex)

You should add latex to your org-babel-load-languages:

(org-babel-do-load-languages
 'org-babel-load-languages
 '((emacs-lisp . t)
   (latex . t)   ;; <== add latex to the list
   (python . t)
   (shell . t)
   (ruby . t)
   (perl . t)))

Basic Usage

Turn on org-edit-latex-mode and use following commands to start/exit/abort a edit buffer.

  • org-edit-special: enter a dedicated LaTeX buffer.
  • org-edit-src-exit: exit LaTeX buffer when you finished editing.
  • org-edit-src-abort: quit editing without saving changes.

Note that all above commands are built-in Org commands and your current keybindings will probably do the job.

Inline Math

Inline latex is also supported, but I don't recommend using this package on simple inline math, such as math symbols, SI units, etc. For that use case, you may check cdlatex, which is more than enough to handle that. The setup of cdlatex is pretty straightforward, see jkitchin/scimax#117 to get a general idea.

Entry Point

To get started, you may also want to check out yasnippet to fast insert a latex environment before you can use org-edit-special to enter the edit buffer.

For instance, try M-x yas-new-snippet and insert a snippet like this:

# -*- mode: snippet -*-
# name: eqn
# key: eqn
# --
\begin{equation}
  \label{eq:1}
  $0
\end{equation}

After you loaded the snippet, type eqn and press tab to insert the snippet. Then you can call org-edit-special to enter the edit buffer.

TeX Master

By default, org-edit-latex will generate a TeX-master file automatically. The master file is used for:

  • Completion in edit buffer via AucTeX
  • Preview in the edit buffer

The LaTeX preamble used by the master file is the same as org-preview settings.

The master file locates in the same directory as the org file does. You can update the master file via org-edit-latex-update-master after changing the preview settings.

You can use org-edit-latex-preview-at-point to preview in a edit buffer. By default, the keybinding of preview-at-point (AucTeX) is remapped to this function.

Demo

w/o master: without master

with master: with master

Change Log

  • 0.8.0 Add support for TeX-master; provide preview function.
  • 0.7.0 Fix a few bugs regarding latex fragment/environment with name/caption/attrib.
  • 0.6.3 Fix inline math issue caused by a bug from org.
  • 0.6.2 src blocks will be untouched.
  • 0.6.1 Fix inline src block not recognized.
  • 0.6.0 Editing of inline latex (including non math latex fragments) is supported. ...

TODO

  • Mention cdlatex
  • Mention yasnippet
  • Add more demo gifs
  • Add support for inline math.
  • Turn this feature into a minor mode. (by purcell)

org-edit-latex's People

Contributors

et2010 avatar purcell avatar stardiviner avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.