Special characters#

If you define a class with a name having the: character in it – typically when you give the namespace of the class – it may have a conflict with the french (or frenchb or francais) option of the babel package. Indeed, these options add a white-space before the: character if the writer forgot it, that is a problem for the access operator::. If we take the example of class definition, we should obtain:

\umlclass{namespace::A}{
  + n : uint \\
  \umlstatic{-- i : int} \\
  \# r : const float
  }{
  + setA(i : int) : void \\
  \umlvirt{\# getA() : A}
}

Figure made with TikZ

Figure made with TikZ

The solution is to use a specific macro given by these options of babel package you have to use in the preamble of your document:

\frenchbsetup{AutoSpacePunctuation=false}