58

I want something like \ifmmode\else\GenerateWarning{The command \backslash uzuka is supported only in math mode.}\fi, which is supposed to generate a warning "The command \uzuka is supported only in math mode.". Is there a command or a package with this capacibility?

Vebjorn
  • 1,778
fiktor
  • 1,953

3 Answers3

41

For LaTeX, use the commands described in section 4.9 of clsguide.pdf:

  • \PackageWarning and \PackageWarningNoLine if you are writing a package
  • \ClassWarning and \ClassWarningNoLine if you are writing a class
  • The internal generic version for warnings is \GenericWarning

The expl3 bundle has another interface for warnings and similar messages, see Part III, chapter 11 in source3.pdf.

Philipp
  • 17,641
22

Just use the built-in \errmessage for errors, e.g. \let\GenerateWarning=\errmessage.

The kind of warnings Latex generates are just messages; \let\GenerateWarning=\message will not interrupt the compile. Latex uses the commands \@latex@warning and \@latex@warning@no@lines to create these for its own warnings: you check the source you find in latex.ltx.

Charles Stewart
  • 21,014
  • 5
  • 65
  • 121
  • Yes, that will allow to generate errors. But what about warnings? Is it possible to generate them too? – fiktor Sep 20 '10 at 11:13
  • 5
    Thanks to search using \errmessage keyword I've found in TeXBook how to output warning. Actually I've found, that my editor (TeXnicCenter 1.0) treats as warnings output lines like "LaTeX Warning: \uzuka used outside of math mode on input line 211", which can be generated using \message{LaTeX Warning: \noexpand\uzuka used outside of math mode on input line \the\inputlineno}. Thank you. – fiktor Sep 20 '10 at 11:21
  • Relevant: https://tex.stackexchange.com/q/115976/8666 – 0 _ Aug 21 '17 at 00:55
  • Is it possible to generate an expanded message as well? – Someone Nov 08 '20 at 21:47
17

You can use \typeout{msg}. The command will print msg on the terminal and in the log file.

yannisl
  • 117,160