FAQ: Advanced authoring with SuperMemo

Writing collections such as Advanced English is easy!
(Boris Milikic, Slovenia, Nov 27, 1999)
Is there a quick guide to build collections such as Advanced English? I have the hierarchy and contents on paper

See: User's Guide. The most important things to learn in the beginning are:

  1. How to build a knowledge hierarchy in the contents window. You will need to understand operations such as Add, Insert, etc. and how to modify the hierarchy with drag&drop operations. See: Building knowledge tree
  2. How to fill out elements with components, and how to modify component attributes with component menu and element attributes with element menu
  3. It would also be very useful if you learned how to use templates

You can import sound files directly to the sound registry
(Keith Gibson, USA, Sep 3, 1997)
How can I introduce a sound file directly into the sound registry?
Choose Tools : Import files on sound registry menu. To open the registry with Search : Sounds

You can search for an image
(David Mckenzie, New Zealand, Apr 8, 1998)
How to search for an element that contains no text (only an image)?
Use Search : Images. With Ctrl+F or Ctrl+S you can search for the image name or you can simply scroll to the image in question. Then press Ctrl+B to list all elements using the selected image

You can transfer a template from one collection to another
(Marcin Piekarniak, Poland, Dec 2, 1997)
How to transfer a template between collections?
Use Template : Save to file and Template : Load from file on the element menu. To save the new template in the template registry, use Template : Save as template. Read more: Using templates

You can add a sound recorder
(Gabor Schmera, USA, Dec 13, 1997)
How do I add a recorder component to my items (as it is done in Advanced English)?
Add a sound component and check Sound : Panel : Recorder on the component menu

It is possible to change the element background color in many elements at once
(Tomasz Chudy, Poland, Oct 17, 1998)
How can I globally change the color of element background in the whole collection?
You could accomplish that by defining a one-color background image (Tools : Options : SuperMemo : Default background image).

If you use question-and-answer templates throughout your collection or if you use other uniform templates, you can also try the following algorithm:

  1. Create a new element (e.g. with Alt+A)
  2. Change the color of element background with Color (available from the element menu in the element window)
  3. Save the newly created element as a template with Template : Save as template (available on the element menu in the element window)
  4. Apply the new template to all elements in the collection with Process branch : Template : Apply template (available on the contents menu in the contents window)

You and your wife can jointly expand the same collection
(Brian Canova, USA, Aug 28, 1998)
Me and my wife use Medical Biology collection. How can we both add new elements and synchronize our efforts so that we both get the elements introduced by one another?
SuperMemo does not have any nice mechanisms for real-time sharing data between students. However, there is a rather complex algorithm you might use. Please try this out only if you are an advanced user of SuperMemo:

  1. Keep four separate collections:
    1. BRIAN - your original Medical Biology collection
    2. WIFE - copy of Medical Biology for your wife (e.g. created with File : Copy collection or Ctrl+Shift+C)
    3. BRIAN-NEW - new collection for you to add new learning material (created with File : New collection)
    4. WIFE-NEW - new collection for your wife to add new learning material
  2. Make repetitions only in BRIAN and WIFE
  3. Periodically transfer newly created elements from BRIAN-NEW to BRIAN and to WIFE, as well as from WIFE-NEW to BRIAN and to WIFE

You can transfer whole collections or individual branches with Export : Transfer elements on the contents menu in the contents window

You can memorize chess positions with chess font
(Lloyd M. Uhler Jr, Jun 12, 1998)
I have fonts for Chess and might want to use SuperMemo to remember Chess Positions. Can I import material created in MS Word?
Try using the OLE component or HTML component or copy pictures to image components

You can globally change the layout of components
(Doug Edmunds, USA, Nov 4, 1997)
How can I globally change the layout of question, answer, font, background color, etc.
Do as follows:

  1. Create a new template with your new layout
  2. Save the template with Template : Save as template (on the element menu)
  3. In the contents window, choose the branch that should be changed
  4. On the contents menu choose Process branch : Template : Apply template and select the new template

Important! Only plain text components use font objects. If your template uses rich text components, the original font will be retained. To quickly change fonts in question-answer items, redefine the Classic template or its copy

Title may differ from the question text
(Ryszard Kosowicz, Krakow, Poland, May 16, 1997)
Why does not SuperMemo automatically change the title when I edit the question part of the item?
It does it only if both texts are identical. Sometimes the author of the collection might wish to keep the two different. To update the title press Alt+T and Enter (this will open Title window and propose to use the first default text as the title)

Component order may determine how the titles are generated
(Krzysztof Morawski, Poland, Dec 28, 1998)
I am learning Norwegian. Until recently, SuperMemo has automatically chosen appropriate titles for my elements; however, for some time now, it has been choosing Norsk as the title for all elements (Norsk is a text included in a text component displayed as a label on each page). How can I make SuperMemo choose the right title (in my case, Polish word used as the question)?
SuperMemo will automatically generate the title from the first text component in the component order. Your Norsk component is clearly first in the component order in your template. Choose Components : Component order on the element menu and drag the component with your question text to the first position. Then choose OK and save your element in a new template (choose the same template name as before, i.e. default item template name)

You can display a pop-up message by means of scripts
(facep2b, USA, Tuesday, July 17, 2001 3:45 PM)
Is there a way to have my question and answer elements and have a pop-up text box that is hidden unless I click on a button?
You could, for example, try to use the MESSAGE command in scripts

You can merge collections 
I have separate collections for learning English, German and French. Won't merging these collections as advised in your FAQ not produce excessive confusion? What is the simplest way to merge?

  • If you use language labels to precede each question (e.g. Eng:, Ger:, Fr:) or use different-color templates, the interference is not likely to be greater than in the case when you keep the collections separate. On the other hand, you will gain the mental comfort of working with only one body of material. For example, many users notice that it is much easier to work with the awareness that there are yet 120 items to repeat rather than 50 items to repeat in the present collection and some more in other collections
  • In SuperMemo 15 you can use branch learning to learn each branch separately
  • To merge whole collections use File : Merge collection
  • To merge individual branches do as follows:
    1. Select the branch in the contents window
    2. Choose Export : Transfer elements on the contents menu
    3. Choose the mother collection as the target of the branch transfer

You do not need to integrate secondary storage on transfer
I upgraded my Advanced English to SuperMemo 15 and then merged it with my other collections. As a result, it grew from 100MB to 800MB! Is SuperMemo 15 so space hungry?
No. While transferring your collection you must have chosen "Integrate secondary storage files". This has put 650 MBs of sounds inside your collection. You will need to repeat the whole transfer and choose to leave the sound files on secondary storage (i.e. on AdvEng CD-ROM)

Synchronization inactive in Contents
(Beta, Mar 08, 2002)
I had element synchronization on in Contents but elements would not update when selecting different branches
This could happen if Contents was expected to return an element to a calling procedure. For example, if you hyperlink from a component, you do not want to move away from the linking element while looking for the target element in Contents. You can recognize the state of the contents window by looking if the Accept button is enabled. If Accept is enabled, SuperMemo expect you to select a branch and click Accept (or double-click a branch). In such circumstances, the content of the element window will not change

Formatted file sizes can be confusing
(Beta, Piotr, February 2002)
I got the following HTML and RTF size statistics. Should not the sizes of primary storages add up? It looks like HTML component was not included in the totals: 

Total texts size=9.019 MB
Primary storage files size=12.301 MB

Total texts size=15.078 KB
Primary storage files size=20.253 KB

Primary file size: 12.322 MB

Note that file sizes are formatted. In the above case the size of HTML files is only 20K. This is why 12MB plus 20K yields 12 (MB)

Automatic material evaluation will be of value in the future
(Beta, Kuwait, Monday, March 04, 2002 10:16 AM)
SuperMemo could include fluency training for core items. This way collections could be field tested and sold based on how effective they are at improving knowledge quickly
Analysis of collection parameters is already possible. However, it is still not used much for practical reasons. SuperMemo Library is small and its user and author base is small as well. This is very rare to face a choice between several collections of similar quality that could be differentiated on the basis of learning parameters. Even Advanced English, the most popular learning material for SuperMemo, is reviewed and corrected manually on a one-by-one basis. The main source of material for such improvements are user comments, not metrics provided by SuperMemo

You do not need to understand registries
(Tomasz P. Szynalski, Monday, July 30, 2001 6:59 AM)
Why does SuperMemo force me to care whether a font is in the registry?
You do not need to use registries. Registries can be helpful if you want to define and name your own font. Later you can find this font's definition by its name. The same is true with other objects such as images or scripts. Registries make it easy to name objects, reuse them and search for them (including incremental search). If you give up registries, you give up this functionality. Similarly, indexing service in Windows makes it easy to search the content of your hard disk. It is entirely optional, but it is also worth learning

You can use mind-maps with SuperMemo
(Pascal Heimlicher, Switzerland, Tue, Aug 07, 2001 1:53 AM)
Is there a possibility to learn with mindmaps I've created in MindManager. Where can I find a description?
If you would like to use mindmaps editable with Mind Manager via OLE, see: OLE component. You can also export mindmaps as graphic files and use them with image components. Some of users on SuperMemo Yahoo eGroup use Mind Manager. You could share the experience or simply browse their messages. Remember to turn off the Scaled parameter in your template (on the element menu)

Transferring elements from one collection to another should retain the learning process
(Jens Buurgaard Nielsen, Denmark, Saturday, August 04, 2001 5:42 PM)
I recently transferred elements from one of my collections to another. In SuperMemo 98, I had a warning that the first day in the old collection was older than that in the new collection, and that the old first day would be deleted. In SuperMemo 2002, I did not get this warning, and I now wonder if everything is ok?
To save space, all dates in SuperMemo are kept relative to the first day of the learning process. For this reason, a collection cannot keep two values of the first day. Once you transfer elements from one collection to another, the first day setting of the source collection is ignored (i.e. not "deleted"). This warning will not appear if the new collection has no elements memorized (i.e. the learning process has not started). There has been no change in that respect between SuperMemo 98 and SuperMemo 2002

How to bring SuperMemo to people?
(DavidAlm.com, Tuesday, September 04, 2001 7:43 PM)
Cooper's central point is that most users do not care about the implementation model and they come to your product with a number of related conceptual models. Because of this, your software must present a manifest model that fits well with their conceptual model -- regardless of the implementation model
All software is dependent on the implementation model. The smaller the company the less it can afford veering from this constraint as all deviations are extremely costly. Secondly, all novel solutions and all solutions deprived of instant gratification are bound to produce a concept-manifest mismatch. This is a perennial problem for SuperMemo. Work on downsizing the gap is critical

Installing phonetic transcription
(Jens, Denmark, Saturday, August 04, 2001 5:42 PM)
How do I install phonetic transcription on an existing collection?
You need to choose its name in Tools : Options : Language : Phonetic transcription. If that field is empty, you need to copy the transcription registry files first to \phonetic subfolder. English transcription files are available from MegaMix CD-ROM, Advanced English CD-ROM or from downloadable English Pronunciation collection

You need to activate the OLE object to view it all
(Alexia, USA Educational, Wednesday, October 10, 2001 5:07 AM)
When I inserted my Word document in an OLE component, only the top of the document displayed. How can I get the rest of it to show up?
Inactive OLE components cannot display whole documents as they depend on the server for the whole-document display and editing (MS Word is the server in this case). You need to switch the OLE component to the editing mode (e.g. with Ctrl+E) and you need to have MS Word (i.e. the server) installed

Disconnect secondary storage to avoid playing sounds
(Mark G. Patterson, Friday, October 05, 2001 4:35 PM)
When I run my CD on a machine that doesn't support audio playback, SuperMemo displays a warning message each time an attempt is made to play an audio track. What I would prefer is for SuperMemo to just ignore the audio component and not display a warning
You could point secondary storage (Tools : Options : Access) to a non-existent folder which will prevent loading sound files from CD-ROM. You can also disable scripts and players by depressing a button on the Actions toolbar

You can convert your topics to tasks
(Mike Condron, Saturday, September 29, 2001 2:43 AM)
It would be very nice if there was some way of adding a note to an element, or flagging it for a follow-up action. For example, sometimes I have contradictory information between elements and need to research them further
You can open Element Parameters (Ctrl+Shift+P) and change the element type to task. Choose the relevant tasklist and describe the follow up action in the task description. This method can also be used on items; however, once they become tasks they will be passively reviewed using the same algorithm as in topic review

You need RealAudio player to make use of *.RA files
(Jerome, Nov 20, 2001)
I imported an *.ra file and get the following error: Cannot open player device. Cannot determine the device type from the given filename extension
You need to have RealAudio player installed and registered on your system

Use Child menu to open sub-browsers
(Patrik Nilsson, Monday, November 26, 2001 6:31 PM)
Once I select elements in the Sel column in the browser, how can I process them in a separate new browser?
Use Child : Selected on the browser's menu

Area in HITTEST can be pentagonal
(Daniel, USA Military, Wed, May 29, 2002 15:01)
In HITTEST 4 [(387,10)(444,237)(546,229)(536,4)] the hit area doesn't seem rectangular
In the Hit-Test editor you can select up to five points and make the area pentagonal. This makes it easy to delineate a hot-spot click area on a picture

It is possible to periodically update someone else's collection with your new material
(Erik De Laet, Belgium, Saturday, January 26, 2002 4:51 PM)
I learn French with my son. Because I know more French than he does (still), I am appending new words to his collection every week. How could I best transfer work from my own collection to his collection without duplicating the effort?
With a dose of patience, you could try the following algorithm that will solve your problem:

  1. Create collections Dad.kno and Son.kno 
  2. Add new material and learn with Dad.kno
  3. Use View : Memorized and Export : Transfer elements in the browser to transfer your material from Dad.kno to Son.kno 
  4. Use View : Memorized and Subset : Save all. Save memorized elements in Transferred.sub file
  5. Add more material to Dad.kno and keep on learning
  6. After some time, use View : Memorized and Subset : Subtract subset. Subtract Transferred.sub. Your browser will now contain only newly memorized items that have not yet been transferred to Son.kno 
  7. Use Export : Transfer elements again to transfer the browser to Son.kno 
  8. In Son.kno, open the newly transferred branch in the browser (e.g. Contents : View : Selected branch) and choose Learning : Forget in the browser (otherwise your son will inherit the learning process in the transferred material)
  9. Go back to Step 4

This algorithm may look complex but after a while, you will perform these steps in seconds

Localizing interface and help system
I would like to sell SuperMemo in my country and provide local interface and help file. Is it difficult?
Answer: The difficulty will depend on how far you want to localize SuperMemo. There are four major steps of increasing difficulty. The first step is easy and open to anyone who has SuperMemo installed. Some of the remaining steps may require a franchising agreement with SuperMemo World, and a dedicated version of SuperMemo stamped with your company data.

  1. Interface: Localize the interface at Basic and Beginner levels. This can be done in 5-10 minutes.
  2. Localized help: Provide your own minimum help file in your local language. This file can be in any format (e.g. CHM, HTML, MS Word DOC, Power Point, Acrobat Reader, etc.). This file can be opened with F2 from SuperMemo and does not provide context sensitivity. Once you prepare your help file, you need to request two variables in your franchisee version: HelpName (name of the menu item on the Help menu) and HelpFile (name of your help file placed in SuperMemo BIN folder). F1 will still use English context help. 
  3. Context help: Create an HTML help system in your own language. Translate all English HTML help files to your own language and install these files along your SuperMemo in <SuperMemo>\help\help\ folder. Set Help system to HTML (PC) in SuperMemo Options. Remember not to change file names to ensure SuperMemo can correctly locate individual files when F1 is pressed in various contexts. You can alternatively install your HTML files in <SuperMemo>\translat\<LocalizedName>.help\ folder to make sure that F2 help reacts to the currently selected localization language (LocalizedName is the name of the currently used TRA interface file).
  4. Binary context help: Create an HTML system as in previous step and compile it with MS Help Compiler. Substitute your help file in place of \bin\smhelp.chm file and set Help system in Options to CHM (PC). This will ensure your localized help reacts to context when F1 is pressed.

Source code

Some simplified source code from SuperMemo will help you understand the behavior of the help system in various contexts. The name of the localized translated interface file (extension *.TRA) is LocalizationName.
Franchisee EXE stamps provides two variables: TraHelp (name of the help menu item called with F2) and HelpFile (name of the translated help file placed in the bin folder).

LocalizationName can be found in supermemo.ini file section Language, entry Localization:

When SuperMemo help menu is clicked, the name of the localized help menu items is determined. If HelpFile is set then TraHelp is used. Otherwise, if translat\<LocalizationName>.help is installed, LocalizationName help is used:

procedure TSuperMemo.MIHelpMenuClick(Sender: TObject);
   if Franchisee.HelpFile<>'' then begin
   if FileExists(EXEDirectory+'\translat\'+SuperMemo.LocalizationName+'.help\index.htm') then begin
      MILocalizedHelp.Caption:=Capitalize(SuperMemo.LocalizationName)+' help';

procedure TSuperMemo.MILocalizedHelpClick(Sender: TObject); {executed when pressing F2}

When local help is run with F2 your help file is executed. It is taken from your bin folder or from your website (if HelpFile begins with http://). If HelpFile is not determined \translat\<Localization Name>.help is executed starting with its index.htm file.

procedure RunLocalHelp;
    if Franchisee.HelpFile<>'' then begin
       if StartsWith('http://',Franchisee.HelpFile) then

When context help is executed with F1 then the behavior of help depends on Help system setting. You can substitute your files in hmCHM mode and in hmHTM mode as these are both run from user's local hard disk.

procedure TSuperMemo.ShowHelpTopic(topic:string);
case HelpMode of
    hmCHM:ExecuteFile('hh.exe '+CHMPath+'::/help/'+topic+'.htm');

You need to use the Classic template to change the font and its attributes globally
(harold hill, Saturday, September 28, 2002 6:36 AM)
I would like to change the size of the font used in my elements. I have changed the font size in a couple of elements manually, however, it would take a lot of time to do that throughout the entire collection. Can you advise on the more efficient way to accomplish that?
You would need to replace the default SuperMemo template, which utilizes the HTML component, with the Classic template, which, in turn, uses the TEXT component. Note, you will lose formatting in your elements upon replacement. For a single item, use Template : Replace with template or Apply template from the element's menu. For a number of items, switch to the contents window, select the branch, right-click your mouse over it, choose Process branch : Template : Replace template or Apply template. You can change the font in the Classic template by choosing Text : Font : Edit font on the component menu

Authoring Collections for all SuperMemos
(bmp500, May 16, 2004, 00:12:37)
You suggest that new retail collections be suitable for use with SuperMemo 98 and above. I am using SuperMemo 2000. How do I ensure the collections I generate are usable by earlier editions. I would also like to support the Pocket PC version
You do not need to target SuperMemo 98. With the advent of XML data exchange, you will probably best target the XML format. Initially, XML will make it possible to transfer questions and answers along with the learning process. In other words, you can keep developing your materials in SuperMemo 2000. It can then always be upgraded to SuperMemo 2004 or later and used to generate an appropriate XML file. In the meantime, you can export your files as Q&A (File : Tools : Export : Q&A text). Q&A format is supported by all SuperMemos

Use Remember to circumvent the pending queue
(tdepoty, Mon, May 20, 2002 23:01)
I reset SuperMemo to start over but after the reset I have over 700 items now pending from my previous usage of SuperMemo. I would like to dismiss these 700 items, learn new material, and introduce daily only 15 items of those 700 pending items
In SuperMemo 2002 or later, newly added material is automatically introduced into the learning process. In SuperMemo 2000, you may need to use Rememeber (Ctrl+M) to introduce new elements to repetitions. Once you pass all outstanding material, you can answer with Yes to "Do you want to learn new material?". After that, learn 15 new items and close the session

Moving elements to a branch in the contents window
(PD, Jun 29, 2004, 13:43:46)
In the contents window there is no response when using the right mouse click: Process branch > Move > To a branch
This option is primarily retained for orthogonality (the same menu is used for browser operations). The optimum way of moving items in the contents window is by drag&drop. Once you choose the option in question, you will notice that the button Accept becomes active. SuperMemo is waiting for you to accept the choice of the branch where the current branch should be moved

Hit Test editor works only with Windows bitmaps
(Rowe, Geoffrey, USA Government, Sep 28, 2005, 19:08:12)
I am trying to use HITTEST. Every time I try Edit hit-area, it is grayed out. If I use one of your Advanced Test examples, it is not grayed out. Once I replace the existing Image component with a picture from the clipboard, the Edit hit-test becomes grayed out again
Hit Test editor works only with device-independent Windows bitmaps (extension BMP). If you paste your pictures from the clipboard, SuperMemo automatically compresses them to save disk space. For use with Hit Test, you can save your pictures as BMP files and use Import File to import the picture. 

The limitation of the editor does not effect the HITTEST script that works with all formats supported by SuperMemo. 

Note that with focus on incremental reading, SuperMemo 2004 and later are gradually shedding some of the less popular functions of Multimedia SuperMemo. This is to reduce program's complexity and reduce the cost of support and code maintenance. Some functionality is retained for compatibility only

Creating multiple choice questions made of images only
(pugglelino, Sep 30, 2011, 16:06:15)
How can I set up a multiple choice text made of questions and multiple answers all as images?

  • create a template in which image components are arranged in the way you want to see them during a test (you can also define a few templates if you want to use a few different arrangements)
  • make this template a default template in your default category (e.g. with Save as default)
  • add new elements with Add new (or Alt+A) (your new default template should now be used to create new items)
  • for each new element, for each image componenent, using the component menu, choose Import file (to import pictures) and MCT : Wrong/Correct (to mark wrong and correct answers respectively)
  • 2.0.50