Sign Up for Free

RunKit +

Try any Node.js package right in your browser

This is a playground to test code. It runs a full Node.js environment and already has all of npm’s 400,000 packages pre-installed, including gulp-pdflatex2 with all npm packages installed. Try it out:

var gulpPdflatex2 = require("gulp-pdflatex2")

This service is provided by RunKit and is not affiliated with npm, Inc or the package authors.

gulp-pdflatex2 v4.0.1

A gulp-plugin for compiling .tex files to .pdf files


npm npm npm GitHub pull requests GitHub issues

GitHub watchers GitHub forks

gulp-pdflatex2 is a wrapper around pdflatex for compiling .tex files into .pdf files. It is an improved version of gulp-pdflatex that displays LaTeX compilation errors instead of suppressing them.


npm install --save gulp-pdflatex2


// gulp-rename is not required, but very helpful for redirecting your
// .tex files to a specific output directory.
var gulp = require('gulp');
var rename = require('gulp-rename');
var pdflatex2 = require('gulp-pdflatex2');

gulp.task('latex', () => {
  return gulp.src('./*.tex')
      cliOptions: ['-shell-escape'],
      keepIntermediateFiles: './tmp',
      texInputs: ['./path/to/cls']
    .pipe(rename(function(path) {
      path.dirname += '/output';
    // the compiled pdf file is given to the pipeline
    // specify the keepIntermediateFiles option to store intermediate files


  • cliOptions: optional, pass an additional array of command line options to the pdflatex invocation. Be aware that this package by default specifies -file-line-error, -halt-on-error, and -output-directory. Overwriting these manually will result in unexpected behavior.
  • keepIntermediateFiles: optional, pass a directory, relative to the path of the gulpfile for the intermediate .aux, .log, .toc, and other miscellaneous files to be stored in.
  • texInputs: optional, pass an array of directories for pdflatex to look in for files, useful if you have external class files. This will be used to populate the TEXINPUTS environment variable. If one is already defined, then whatever is specified in this option will be appended to the existing TEXINPUTS environment variable. This is populated by default with the path of the file being piped to gulp.

Author for GitHub Twitter Follow GitHub followers

RunKit is a free, in-browser JavaScript dev environment for prototyping Node.js code, with every npm package installed. Sign up to share your code.
Sign Up for Free