This is the file ruby.txt of the CJK macro package ver. 4.8.5 (16-Oct-2021).

What is ruby?
-------------

To cite Martin Duerst (mduerst@w3.org) who wrote a proposal for ruby in HTML
documents:


   Ruby are small characters used for annotations of a text, at the right
   side for vertical text, and atop for horizontal text, to indicate the
   reading (pronounciation) of ideographic characters. [...]
   
   The name `ruby' is the name of the 5.5 point type size in British
   terminology; this was the size most used for ruby. [...]

   Ruby are in most cases set at half the size of the main letters,
   resulting in a possible two ruby characters per main character, and
   taking up half of the width of the main characters. However, at least up
   to five ruby characters per main character are possible (an example is
   `u-ke-ta-ma-wa-...'), and so various solutions, from leaving white space
   in the main text to having the ruby overlap the next characters of the
   main text, are possible (the later is possible in Japanese especially
   because in many cases, the characters around an ideograph with ruby are
   syllabic, and therefore the assignment of ruby to main characters poses
   no problems for the reader). [...]

   Ruby are particularly frequent in Japanese, because of the way CJK
   ideographs are used in Japanese. Ideographs can have many different
   readings (pronounciations) because different readings were taken over
   from different regions of China and at different times when the
   characters where adopted in Japan. Also, these characters are used to
   write indigenous Japanese words, and many readings may be possible
   because the ideograph might cover many different concepts distinguished
   in the Japanese language. [...] The main use of ruby today is in
   magazines of all levels, and of course in educational material. Ruby are
   also used in educational material in China and Taiwan.

   In Japan, the term `furigana' is also used instead of `ruby'. `Furigana'
   is composed of the verb `furu' (to attach, sprinkle, ...) and `gana'
   (either hiragana or katakana, one of the two Japanese syllabaries usually
   used for ruby).



Usage
-----

Here a typical example:


    \documentclass{article}

    \usepackage{CJK}
    \usepackage[overlap, CJK]{ruby}


    \begin{document}

    \begin{CJK*}{JIS}{song}

    ....Japanese text.....\ruby{base character(s)}{ruby}....

    \end{CJK*}

    \end{document}


The following options can be selected:

  `overlap' and `nooverlap', as described above. \rubyoverlap and
  \rubynooverlap are the corresponding commands to modify the overlap flag.
  `overlap' is the default.

  `CJK' and `latin'. The corresponding commands are \rubyCJK and \rubylatin.
  Use these commands similar to \CJKnospace and \CJKspace to suppress or not
  suppress spaces after a \ruby macro and to get/avoid insertion of glue.
  `CJK' is the default.

The command \rubysize defines the factor between the size of the base
character and the ruby. Its default value is 0.4 . Usually you get some
error messages about size substitution (the reason is that LaTeX 2e always
defines a default error font) which can be safely ignored if you use ttf2pk
or hbf2gf since these programs compute fonts for (almost) any font size. In
the unlikely case that you need latin fonts as ruby it may be necessary to
adapt your FD definition files if the particular font supports non-standard
sizes (e.g., EC, Sauter, PS) and you really want exactly that size.

The command \rubysep defines the separation between the base character and
the ruby. Its default value is -0.5ex.

To avoid lines sticking together the value of \lineskiplimit has been set
to 1pt. It may be necessary to increase this value for larger font sizes.

Note that all \ruby... commands are local, i.e., they obey groups.


Implementation specific details
-------------------------------

There are a number of possibilities how ruby can interact with other CJK
characters.

    o   The ruby has a smaller width than its base character:

        The behaviour is identical to an ordinary CJK character.

    o   The ruby has a greater width than its base character:

        +   Overlapping ruby:

            .   If the previous or next character is a CJK character
                (ordinary or punctuation), insert unbreakable glue between.

            .   If the previous or next character is a ruby, handle both
                ruby as non-overlapping and insert unbreakable glue between.

            .   A ruby at the beginning of a paragraph is treated as if the
                nonoverlap option had been set. To force an overlapping ruby
                you have to start the paragraph with a \leavevmode command.

        +   Non-overlapping ruby:

            .   If the previous or next character is a CJK character
                (ordinary or punctuation), insert unbreakable glue between.

If `latin' is active, no glue at all is inserted.


Technical details
-----------------

ruby.sty introduces a third variation of a small kern (3sp) to inform the
next CJK or ruby macro that the previous character was an overlapping ruby
with the ruby's width greater than its base character. The global variable
\ruby@width then contains this width.


---End of ruby.txt---
