11

I'm looking for a way of adding tone marks above characters. It's fairly easy to add Pinyin with tone marks, but I want to add only tone marks. I want to use this as a teaching tool, because even though most students don't have a big problem with the syllables, they do need to focus more on tones. Thus, adding the tone marks would mean that students can focus on the characters while still being able to see the tones if they need to and focus on them more.

Right now, I have to do this manually, which is quite tedious. However, I'm guessing that there might be a way of doing this automatically. Perhaps there are fonts that display the tone diacritic next to the character? The problem would be characters with multiple readings, of course, but perhaps there is a way around that. Does anybody know of any other way of adding tone marks above characters without having to do it manually?

This is done both in Practical Audio-Visual Chinese and New Practical Chinese Reader (can't remember exactly where it begins and where it stops, though), but I think they've done it manually using some kind of typesetting tool. The best solution would probably be to use Ruby annotation and somehow get rid of the Pinyin/Zhuyin and get only the tone mark. I don't know if that's possible, though.

Olle Linge
  • 3,057
  • 1
  • 23
  • 37
  • I have been teaching my daughter Mandarin for 6 years. First I taught her pinyin. When she was able to read pinyin correctly, then I helped her read simple stories with pinyin (with tone marks) on each character. Now she can read stories to me without pinyin on characters. I have been learning English for more than 20 years, and my English is still far cry from close to native speakers. So from the 2 cases I mentioned above, I can draw a conclusion that the most effective easiest way to learn a foreign language is to following the way how you learn your own mother language. – 孤影萍踪 Apr 16 '13 at 17:51
  • Back to your question, I think you need to get your students able to read pinyin correctly, then give them texts with pinyin on each character. When they have mastered enough basic characters (100~200 maybe), then give them texts without pinyin. I don't know any tools which can put tone marks only on characters. One thing to consider: some characters are polyphones (probably different tones), and the tool, if any, won't know which tone mark to choose. If wrong tone marked on characters, it will mislead or cause confusions. – 孤影萍踪 Apr 16 '13 at 18:06
  • The reasons why I want to do this are slightly complicated, but since this is what several textbooks actually do (Practical Audio-Visual Chinese, and New Chinese Practical Reader, for instance), I'm not alone in thinking that this is a good idea.

    The thing is that if you have Pinyin next to the characters, it's hard for people used to the Latin alphabet to read the characters at all. Students eyes focus automatically on the Pinyin. This is not good.

    Adding only tone marks offers the support the students need without making them read the Pinyin instead of the characters.

    – Olle Linge Apr 17 '13 at 02:38
  • Regarding 破音字, that isn't necessarily a big problem. Choosing the most common tone would solve most problems and checking the rest manually would still be much quicker than adding each mark manually. Also, if the tool checked against any dictionary, most 破音字 could be sorted out. – Olle Linge Apr 17 '13 at 02:39
  • @OlleLinge also consider, I find numerical tones much more easy to remember than graphical tones. I stopped learning with graphical accents. I use numbers now. Probably because of visual memory. But intimately, I personnally think it's because the impact of the number that is bigger visually than a little ` or the other accents, that can be confused. – Stephane Rolland Apr 19 '13 at 22:19
  • Going with numerals might be the best option. Apart from the fact that some learners (including you and me) seem to think that they are easier to remember, they are also easier to see and much easier to produce. – Olle Linge Apr 20 '13 at 01:45

3 Answers3

4

I'm not quite sure what your question actually is. Do you want to know how:

  1. to better teach Chinese tones? (cram specific tone recall quizzes)
  2. to automate adding pinyin with diacritical marks to your text? (google, find e.g. annotator.jiang-long.com)
  3. to use Ruby annotations in your typesetting environment? (which?)

If you use LaTeX, see e.g.: https://tex.stackexchange.com/questions/4448/tone-marks-above-chinese-characters-in-latex

You might also try combining Unicode characters with the program of your choice: http://en.wikipedia.org/wiki/Combining_character

The easiest solution to getting the tone marks out of pinyin is to use Regular Expressions. I have written a Javascript bookmark for you, which works with annotator.jiang-long.com:

javascript:(function(){var e,es,i;es=document.getElementsByTagName("acronym");for(i=0;e=es[i];i++){e.innerHTML=e.innerHTML.replace(/\w*[āɑ̄ēīōūǖĀĒĪŌŪǕ]\w*/g,' ˉ ').replace(/\w*[áɑ́éíóúǘÁÉÍÓÚǗ]\w*/g,' ˊ ').replace(/\w*[ǎɑ̌ěǐǒǔǚǍĚǏǑǓǙ]\w*/g,' ˇ ').replace(/\w*[àɑ̀èìòùǜÀÈÌÒÙǛ]\w*/g,' ˋ ');}})();

And an advanced version using XPath which also takes care of toneless pinyin:

javascript:(function(){var i,t,ts,e,at;at=parseInt(prompt("Which row is the pinyin in?",1))-1;ts=document.querySelectorAll( 'table.textblock' );for(i=0;t=ts[i];i++){e=t.querySelectorAll('acronym')[at];e.innerHTML=e.innerHTML.replace(/\w*[āɑ̄ēīōūǖĀĒĪŌŪǕ]\w*/g,' ˉ ').replace(/\w*[áɑ́éíóúǘÁÉÍÓÚǗ]\w*/g,' ˊ ').replace(/\w*[ǎɑ̌ěǐǒǔǚǍĚǏǑǓǙ]\w*/g,' ˇ ').replace(/\w*[àɑ̀èìòùǜÀÈÌÒÙǛ]\w*/g,' ˋ ').replace(/[^ˉˊˇˋ ]+/g,' · ').replace(/ /g,' ');}})();

Just create a new bookmark and past the Javascript as URL. It replaces any word containing an āíěòū etc. with the respective tone mark.
I picked annotator.jiang-long.com totally at random; you may need to adjust the code if you want it to work with your favorite annotator webservice.

Update: convert pinyin without tonemarks into dots

Jens Jensen
  • 430
  • 3
  • 12
  • Thanks for the reply, but I think my description above is fairly accurate? I want to add tone marks (not pinyin, not anything else) above characters in a line of text. That's it.
    1. Yes, that's the goal. But it's NOT for cramming or recall or any kind of quizzes, but for reading.

    2. I don't want the Pinyin, that would defy the purpose since students would then read the Pinyin and not the characters.

    3. Yes, that's what I think most people are doing, but I was looking for an alternative to adding all the diacritics manually. All automated versions I've seen have included Pinyin/Zhuin too.

    – Olle Linge Apr 20 '13 at 01:48
  • @Olle Linge What is your typesetting environement? LaTeX? Word? HTML? InDesign? – Jens Jensen Apr 20 '13 at 10:31
  • Mostly Word or OpenOffice, but I have limited experience of InDesign as well. No LaTeX though. – Olle Linge Apr 21 '13 at 05:55
  • 1
    @Olle Linge: I don't do Office scripting, so I wrote you a Javascript which you can use with the annotator service I googled. – Jens Jensen Apr 23 '13 at 08:56
  • And it works! Thank you so much! Is it okay with you if I share this (along with the motivation as to why I want to do it) in a blog post? I will of course give you credits. I know other people are interested in doing this. – Olle Linge Apr 24 '13 at 02:25
  • 1
    Feel free to do so, getting knowledge out to people is the purpose of Stackexchange after all =) – Jens Jensen Apr 24 '13 at 08:52
  • I just noticed that it doesn't seem to handle neutral tones very well (it doesn't do anything). I suppose this is trickier to do, but is it possible to simply remove everything for syllables that have neutral tones? – Olle Linge May 08 '13 at 09:47
  • 1
    I changed the Javascript so neutral tones are displayed as dots. – Jens Jensen May 09 '13 at 14:25
  • I think something broke when you updated the code. The old version works fine, but not the new one. – Olle Linge May 10 '13 at 07:26
  • The new version works for me in Chrome 23 and Firefox 19. What browser are you using? Do you get any messages on the Javascript console? – Jens Jensen May 10 '13 at 12:54
  • The first code snippet works well and generates this result: https://www.dropbox.com/s/h9c9zvlk2iwcqjd/version1.png

    The second one replaces all characters with dots, it looks like this for me: https://www.dropbox.com/s/le0dtq4p150hbz4/version2.png

    I'm using Firefox 20 on Ubuntu.

    – Olle Linge May 11 '13 at 03:50
  • 1
    I added a prompt to choose which row of annotation to substitute. If you only display hanzi and pinyin you should choose "1". – Jens Jensen May 11 '13 at 23:16
  • It works fine now, thanks a lot! I published an article about why I think this is useful here (including how to do it, of course): http://www.hackingchinese.com/?p=3738 – Olle Linge May 12 '13 at 13:41
  • Thanks for putting my Stackexchange link in, you can also see http://stackoverflow.com/questions/4003524/latex-question-accents-on-characters , and the program useing this is http://code.google.com/p/hanzi2tghz/ . – Twig May 12 '13 at 16:37
  • didn’t work for me, worked better when I replaced

    'table.textblock'

    with

    'div.textblock'

    but it shows extra neutral tones: http://www.webpagescreenshot.info/img/52c49032495861-48514210

    – Kai Carver Jan 01 '14 at 22:07
  • Olle's link is now: http://www.hackingchinese.com/adding-tone-marks-wo-pinyin-above-characters-to-practise-tones/ – Kai Carver Jul 17 '17 at 00:17
2

I have written some software that does, this https://code.google.com/p/tghz-word-tone-annotator/ . It is however a Microsoft word add-in.

Twig
  • 121
  • 4
1

Check https://www.purpleculture.net/chinese-pinyin-converter/, this tool can add tone numbers only

Thomas
  • 9
  • 1