3

Is there a way to execute a .bat file directly from a latex document when I compile that document?

I would something like this:

\documentclass{article}

\begin{document}
\chapter{test}
bla bla bla
ecc...
\executebat{C:\...\...\...}
\end{document}
3
  • Are you thinking to launching MakeIndex from inside your LaTeX run? Commented Dec 3, 2012 at 17:10
  • 3
    You want \write18. For that to work, you will need to compile with --shell-escape. Commented Dec 3, 2012 at 18:49
  • @egreg Thanks, but I know your package "imakeidx" : ) Commented Dec 4, 2012 at 17:13

1 Answer 1

7

You have to run LaTeX (latex, pdflatex, xelatex or lualatex) with the -shell-escape option: then this code defines what you need.

\usepackage{pdftexcmds}
\makeatletter
\newcommand{\executebat}[1]{%
  \ifnum\pdf@shellescape=\@ne
    \immediate\write18{#1}%
  \else
    \GenericError{}{Shell escape not enabled}{}
      {You have to run (pdf)LaTeX with the option `-shell-escape'}%
  \fi
}
\makeatother

However, if your purpose is to run MakeIndex, then the imakeidx package does it without user intervention (not with the article class unless some precautions are taken).

You must log in to answer this question.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.