
% \section{Error messages}
% \seclabel{codemsg}
%
% These are defined at the beginning of the package, but we leave their
% definition until now in the source to keep them out of the way.
%
%    \begin{macrocode}
%<*msg>
%    \end{macrocode}
%
% Wrapper functions:
%    \begin{macrocode}
\cs_new:Npn \@@_error:n   { \msg_error:nn   {unicode-math} }
\cs_new:Npn \@@_warning:n { \msg_warning:nn {unicode-math} }
\cs_new:Npn \@@_warning:nnn { \msg_warning:nnxx {unicode-math} }
\cs_new:Npn \@@_log:n     { \msg_log:nn     {unicode-math} }
\cs_new:Npn \@@_log:nx    { \msg_log:nnx    {unicode-math} }
%    \end{macrocode}
%
%    \begin{macrocode}
\msg_new:nnn {unicode-math} {no-tfrac}
{
  Small~ fraction~ command~ \protect\tfrac\ not~ defined.\\
  Load~ amsmath~ or~ define~ it~ manually~ before~ loading~ unicode-math.
}
\msg_new:nnn {unicode-math} {default-math-font}
{
  Defining~ the~ default~ maths~ font~ as~ '\l_@@_fontname_tl'.
}
\msg_new:nnn {unicode-math} {setup-implicit}
{
  Setup~ alphabets:~ implicit~ mode.
}
\msg_new:nnn {unicode-math} {setup-explicit}
{
  Setup~ alphabets:~ explicit~ mode.
}
\msg_new:nnn {unicode-math} {alph-initialise}
{
  Initialising~ \@backslashchar math#1.
}
\msg_new:nnn {unicode-math} {setup-alph}
{
  Setup~ alphabet:~ #1.
}
\msg_new:nnn {unicode-math} {no-alphabet}
{
  I~ am~ trying~ to~ set~ up~ alphabet~"#1"~ but~ there~ are~ no~ configuration~ settings~ for~ it.~
  (See~ source~ file~ "unicode-math-alphabets.dtx"~ to~ debug.)
}
\msg_new:nnn { unicode-math } { no-named-range }
 {
  I~ am~ trying~ to~ define~ new~ alphabet~ "#2"~ in~ range~ "#1",~ but~ range~ "#1"~ hasn't~ been~ defined~ yet.
 }
\msg_new:nnn { unicode-math } { missing-alphabets }
 {
  Missing~math~alphabets~in~font~ "\fontname\l_@@_font" \\ \\
  \seq_map_function:NN \l_@@_missing_alph_seq \@@_print_indent:n
 }
\cs_new:Nn \@@_print_indent:n { \space\space\space\space #1 \\ }
\msg_new:nnn {unicode-math} {macro-expected}
{
  I've~ expected~ that~ #1~ is~ a~ macro,~ but~ it~ isn't.
}
\msg_new:nnn {unicode-math} {wrong-meaning}
{
  I've~ expected~ #1~ to~ have~ the~ meaning~ #3,~ but~ it~ has~ the~ meaning~ #2.
}
\msg_new:nnn {unicode-math} {patch-macro}
{
  I'm~ going~ to~ patch~ macro~ #1.
}
\msg_new:nnn { unicode-math } { mathtools-overbracket } {
  Using~ \token_to_str:N \overbracket\ and~
         \token_to_str:N \underbracket\ from~
	 `mathtools'~ package.\\
  \\
  Use~ \token_to_str:N \Uoverbracket\ and~
       \token_to_str:N \Uunderbracket\ for~
       original~ `unicode-math'~ definition.
}
\msg_new:nnn { unicode-math } { mathtools-colon } {
  I'm~ going~ to~ overwrite~ the~ following~ commands~ from~
  the~ `mathtools'~ package: \\ \\
  \ \ \ \ \token_to_str:N \dblcolon,~
  \token_to_str:N \coloneqq,~
  \token_to_str:N \Coloneqq,~
  \token_to_str:N \eqqcolon. \\ \\
  Note~ that~ since~ I~ won't~ overwrite~ the~ other~ colon-like~
  commands,~ using~ them~ will~ lead~ to~ inconsistencies.
}
\msg_new:nnn { unicode-math } { colonequals } {
  I'm~ going~ to~ overwrite~ the~ following~ commands~ from~
  the~ `colonequals'~ package: \\ \\
  \ \ \ \ \token_to_str:N \ratio,~
          \token_to_str:N \coloncolon,~
          \token_to_str:N \minuscolon, \\
  \ \ \ \ \token_to_str:N \colonequals,~
          \token_to_str:N \equalscolon,~
          \token_to_str:N \coloncolonequals. \\ \\
  Note~ that~ since~ I~ won't~ overwrite~ the~ other~ colon-like~
  commands,~ using~ them~ will~ lead~ to~ inconsistencies.~
  Furthermore,~ changing~ \token_to_str:N \colonsep \c_space_tl
  or~ \token_to_str:N \doublecolonsep \c_space_tl won't~ have~
  any~ effect~ on~ the~ re-defined~ commands.
}
%    \end{macrocode}
%
%    \begin{macrocode}
%</msg>
%    \end{macrocode}