Ihor Radchenko writes: > I am attaching a tentative patch that will make Org export remove > zero-width spaces when those spaces actually separate the object > boundaries. > > Any objections? Given the raised objections, zero-width space does not appear to be a useful escape symbol because it has its valid uses as a standalone space symbol. The raised objections can be solved using some kind of intricate heuristics, but I do not feel like it is a good direction to go. The code will be too complex and fragile. Therefore, I am proposing a different approach for shielding fontification: introducing a special entity. The new entity is \--, which is a valid boundary between emphasis markup. It will be removed during export (replaced by ""). "\--" specifically is somewhat arbitrary choice. The actual requirements for the entity name are: (1) No clash with LaTeX (which is why simpler \- would not cut it); (2) Being a valid markup boundary: entity must end with (any space ?- ?\( ?' ?\" ?\{). I am attaching a tentative patch introducing the new entity. Note that some minor tweaks to the parser were needed. I do not see it as a big deal - the current entity regexp has much more cumbersome exceptions. Also, the patch will not work correctly on org → org export, similar to pointed in one of the replies to the previous abandoned approach. I do not want to address it here because a much more appropriate solution for this issue is changing org-element-interpret-data. Consider (org-element-interpret-data '("asd" (bold () "bold") "bsd")) This will return "asd*bold*bsd", which is not correct even though the given Org datum is not wrong by itself - such things can easily appear when user filters are applied to parse tree during org→org export. Otherwise, the patch should be good enough to play around and kick-start the discussion. WDYT? Best, Ihor