cyphar / heisig-rtk-index

A Complete Index of Heisig's "Remember the Kanji" 6th Edition
Creative Commons Zero v1.0 Universal
30 stars 6 forks source link

Complete RtK-1 Index

This repository contains a complete index of both the frames (kanji) and primitives listed in James W. Heisig's "Remembering the Kanji 1" (6th Edition). Most other indices had at least one of the following flaws:

To correct all of the above, I used an existing index of the kanji from RtK 6th Edition and then painstakingly extracted an SVG of each primitive so that it could be used as a scalable (and invertable) image. I then went through every primitive and attempted to find a corresponding unicode version of the character which can be rendered by modern fonts (I found some unicode codepoints which do represent primitives but are sadly not renderable by any fonts I have -- these are kept in this repo source but aren't in the released index zip files). Finally I wrote some scripts to help collate all of these parts into a "primitive" index and then another script to generate a "combined" index of both the primitives and kanji indices.

All of these scripts and source files are available in this repository, and you can get the final output ("INDEX.csv" along with the set of primitive SVGs) as a zip file from the releases page of this project. This index is intended to be used with Anki, to allow you to import the entire index if you have a suitable note type. Several tags are included for each card (such as whether they are a primitive and the lesson that the frame appears in in the book).

Usage

Run ./index.sh.

Anki Import

In order to correctly import the cards, you should create a new card type that has some reasonable layout for the following fields:

  1. Heisig Number.
  2. Character (Unicode).
  3. Character (Image).
  4. Keyword.
  5. Mnemonic (which you fill in yourself).
  6. Stroke Count.
  7. Primitive?.

Then take the latest zip of the index, extract it and import the INDEX_VOL1.csv file into Anki (make sure that your card fields are in the same order as the above list as that is the order of the CSV columns). Then (in order for the primitives to show up properly), copy all of the .svg files in the collections.media folder of the zip file into your Anki collections.media folder.

If you wish to make use of a more minimal set of kanji to learn (~1000), you can instead import the INDEX_MINIMAL.csv file instead of INDEX_VOL1.csv. This smaller set of kanji was taken from the Refold RRTK list and is intended to only teach the ~1000 most used kanji in RTK order (in order to allow you to move onto learning kanji in-context from actual vocabulary more quickly).

You can use this deck in both "Recognition RTK" (Lazy Kanji) or "Production RTK" (Classic RTK) mode, all that is required is that you change the card templates to match. Here are the card templates I used for each.

Recognition RTK (Lazy Kanji)

This is the technique recommended by Refold for starting out learning kanji and is based on the Lazy Kanji technique.

Card Front ```
Minimal RtK | {{^Primitive?}} #{{Heisig Number}} {{/Primitive?}} {{#Primitive?}} Primitive {{Heisig Number}} {{/Primitive?}} {{#Stroke Count}} | {{Stroke Count}} Strokes {{/Stroke Count}}
{{#Character (Unicode)}} {{Character (Unicode)}} {{Character (Unicode)}}
{{Character (Unicode)}} {{Character (Unicode)}} {{/Character (Unicode)}} {{^Character (Unicode)}} {{#Character (Image)}} {{Character (Image)}} {{/Character (Image)}} {{^Character (Image)}} CHARACTER MISSING {{/Character (Image)}} {{/Character (Unicode)}}
```
Card Back ``` {{FrontSide}}
{{Keyword}}
{{#Mnemonic}}
{{Mnemonic}}
{{/Mnemonic}} {{^Mnemonic}} You still need to fill the mnemonic field of this card! {{/Mnemonic}} ```
Card Styling ``` .card { font-family: yumin; font-size: 20px; background-color: #FFFAF0; color: #2A1B0A; text-align: left !important; max-width: 650px; margin: 20px auto 20px auto; padding: 0 20px 0 20px; } img { min-width: 200px; min-height: 200px; } .nightMode img.rtk-primitive { filter: invert(1); } @font-face { font-family: yumin; src: url('_yumin.ttf'); } @font-face { font-family: strokeorder; src: url('_strokeorder.ttf'); } @font-face { font-family: hgrkk; src: url('_hgrkk.ttf'); } @font-face { font-family: yugothb; src: url('_yugothb.ttc'); } .center { text-align: center !important; } .tags { color:#585858; font-size: 16px; } .mincho { font-family: yumin; font-size: 125px; } .comic { font-family: yugothb; font-size: 125px; } .kyokasho { font-family: hgrkk; font-size: 125px; } .strokeorder { font-family: strokeorder; font-size: 125px; } .word { font-size: 27.5px; } .mnemonic { font-size: 24px; } .primitive { color: #74291c; } .hyper { color:#585858; text-decoration: none; } .hyper:hover { color:#000000; text-decoration: underline; } ```

Production RTK (Classic RTK)

This is the methodology that Heisig recommends, and is the one that advanced learners of Japanese using the Refold technique are suggested to use (though note that in that case the keywords attached will be useless to you because you already know words using these kanji!).

Card Front ```
Minimal RtK | {{^Primitive?}} #{{Heisig Number}} {{/Primitive?}} {{#Primitive?}} Primitive {{Heisig Number}} {{/Primitive?}}
{{Keyword}}
```
Card Back ``` {{FrontSide}}
{{#Stroke Count}} {{Stroke Count}} Strokes {{/Stroke Count}}
{{#Character (Unicode)}} {{Character (Unicode)}} {{Character (Unicode)}}
{{Character (Unicode)}} {{Character (Unicode)}} {{/Character (Unicode)}} {{^Character (Unicode)}} {{#Character (Image)}} {{Character (Image)}} {{/Character (Image)}} {{^Character (Image)}} CHARACTER MISSING {{/Character (Image)}} {{/Character (Unicode)}}
{{Keyword}}
{{#Mnemonic}}
{{Mnemonic}}
{{/Mnemonic}} {{^Mnemonic}} You still need to fill the mnemonic field of this card! {{/Mnemonic}} ```
Card Styling ``` .card { font-family: yumin; font-size: 20px; background-color: #FFFAF0; color: #2A1B0A; text-align: left !important; max-width: 650px; margin: 20px auto 20px auto; padding: 0 20px 0 20px; } img { min-width: 200px; min-height: 200px; } .nightMode img.rtk-primitive { filter: invert(1); } @font-face { font-family: yumin; src: url('_yumin.ttf'); } @font-face { font-family: strokeorder; src: url('_strokeorder.ttf'); } @font-face { font-family: hgrkk; src: url('_hgrkk.ttf'); } @font-face { font-family: yugothb; src: url('_yugothb.ttc'); } .center { text-align: center !important; } .tags { color:#585858; font-size: 16px; } .mincho { font-family: yumin; font-size: 125px; } .comic { font-family: yugothb; font-size: 125px; } .kyokasho { font-family: hgrkk; font-size: 125px; } .strokeorder { font-family: strokeorder; font-size: 125px; } .word { font-size: 27.5px; } .mnemonic { font-size: 24px; } .primitive { color: #74291c; } .hyper { color:#585858; text-decoration: none; } .hyper:hover { color:#000000; text-decoration: underline; } ```

Custom Cards

Note that if you're creating your own custom templates you should add the following CSS to the styling of your card (it will make the primitives show up in a white "font" when in Anki's night mode):

.nightMode img.rtk-primitive {
    filter: invert(1);
}

Also note that some (but not all) primitives have a Unicode representation as well as the image representation.

Mistakes

While collating all of this information, I found the following mistakes in my physical copy of RtK (at some point I'll forward these to Heisig so that they are corrected in any future 7th edition he chooses to release):

What about RtK-3?

At some point I will take a look at creating an index for the third volume of RtK (if I decide to study it), but I don't own a copy and so that will have to wait.

License

The code in this repository is licensed under the GNU General Public License version 3 (or later).

Copyright (C) 2020 Aleksa Sarai <cyphar@cyphar.com>

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program.  If not, see <http://www.gnu.org/licenses/>.

The index itself is Copyright (C) 1997-2007 James W. Heisig, and all of the glyphs are arguably some weird copyright mix based on which fonts were used to create them.

However in order to avoid any ambiguity, and rights I have over the glyphs in this repository are released under the Creative Commons CC0 license.