#include <iostream>
+
+namespace lyx {
+
using std::cerr;
using std::endl;
bool is_math_env(string const & name)
{
- static char const * known_math_envs[] = { "equation", "equation*",
- "eqnarray", "eqnarray*", "align", "align*", "gather", "gather*",
- "multline", "multline*", "math", "displaymath", "flalign", "flalign*",
- // These require extra args
- "alignat", "alignat*", "xalignat", "xalignat*", "xxalignat",
- 0};
-
- for (char const ** what = known_math_envs; *what; ++what)
- if (*what == name)
- return true;
- return false;
+ return known_math_environments.find(name) != known_math_environments.end();
}
}
else if (t.cat() == catLetter ||
- t.cat() == catSpace ||
t.cat() == catSuper ||
t.cat() == catSub ||
t.cat() == catOther ||
t.cat() == catParameter)
os << t.character();
- else if (t.cat() == catNewline) {
- //if (p.next_token().cat() == catNewline) {
- // p.get_token();
- // handle_par(os);
- //} else {
- os << "\n "; // note the space
- //}
- }
-
else if (t.cat() == catBegin) {
os << '{';
parse_math(p, os, FLAG_BRACE_LAST, mode);
os << "unexpected '}' in math\n";
}
- else if (t.cat() == catComment)
- handle_comment(p);
+ else if (t.cat() == catComment) {
+ if (!t.cs().empty())
+ cerr << "Ignoring comment: " << t.asInput();
+ else
+ // "%\n" combination
+ p.skip_spaces();
+ }
//
// control sequences
os << '}';
}
+ else if (t.cs() == "tag") {
+ os << '\\' << t.cs();
+ if (p.next_token().asInput() == "*") {
+ p.get_token();
+ os << '*';
+ }
+ os << '{';
+ parse_math(p, os, FLAG_ITEM, MATHTEXT_MODE);
+ os << '}';
+ }
+
else if (t.cs() == "mbox" || t.cs() == "fbox") {
os << "\\" << t.cs() << '{';
parse_math(p, os, FLAG_ITEM, MATHTEXT_MODE);
else if (t.cs() == "ss")
os << "ß";
+ else if (t.cs() == "cr") {
+ // lyx can't handle \\cr
+ cerr << "Warning: Converting TeX '\\cr' to LaTeX '\\\\'."
+ << endl;
+ os << "\\\\";
+ }
+
else
os << t.asInput();
// }])
+
+
+} // namespace lyx