# escape-latex [![Greenkeeper badge](https://badges.greenkeeper.io/dangmai/escape-latex.svg)](https://greenkeeper.io/) [![Build Status](https://travis-ci.org/dangmai/escape-latex.png)](https://travis-ci.org/dangmai/escape-latex) Escape LaTeX special characters with Javascript in NodeJS (>= 4.x) environment. ## Usage ```javascript npm install escape-latex var lescape = require('escape-latex'); lescape("String to be escaped here #yolo"); ``` ## API ```javascript lescape((input: String), { preserveFormatting: Boolean, escapeMapFn: Function, }); ``` By default, `escape-latex` only escapes characters that would result in malformed LaTeX. These characters include `# $ % & \ ^ _ { }`. This means that the final LaTeX output might not look the same as your input Javascript string. For example, multiple spaces are kept as-is, which may be truncated to 1 space by your LaTeX software. If you want the final output string to be as similar to your input Javascript string as possible, you can set the `preserveFormatting` param to `true`, like so: ```javascript lescape("Hello World", { preserveFormatting: true }); // Hello~~~World ``` Which will be converted to three non-breaking spaces by your LaTeX software. The list of format characters that are escaped include `space, \t (tab), – (en-dash), — (em-dash)`. There is also the param `escapeMapFn` to modify the mapping of escaped characters, so you can add/modify/remove your own escapes if necessary. It accepts a callback function that takes in the default character escapes and the formatting escapes as parameters, and returns a complete escape mapping. Here's an example: ```javascript lescape("Hello World", { preseveFormatting: true, escapeMapFn: function(defaultEscapes, formattingEscapes) { formattingEscapes[" "] = "\\\\"; return Object.assign({}, defaultEscapes, formattingEscapes); }, }); // Hello\\\\\\world ``` ## Testing ``` npm test ``` ## Notes * If you are updating from `escape-latex < 1.0.0`, the `en-dash` and `em-dash` are no longer escaped by default. Please use `preserveFormatting` to turn them on if necessary. ## License MIT