Code Monkey home page Code Monkey logo

latex-extra's Introduction

latex-extra Build Status

Defines extra commands and keys for LaTeX-mode. To activate, install from melpa and add the following to your init.el file:

(add-hook 'LaTeX-mode-hook #'latex-extra-mode)

Note, this will move the key binds C-c C-q, C-c C-f, and C-c C-p. To understand why (or disable it) look into the variables latex/override-font-map, latex/override-fill-map, and latex/override-preview-map.

The additions of this package fall into the following categories:

1-Key Compilation

Tired of hitting C-c C-c RET 4 times (latex, bibtex, latex, view) for the document to compile? That's 12 keys! This defines a much needed command that does everything at once, and even handles compilation errors!

  • C-c C-a => latex/compile-commands-until-done

Content Folding

Similar to how org-mode hides and displays of subtrees, if you hit TAB on a section header latex-extra will hide the contents of that section for you. Hitting tab twice will expand it again.
This will not interfere with whatever with other keybinds you have set for TAB, such as yasnippet or auto-completion.

Shift-TAB will do the same for the entire buffer.

Of course, the same goes for chapters, subsections, etc.

Navigation

Five new keybindings are defined for navigating between sections/chapters. These are meant to be intuitive to people familiar with org-mode.

  • C-c C-n => latex/next-section
    Goes forward to the next section-like command in the buffer (\part, \chapter, (sub)section, or (sub)paragraph, whichever comes first).
  • C-c C-u => latex/up-section
    Goes backward to the previous section-like command containing this one. For instance, if you're inside a subsection it goes up to the section that contains it.
  • C-c C-f => latex/next-section-same-level
    Like next-section, except it skips anything that's "lower-level" then the current one. For instance, if you're inside a subsection it finds the next subsection (or higher), skipping any subsubsections or paragraphs.
  • C-M-f => latex/forward-environment
    Skip over the next environment, or exit the current one, whichever comes first.
  • C-M-e => latex/end-of-environment
    Exit the current environment, and skip over some whitespace afterwards. (Like LaTeX-find-matching-end, but a little more useful.)
  • C-M-b => latex/backward-environment
  • C-M-a => latex/beginning-of-environment
  • C-c C-p => latex/previous-section
  • C-c C-b => latex/previous-section-same-level
    Same as above, but go backward.

Whitespace Handling

latex-extra.el improves auto-fill-mode so that it only applies to text, not equations. To use this improvement, just activate auto-fill-mode as usual.

It also defines a new command:

  • C-c C-q => latex/clean-fill-indent-environment
    Completely cleans up the entire current environment. This involves:
    1. Removing extraneous spaces and blank lines.
    2. Filling text (and only text, not equations).
    3. Indenting everything.

Small User Experience Improvements

The buffer used to display LaTeX errors is typically a regular text buffer in fundamental-mode. latex-extra switches it to special-mode and adds some colors to the display.

latex-extra's People

Contributors

malabarba avatar

Watchers

 avatar  avatar  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.