How to type characters for phonetic guide over a word in Microsoft Word?

You're doing it completely wrong. Fractions are exactly for what they're named: showing fractions, with a line in between at the baseline

I guess there is no easy way. Does other publishing tools like Pagemaker does have any tricks on its sleeve?

There are ways to achieve that in any decent editing tools, for example MS Office, Libre Office, Hancom Office... and of course even TeX. In fact you'd find the answer immediately if you've googled something like "MS Word phonetic guide"

Even html supports it with the <ruby> tag and CSS also has the Ruby Styling Module. The tag is meant for Ruby character which are commonly used in East Asian texts for phonetic guides but of course it can be used for any languages. The linked wikipedia article also uses <ruby> tag (just look at the page source) so you can see the examples clearly in your browser

The ruby characters appears above the base word, and can be adjust to lie on top of a single letter or a group of letters easily. Unfortunately superuser's simple html doesn't support ruby tag, but many other language stackexchange communities like Japanese have special ways to write it in markdown as explained here

To add it in MS Word just select the text to add ruby and click "Phonetic guide" in the Home/Font group

MS Word phonetic guide

The feature is generally available for East Asian languages, so if it doesn't appear on your ribbon then just right click on the ribbon > Customize the Ribbon... and add the "Phonetic guide" button to the Home > Font group, or you can add one East Asian language to the preferences list

Phonetic guide customization

The ruby text is also represented as an equation field code. If you press Alt+F9 or go to Preferences > View and check Show > "Field code" (or right click on the annotated text > Toogle Field Codes) you'll see it's encoded as something like

EQ \* jc2 \* "Font:Yu Mincho" \* hps48 \o\ad(\s\up 47(Tōkyō),東京)

Here jc is the ruby style, for example jc5 is a vertical ruby text, hps is the font size of the ruby text (48pt in this case) and 47 after \up is the distance to move above. However most of the parameters are optional except the vertical distance. So the minimum you can have is like this

EQ \o\ad(\s\up 20(ruby text),main text)

Just press Ctrl+F9, paste the code, adjust the distance and then Alt+F9

It's also possible to add ruby text automatically using VBA but probably you're not interested in it anyway

See also

  • MS Technet blog: Phonetic Guides, Yomi, Furigana, or “Ruby” Text
  • FAQ: How to add phonetic guides 注音標示 to text in MS Word?

You could potentially use a table with the column width set to autosize. Put one character in each column. Not sure you can make it work, and still tedious, though less so.

Otherwise you'd need some sort of tool that could read the font metrics of the second line and space the first line accordingly. I have no idea how you'd go about this, though. Likely some external process would be more likely to succeed than doing it inside Word.