Before publishing and distributing your files there are a few things you should check because they are quite easy to forget:
Have you set the project title, author and copyright information? Settings Here
Have you set the correct titles for your help window title bars? Settings Here
Have you set the correct language settings for the language of your project? This is particularly important if you are using languages requiring special Unicode character sets. See International languages setup for details.
The ePUB and Kindle/Mobi eBook formats are excellent platforms but they are also more restrictive than some other formats. They are designed to be more like a book than an electronic document. Also, eBook readers tend to have small pages and large print and the print size can be changed by the user, and so the kind of layout you can achieve on your pages is very limited. This format thus has some special requirements and restrictions.
Free Calibre viewer program
Before publishing to ePUB and Kindle/Mobi, first visit the Calibre eBook viewer download page and install the free Calibre eBook reader and viewer software. This is essential because without it you will not be able to preview your eBooks automatically after you have created them. There are other readers for Windows, but Calibre is excellent and free and we can recommend it highly. We can no longer recommend Adobe Digital Editions for this purpose.
Get the Kindle compiler
You need the free Kindle compiler from Amazon to be able to publish Kindle/Mobi eBooks. This compiler is included in the Amazon Kindle Previewer package, which you can download here:
Important: Do NOT try to install the Kindle Previewer in the Program Files folder!
Don't change the default installation location of the Kindle Previewer package! If you do, it will not work correctly and you will get all kinds of errors. Because of the way this Amazon program works, it absolutely needs to be installed in your Users directory, otherwise it will not have the necessary write permissions while it is running.
Once installed, H+M should find the Kindle compiler automatically. If you have problems, you can set the location automatically in View > Program Options > Compilers. The standard location for the compiler is:
When you are using runtime merging for CHM files the project filenames and the output filenames of the CHM files must be identical. The references between the child and the master help files are based on the filenames and if project and output filename don't match the references will be invalid.
If you want to change the name of the output file in the Publish dialog you should also change the name of the entire project to match, using Save As... in the File menu.
You may have dead links in your project if you have excluded topics from your output without taking steps to deal with links to the topics that are not present in your output. You can configure Help+Manual to deal with these dead links automatically in two different ways, see Program Options - Compilers for details.
These automatic options are useful for a quick fix but it is generally better to use conditional text tags to exclude the links and replace them with alternative text when necessary. See Preventing dead links for detailed instructions.
Are you using linked snippets (snippets linked to topic files or external files)? If the source files are in your current project you need to make sure that they will not be included in your output, otherwise they will be exported too in electronic help formats and the user will be able to find them with Search and the Keyword Index (if the snippet files also contain keywords).
Select the tab of the each source topic and deselect all the options in Builds which include this topic. See Re-using content with snippets for details.
Does your project contain any author's notes and other "production information" that users shouldn't see? It's a good idea to use Comments & Bookmarks feature for information like this to ensure that it isn't included in the output. You can also exclude information from your output with Conditional Text.