30

I wanted to make a command that outputs a number in math mode. This is how my file looks like:

\documentclass{scrartcl}

%\usepackage{epsdice}
%\newcommand{dice}[1]{\epsdice{#1}}

\newcommand{dice}[1]{\ensuremath{#1}}

\begin{document}
Lorem ipsum...
\end{document}

But when I compile this with XeTeX, I always get this error:

! LaTeX Error: Missing \begin{document}.

See the LaTeX manual or LaTeX Companion for explanation.
Type  H <return>  for immediate help.
 ...                                              

l.13 \newcommand{dice}[1]{\ensuremath{#1}}

I have not that much experience with TeX, I think the solution is quite easy.

3
  • I edited your title so other people with the same problem can find this question more easily, hope you don't mind.
    – doncherry
    Commented Sep 25, 2011 at 12:09
  • 1
    @doncherry Nevermind. Having the right of constructive edits on people's questions and answers is IMHO one of the fundamental principles of the whole Stackexchange / -overflow family.
    – FUZxxl
    Commented Sep 25, 2011 at 15:53
  • 1
    Note that you will end up with the same error message if your new command name includes numbers, even with the leading backslash (just happened to me). E.g. blate.wordpress.com/2012/08/22/… Commented Feb 25, 2016 at 22:45

1 Answer 1

33

You're just missing a backslash in the command definition, it should be

\newcommand{\dice}[1]{\ensuremath{#1}}
2
  • 2
    The point being that Latex emits the "Missing \begin{document}." if it has something that looks like it should be output, but it has not yet met the "\begin{document}" command. Latex will run tokens after the first in its first argument: try passing {d\ice}, {\d\ice}, or {\d i}. Commented Sep 26, 2011 at 9:08
  • The helpful news is that LaTeX tells you the first line it objects to (line 1.13 in this example). Commented Apr 30, 2012 at 0:18

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .