]> git.lyx.org Git - lyx.git/blobdiff - src/mathed/math_macroarg.C
make \newcommand{\bb}[1]{\mathbf{#1}} work for read/write/display.
[lyx.git] / src / mathed / math_macroarg.C
index a9a565160f6fe82631bfd887ad74bd42e1651e42..35d09d22d9463e4d351663c2e740f2a89123f266 100644 (file)
 
 
 
-MathMacroArgument::MathMacroArgument(int n)
-       : MathNestInset(1), number_(n), expanded_(false)
+MathMacroArgument::MathMacroArgument(int n, MathTextCodes code)
+       : MathNestInset(1), number_(n), expanded_(false), code_(code)
 {
        if (n < 1 || n > 9) {
                lyxerr << "MathMacroArgument::MathMacroArgument: wrong Argument id: "
                        << n << std::endl;
        }
        str_[0] = '#';
-       str_[1] = '0' + static_cast<unsigned char>(n);
+       str_[1] = static_cast<unsigned char>('0' + n);
        str_[2] = '\0';
 }
 
@@ -32,7 +32,10 @@ MathInset * MathMacroArgument::clone() const
 
 void MathMacroArgument::write(WriteStream & os) const
 {
-       os << str_;
+       if (code_ == LM_TC_MIN)
+               os << str_;
+       else
+               os << '\\' << math_font_name(code_) << '{' << str_ << '}';
 }
 
 
@@ -67,6 +70,8 @@ void MathMacroArgument::normalize(NormalStream & os) const
 void MathMacroArgument::substitute(MathMacro const & m)
 {
        cell(0) = m.cell(number_ - 1);
+       for (MathArray::iterator it = cell(0).begin(); it != cell(0).end(); ++it)
+               it->nucleus()->handleFont(code_);
        expanded_ = true;
 }