Hi GiNaC!
I love the library! Keep up the good work!

Currently though I am having trouble with LaTeX output; I would like to parse an expression, then set the LaTeX name to the symbols that were generated from the reader. I can do that, but the expression doesn't change when I print it. Here is an minimal example:

#include <ginac/ginac.h>
std::string addTeXbrackets(std::string const& in)
{
   std::string ret = in;
   std::string::size_type pos = 0;
    while((pos = ret.find('_', pos)) != std::string::npos)
    {
    ret.replace(pos, 1, "_{");
    pos += 1; // move past the dot (and the extra '\n')
    ret.push_back('}');
    }

   return ret;
}
int main(){
GiNaC::parser reader;
GiNaC::ex  e =  reader("2*x_1+sin(y_2)");
GiNaC::symtab & vars = reader.get_syms();
std::cout << GiNaC::latex;
for (std::pair<std::string, GiNaC::ex> var : vars) {
// loop through each symbol then texify and use "set_TeX_name()"
    GiNaC::ex_to<GiNaC::symbol &>(var.second).set_TeX_name(addTeXbrackets(var.first));
    std::cout<<var.second<<std::endl;
} //<- Not sure how to add latex to the output yet
std::cout<<e<<std::endl;
}
//output is:
x_{1}
y_{2}
2 x_1+\sin(y_2)

Thanks!
Charles