Hi Robert, I was trying to exactly the same but not for Vietnamese. There is a mechanism "Overstrike glyphs". Let me paste today notes:
The composing mechanism described in manual as: .%CODE \&\\\(lBbase_glyph glyph1 glyph2 ...\(rB .%ENDCODE do not working for me. The reason is that it only created composed glyph name, glyph which already must be in font for specific output. This means that the composed glyph must be already prepared in font. .%PARA Lucky there is another mechanism in form of \fC\\o'...'\fP escape. See the \*[%quote Overstrike glyphs] ... .%SECTION "Overstrike glyphs" .Escape \\\\o[...] This allows to print up to nine glyphs over itself. It's done correctly as you expect. The glyphs are centered and the whole thing gets the size of the widest glyph. .%CODE \&\\o'e\\(ao\\(ac'\\o'\\(.i\\(a~\\(ho' .%ENDCODE Render to: \o'e\(ao\(ac'\o'\(.i\(a~\(ho' So if I'm correct with unicode try this \o'\[u1EA5]\[u1EC7]' hope it helps On 21 December 2016 at 06:23, Werner LEMBERG <w...@gnu.org> wrote: > > > I have used two Unicode characters, u1EA5 and u1EC7 > > in a groff document, > > Do you use a font that contains those two characters? Then it would > classify as a bug, otherwise... > > > but get messages (for the first: > > > > warning: can't find special character `u0065_0323_0302' > > > > and > > > > warning: can't find special character `u0061_0302_0301' > > for the second. > > ... it is expected, since groff doesn't have a mechanism to > automatically construct stacked diacritics. In other words, you have > to provide > > .char \[u0065_0323_0302] ... > .char \[u0061_0302_0301] ... > ... > > by yourself. > > > Werner > > -- Radek