-int InsetSpecialChar::docbook(odocstream & os, OutputParams const &) const
-{
- switch (kind_) {
- case HYPHENATION:
- break;
- case ALLOWBREAK:
- // U+200B ZERO WIDTH SPACE (ZWSP)
- os.put(0x200b);
- break;
- case LIGATURE_BREAK:
- break;
- case END_OF_SENTENCE:
- os << '.';
- break;
- case LDOTS:
- os << "…";
- break;
- case MENU_SEPARATOR:
- os << "&lyxarrow;";
- break;
- case SLASH:
- os << '/';
- break;
- case NOBREAKDASH:
- os << '-';
- break;
- case PHRASE_LYX:
- os << "LyX";
- break;
- case PHRASE_TEX:
- os << "TeX";
- break;
- case PHRASE_LATEX2E:
- os << "LaTeX2";
- // ε U+03B5 GREEK SMALL LETTER EPSILON
- os.put(0x03b5);
- break;
- case PHRASE_LATEX:
- os << "LaTeX";
- break;
+namespace {
+string specialCharKindToXMLEntity(InsetSpecialChar::Kind kind) {
+ switch (kind) {
+ case InsetSpecialChar::Kind::HYPHENATION:
+ // Soft hyphen.
+ return "­";
+ case InsetSpecialChar::Kind::ALLOWBREAK:
+ // Zero-width space
+ return "​";
+ case InsetSpecialChar::Kind::LIGATURE_BREAK:
+ // Zero width non-joiner
+ return "‌";
+ case InsetSpecialChar::Kind::END_OF_SENTENCE:
+ return ".";
+ case InsetSpecialChar::Kind::LDOTS:
+ // …
+ return "…";
+ case InsetSpecialChar::Kind::MENU_SEPARATOR:
+ // ⇒, right arrow.
+ return "⇒";
+ case InsetSpecialChar::Kind::SLASH:
+ // ⁄, fractional slash.
+ return "⁄";
+ case InsetSpecialChar::Kind::NOBREAKDASH:
+ // Non-breaking hyphen.
+ return "‑";
+ case InsetSpecialChar::Kind::PHRASE_LYX:
+ return "LyX";
+ case InsetSpecialChar::Kind::PHRASE_TEX:
+ return "TeX";
+ case InsetSpecialChar::Kind::PHRASE_LATEX2E:
+ // Lower-case epsilon.
+ return "LaTeX2ε";
+ case InsetSpecialChar::Kind::PHRASE_LATEX:
+ return "LaTeX";
+ default:
+ return "";