protected override void Write(OpenXMLRenderer renderer, EmphasisInline obj) { int nPushed = 0; switch (obj.DelimiterChar) { case '*': case '_': if (obj.IsDouble) { renderer.PushInlineFormat(OpenXMLRenderer.InlineFormat.Bold); ++nPushed; } else { renderer.PushInlineFormat(OpenXMLRenderer.InlineFormat.Italic); ++nPushed; } break; case '~': if (obj.IsDouble) { renderer.PushInlineFormat(OpenXMLRenderer.InlineFormat.Strikethrough); ++nPushed; } else { renderer.PushInlineFormat(OpenXMLRenderer.InlineFormat.Subscript); ++nPushed; } break; case '^': renderer.PushInlineFormat(OpenXMLRenderer.InlineFormat.Superscript); ++nPushed; break; case '+': // Inserted style { renderer.PushInlineFormat(OpenXMLRenderer.InlineFormat.Underline); ++nPushed; } break; case '=': // Marked style break; } renderer.WriteChildren(obj); for (int i = 0; i < nPushed; ++i) { renderer.PopInlineFormat(); } }