Take the 2-minute tour ×
TeX - LaTeX Stack Exchange is a question and answer site for users of TeX, LaTeX, ConTeXt, and related typesetting systems. It's 100% free, no registration required.

In running MiKTeX

  1. What is the difference between -shell=escape and --shell-escape
  2. What is the difference between -synctex=1, --synctex=1, and --synctex=-1
share|improve this question
Following GNU conventions, "long" options should be prefixed by --, in order to distinguish them from "short" options like in ls -l. However, all TeX distributions allow long options to be prefixed by - (and abbreviated as long as they remain unambiguous). –  egreg Dec 8 '11 at 13:29
@Andrey: Is that a zero width non breaking space? I was considering doing the same, but now searching for -- won't return this question, will it? I guess this would be a case for a request on TeX - LaTeX Meta to turn off auto-conversion of -- to a dash, at least in titles. I haven't encountered it in post bodies, where it actually might make sense, except for code, of course. But since there's no code markup in titles ... –  doncherry Mar 17 '12 at 17:17
@doncherry: Yes, it's a ZWSP. It also seems that -- does not work in search altogether. –  Andrey Vihrov Mar 17 '12 at 17:25
add comment

3 Answers

-shell=escape is invalid.

The correct syntax is the one starting with two hyphens. The versions with one hyphen (-shell-escape) often works too. But as Christian Schenk, the maintainer of MiKTeX, once wrote:

Please note that the single '-' prefixes a sequence of single-letter options (aka short options). That is, if you specify -unre, you are actually invoking these options:

--update-fndb  --print-only  --user-roots

I would recommend, tha you always specify the "long options" (prefixed by two '-'). The short options (one '-') are only for backward compatibility.

share|improve this answer
For a second, I was wondering who Christian was, then I think I remembered. Hope my edit is correct. –  doncherry Mar 17 '12 at 16:59
add comment

With regard to question no. 2: --synctex=1 creates a compressed SyncTeX file, while --synctex=-1 creates an uncompressed one. (--synctex=0 would create no SyncTeX file at all.)

share|improve this answer
add comment

From the command line help:

-synctex=N Generate SyncTeX data for previewers if nonzero.

-synctex and --synctex are both accepted, so all three variants enable the generation of SyncTeX data.

-shell is an unknown command-line option and produces an error.

--shell-escape seems to be silently accepted. However with MiKTeX 2.9 it is not on the list of options any more. Packages like epstopdf need to be able to “escape to a shell”. In TeX this is done via the \write18 feature. In MiKTeX it is only partially enabled by default to avoid security problems: only well known commands are allowed. You fully enable the feature by specifying --enable-write18 on the TeX command-line.

share|improve this answer
@egreg Yes, that is my understanding too but as uli points out I'm not sure if it is documented –  Joseph Wright Dec 8 '11 at 13:47
@uli I believe that MiKTeX 2.9 accepts --shell-escape as well as its traditional --enable-write18, for compatibility with TeX Live. –  egreg Dec 8 '11 at 13:52
add comment

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.