Laridian BookBuilder

For MyBible® for Palm OS®

User's Guide

 

October 2007

 

Table of Contents

Overview

This edition of the Laridian® BookBuilder gives you the ability to create reference books for use in Laridian MyBible for Palm OS.

Note that Bibles are treated special in MyBible and can't be created with BookBuilder. You can, however, create commentaries, dictionaries, and other Bible reference materials that are fully linked to your MyBible Bibles. So as you scroll through the Bible text in the top window, your commentary will synchronize with the Bible just like your purchased MyBible reference books.

We do not intend this tool to be used to violate the copyright of any Bible reference book. Copyright is a difficult issue, and we'll discuss it in more detail below. Please honor the copyrights of authors who labor to bring Bible reference materials to you.

This is the same tool we use in-house to create MyBible reference books. You'll have all the same capabilities and your books will have all the same features as ours. The only exception is that all books created with this edition of BookBuilder have a fixed Publisher ID. The implications of this are discussed in the section of this document dealing with the pb_pubid meta tag attribute. For all practical purposes this will have no effect on the books you create, but if you plan to sell or otherwise widely distribute your books you need to be using the Professional Edition of BookBuilder and submitting your tagged books to us when you're done so we can assign a unique publisher and book ID. Details are below.

Creating MyBible Reference Books

Laridian books start as text files. You add tags to the text that affect how the text is displayed when the user views it in one of our readers. Tags are described in detail below, but in general a tag starts with a less-than sign ("<") and ends with a greater-than sign (">"). BookBuilder recognizes a subset of HTML tags, and adds some tags and tag attributes that are described in this document.

It is assumed that you either know or can learn HTML from resources outside this document. HTML isn't difficult to learn, and the subset implemented by BookBuilder eliminates some of its most confusing aspects. For example, Laridian books do not support forms, scripting, or style sheets. These are challenging aspects to master. BookBuilder does support paragraph alignment, bold, italics, and underline, which are all relatively simple to implement. Perhaps the most difficult construct supported by BookBuilder is the <table> tag, though simple tables are easy to create in HTML.

Special editors exist for creating HTML documents, but you may run into difficulties using them with BookBuilder, as they may not recognize the special tags it uses, and they may create HTML documents that use tags that are not supported by the BookBuilder.

We recommend using a straight text editor to create your files. The most basic of these is Notepad, which is part of Microsoft Windows. Notepad will create files that BookBuilder can read, but it has limited editing functions and gets bogged down on large files.

One of the editors we use at Laridian is TextPad (www.textpad.com). TextPad is a shareware program that you can download for free and try out before deciding to buy it. It has powerful search and replace functions, which you'll find yourself using often when tagging books. It also handles large files well, and when you're editing a .htm (HTML) file it colors your tags to make them easier to see. We have included an evaluation version of TextPad in this version of BookBuilder. Look in Start > Programs > Laridian > BookBuilder for a link to the TextPad setup program.

Once your document is tagged, you'll run it through the BookBuilder program to create a .pdb file. Undoubtedly, BookBuilder will uncover errors that need to be corrected. These will be written to a log file that you can review to see what needs to be fixed.

The log file contains a lot of information about your book, and you'll learn to review it for clues about errors that may not be reported by BookBuilder. For example, it can be time-consuming to run your entire book through a spell-checker function in your Word processor, especially if you're tagging a lengthy book. But the log file will contain a vocabulary list — a list of all the unique words used in your book. You can load the log file into your word processor and spell-check this vocabulary list. While it still could be time-consuming (a typical book might contain 10,000 to 30,000 unique words), it's faster than plodding through your entire book.

Once you've successfully run your book through BookBuilder with no errors, you can copy the resulting .pdb file to your device using the Palm Install Tool. On most users' systems, this is as simple as double-clicking the .pdb file. The Install Tool will run automatically and let you decide where you want the file installed.

With your book installed on your device, simply run MyBible and open your book just like any of the books you've purchased from Laridian!

If you have the BookBuilder Professional product, we've provided an installation utility called BookSetupBuilder that will facilitate the creation of a professional-looking installation program for your books.

Sample Books

One of the easiest ways to understand how to tag a book for BookBuilder is to look at examples of actual tagged books. We've installed sample books in a folder called Samples in the folder in which you installed BookBuilder. On most computers this will be:

C:\Program Files\Laridian\BookBuilder for Palm OS\Samples\Palm OS

Take a look at the samples to get an idea of what your finished books will look like. You can run the samples through the BookBuilder program, then through BookSetupBuilder and install them on your device if you wish. If you don't have BookSetupBuilder in your version of BookBuilder, use the Palm Desktop Install Tool to install the pdb file created by BookBuilder onto your device.

About this Documentation

This document consists of several sections. It will discuss the general outline of what a tagged book looks like, talk about strategies for tagging, give detailed reference information for each of the BookBuilder-specific tags and attributes that we've added to HTML, and discuss the use of the BookBuilder program itself and how to install books on your device.

This document will not teach you HTML but neither will it assume you're an expert. We'll give you a very rudimentary introduction to HTML and try to explain concepts as they are encountered. You may find this is enough to get you started, or you may find you need some additional reference material. We like the O'Reilly books on HTML, which are available in your bookstore.

About HTML

HTML (Hypertext Markup Language) is a standard way of adding tags to text to indicate layout and style. It is platform independant; there's nothing about it that is specific to the operating system (Windows, Unix, Palm OS, etc.) or viewer (Internet Explorer, Mozilla, Word, etc.). For this reason it's a popular document format.

The HTML standard describes how to "mark up" text to indicate paragraphs, italicized text, headings, tables, numbered lists, and more. These mark-ups are called "tags". When you learn a few simple tags you can create valid HTML documents quickly and easily.

This Users Guide is an HTML file. If you open it in a plain text editor like Notepad, you'll see what HTML tags look like.

Editing HTML Documents

HTML documents must be created with a plain-text editor like Notepad or TextPad (www.textpad.com). You can use full-featured word processors like Microsoft Word, but make sure you save your document as a plain-text (.txt) file, not in Word's native format (.doc) or HTML (.htm). If you save in Word's .doc format, BookBuilder will not be able to read the file. If you save in Word's HTML format, Word will change all your tags into text and insert its own tags that are not supported by BookBuilder.

Basic HTML

HTML documents contain text, character entities, and tags.

Text is just plain text. Letters, numbers, and punctuation. The characters that make up the words in your book. If you're familiar with ASCII, we're talking about the ASCII values less than or equal to 127 — upper- and lower-case letters, numbers, spaces, and most common punctuation symbols.

Character entities are sequences starting with the ampersand character (&) and ending with a semicolon (;) that are used to indicate special characters. For example, &reg; is the registered trademark symbol (®). &ldquo; and &rdquo; are left and right double quotes (“and”). These are to be distinguished from "straight quotes" which can be entered using the quotation mark key (") or &quot;.

The BookBuilder program will recognize all HTML character entities, but not all can be reproduced on your Palm device. For example, &pi; is the Greek letter pi (π) but it is not available in the standard Palm font and therefore can't be used in your books. A complete list of supported character entities can be found at the end of this document.

Another form of character entity is &#digits;, where digits is the base-10 ASCII (or more correctly, Unicode) value of the character you want to use. These are used as an alternative to the named character entities like &quot; (which is ASCII 34 or &#34;).

A similar form of character entity is &#xhex digits;, where hex digits is the hexadecimal (base 16) Unicode value of the character you want to use. You may find hexadecimal easier to use than decimal because the Unicode specification is all in hex.

Tags start with a less-than sign (<) and end with greater-than (>). Some tags are just a few letters, like <b> for bold and <i> for italic. These tags mark the beginning of bold or italic text. To mark the end of bold or italic, use </b> and </i>.

In general, the plain tag marks the beginning of the text you want formatted, and the tag with the slash (/) before it marks the end. The tag with the slash is called the closing tag. So <p> is the beginning of a paragraph and the corresponding closing tag, </p>, marks the end.

Some tags have no closing tag. For example, the <img> tag is used to insert an image into your document. Since everything about the image is enclosed in the <img> tag (for example, <img src="myimage.bmp">) there's no need for a </img> tag. The most correct way to form a tag with no closing tag is to place the slash at the end of the tag, just before the greater-than sign, as in <img src="myimage.bmp" />. For most tags, however, this closing slash is optional.

Tags have attributes, and attributes have values. The <p> tag, by itself, starts a left-justified paragraph. To center the paragraph, add the "align" attribute with a value of "center" as in <p align=center>. Attribute values must be enclosed in quotation marks if they contain spaces, otherwise they may be confused with another attribute. For example, <img src="My Picture.bmp">. The value of the src attribute has been enclosed in quotes because it contains a space.

While the HTML standard allows you to use either upper- or lower-case letters for tags and attributes, we strongly recommend you always use lower-case. We use lower-case only, and while the BookBuilder shouldn't care if you use upper-case, it hasn't been thoroughly tested that way.

You can insert comments in your HTML documents with a special tag <!--. Everything after that tag up to the next > is ignored by BookBuilder. You should conclude your comments on the same line on which you started them. BookBuilder may handle multiline comments but hasn't been extensively tested that way. See the next section for an example of HTML comments.

Structure of HTML Documents

All your books will have this basic layout:

<html>
<head>
<!-- Meta tags -->
</head>
<body>
<!-- Your book goes here -->
</body>
</html>

Head (Meta Data)

The <head> tag marks the beginning of what we call "meta data". It is not the book itself, but information about the book, such as its title and author. The details of each meta tag are discussed in the reference section below, but in general a typical head section of a commentary looks like this:

<head>
<meta name="pb_title" content="Tyndale Concise Bible Commentary">
<meta name="pb_abbrev" content="TCBC">
<meta name="pb_copyright" content="Copyright &copy; 1990 by Robert B. Hughes and J. Carl Laney. All rights reserved.">
<meta name="pb_publisher" content="Laridian Electronic Publishing">
<meta name="pb_city" content="Cedar Rapids, IA">
<meta name="pb_date" content="2004">
<meta name="pb_pubid" content="101">
<meta name="pb_bookid" content="36">
<meta name="pb_editionid" content="1">
<meta name="pb_revisionid" content="1">
<meta name="pb_synctype" content="verse">
</head>

A dictionary is similar:

<meta name="pb_title" content="Tyndale Bible Dictionary">
<meta name="pb_abbrev" content="TBD">
<meta name="pb_copyright" content="Copyright &copy; 2001 by Tyndale House Publishers, Inc. All rights reserved.">
<meta name="pb_publisher" content="Laridian Electronic Publishing">
<meta name="pb_city" content="Cedar Rapids, IA">
<meta name="pb_date" content="2004">
<meta name="pb_pubid" content=="101">
<meta name="pb_bookid" content="35">
<meta name="pb_editionid" content="1">
<meta name="pb_revisionid" content="1">
<meta name="pb_synctype" content="word">

Body

Contained between <body> and </body> is the text of your book. Every paragraph will start with a <p> tag and (optionally) end with </p>. Heading tags (<h1>, <h2>, <h3>, ..., <h9>) will mark the beginnings of sections of the text and will be used to automatically build the table of contents. <pb_sync> tags will mark where to go in your book when the user is viewing a particular verse (commentaries) or wants the definition of a particular word (dictionaries). It couldn't be easier, right?

Creating Reference Books for MyBible

Strategy

The level of difficulty you'll encounter when tagging books for BookBuilder is dependant on the completeness of the files you begin with, and their format. If you're writing your own reference materials, you can simply tag them as you write. This adds a little overhead to the process but once you get the hang of it, it's not difficult.

If you start from text you download from the Internet, it may already be tagged with some HTML. It should at least have paragraph tags (<p>) and maybe some bold and italics as appropriate. You only need to insert headings (discussed in more detail below) and synchronization tags. It's possible the file will have some characteristics that will make this easier. For example, it could be that the commentary you're working on uses <b> (bold) tags to mark the Bible reference that each section of the commentary is about. You can do a search-and-replace in your word processor for all the <b> tags and change them into the appropriate heading and pb_sync tags.

Sometimes you're starting from plain text files with no markup, or from a paper book that you have to scan using OCR software. In this case you'll have no tags and will have to insert them yourself. Start by placing <p> tags at the start of every paragraph. If there's some characteristic of the text that helps you identify where the headings should be, take advantage of that to automate the insertion of <h#> tags. Otherwise you'll have to do this manually.

Table of Contents

Every book has two organizational structures within it: A table of contents, displayed when you want to navigate using a "Go To" dialog within the reader program, and a synchronization index, used by the program to create automatic linkage with the book from other books.

A commentary will have a table of contents, perhaps organized by books or chapters. It will also have a synchronization index in which individual verses of the Bible are connected to a particular place in the book where commentary for that verse appears.

The table of contents is discussed in this section; synchronization in the next.

The table of contents is described using HTML heading tags (<h1>, <h2>, <h3>, ..., <h9>). Think of the table of contents as an outline, where the top level of the outline — the major points — are contained in <h1> heading tags, the subtopics of each major point within <h2> tags, and so on to <h9>. Note that official HTML only supports six levels of heading tags, whereas BookBuilder accepts nine.

The table of contents for your book is built automatically by BookBuilder as it encounters heading tags within the text. You must use heading tags to organize your book, as the table of contents is the only way the user has of navigating your book efficiently.

There are times when you want to use the heading tags merely for formatting; that is, to make text "large" or "bold". In order to differentiate between this use of heading tags and purposeful use of heading tags to create a table of contents, BookBuilder recognizes a special attribute of the heading tag. The pb_toc attribute can have a value of "index" if you want this heading to be entered in the table of contents but not appear on the screen; "visible" if you want the heading entered in the table of contents and also visible to the user; and it can be omitted if you want no entry made in the table of contents but just want the heading visible to the user. See the reference section below for more details.

Synchronization

There are many generic book readers on the market that allow you to use your Palm device to read ebooks. These generic readers do what they do well, but they're not well suited to Bibles and Bible reference books. One of the reasons is that they tend to let you view one book at a time, and they don't understand the relationships between a book like the Bible and special reference books like commentaries.

A commentary is deliberately organized so that sections of the text correspond to particular Bible verses or passages. Similarly, a dictionary is organized so that sections of the text describe the meaning and significance of certain words. Because it is a generic mark-up language, HTML lacks tags that describe this organizational structure.

Laridian extends HTML with the <pb_sync> tag, which is used to indicate points in the text to which the Bible can synchronize itself, either by verses or words. In a commentary, a tag like:

<pb_sync type=verse value="John 3:16" />

marks the beginning of the section of the commentary that describes the Bible verse John 3:16.

In a dictionary, the tag:

<pb_sync type=word value="Aaron" />

marks the beginning of the section of the commentary that describes the word "Aaron".

This tag is described in more detail in the reference section that follows. By inserting <pb_sync> tags into commentaries and Bibles, we tell MyBible where to go in our books when the Bible goes to a particular verse, or when the user asks for the definition of a particular word.

Links

BookBuilder uses <pb_link> and <a> tags to create links to Bible verses or to other places in your book. There are several types of links, which are all described in the reference section.

<pb_link> is used to create links to Bible verses. The tag surrounds the references, as shown here:

<pb_link format=bcv>Romans 12:1</pb_link>.

The format attribute tells MyBible how to format the verse. In this case, it says to include the book, chapter and verse, as in "Rom 12:1". If the format were simply "c" then MyBible would display only the chapter number ("12") and would link it to Romans 12:1.

The text you select to activate a hyperlink is called the "link text". The <pb_link> tag assumes you want the link text to be the reference to which you're linking. There are times, though when you want to create a link using some other text. For this you would use the <a> tag to create a link, as in:

<a href="bible:Romans 12:1">The first verse</a> of this chapter...

In this case, "The first verse" is the link text. When you select it, you'll be taken to Romans 12:1.

The reference sections for the <pb_link> and <a> tags, below, describe more ways to create links within and between the books you create with BookBuilder.

Reference Section

Laridian Extensions to HTML

BookBuilder recognizes a subset of HTML and adds its own tags and attributes. This section describes three types of Laridian extensions to standard HTML:

Meta Tags

These are combinations of name attribute values and content attribute values for the HTML <meta> tag which describe the book. This is how you tell BookBuilder the name, author, publisher and other information about the book.

New Inline Tags

Laridian adds a small number of new tags to HTML to accomplish tasks not anticipated by HTML. We call these "inline" because syntactically they occur in the text, like <b> (bold) and <i> (italic) tags. You cannot surround a paragraph (<p>) with these tags, just as you cannot (legally) surround paragraphs with bold tags. They must occur inline in the text.

VerseLinker Tags

There are a few tags that are ignored by BookBuilder and by the book reader programs but are important if you're using our VerseLinker tool. VerseLinker is a program that is included with BookBuilder Professional. It examines your text and semi-automatically inserts links to Bible verses. These tags help VerseLinker do a better job of automating the linking process.

Enhanced HTML Tags

There are two tags in HTML that take on a special purpose in Laridian books. These are the <a> (anchor) and <h#> (heading) tags. The anchor tag is used to create hyperlinks. We've added syntax that lets you target sections of your books more easily and powerfully. The heading tag organizes your HTML documents with headings. We add syntax that lets BookBuilder create a table of contents from the heading tags. These entries then become the targets of the hyperlinks you create with the anchor tag.

Format of Reference Section

In each of the reference sections below you'll see:

When you see choices separated by a vertical bar, you use one or the other. For example, the pb_toc attribute can have the value "index" or "visible", but not both. This is written below as "index | visible".

When you see italicized text, you don't enter that text but rather see the Usage section to see what you're supposed to enter there. So the pb_title meta tag doesn't have the content value "title of book" but rather you enter the title of your book there.

pb_title

<meta> tag

Required in all books

Syntax

<meta name=pb_title content="title of book">

Usage

The value of the content attribute should be the full title of your book. No character entities are permitted.

Example

<meta name=pb_title content="Commentary on Romans">

pb_abbrev

<meta> tag

Required in all books

Syntax

<meta name=pb_abbrev content="book abbreviation">

Usage

The value of the content attribute should be the abbreviation that will be used to represent your book. By convention, these are always capitals and no more than about 5 letters. Longer abbreviations are supported but the contexts in which abbreviations are used are best served when the abbreviations are kept short.

Example

<meta name=pb_abbrev content="CMROM">

pb_copyright

<meta> tag

Required in all books

Syntax

<meta name=pb_copyright content="copyright statement">

Usage

The value of the content attribute should be the copyright statement for your book. If you are the author, you should use a copyright statement such as the following:

Copyright &copy; 2006 by Your Name Here. All Rights Reserved.

If you are not the author, use the copyright statement specified by the copyright owner.

Make sure you use the character entity &copy; instead of the actual copyright symbol © in your copyright statement.

See the About Copyrights section of this document for guidelines on making sure your work does not violate the copyrights of others.

Example

<meta name=pb_copyright content="Copyright &copy; 2006 by Laridian, Inc. All Rights Reserved.">

pb_publisher

<meta> tag

Required in all books

Syntax

<meta name=pb_publisher content="publisher name">

Usage

The value of the content attribute should be the name of the publisher of this electronic book. This is not necessarily the same as the name of the publisher of the print edition of the book, and in fact will almost never be the same unless you are working for the print publisher who owns electronic rights to the book. Generally this is the name of the person or company that is publishing this electronic edition.

Example

<meta name=pb_publisher content="Laridian, Inc.">

pb_author

<meta> tag

Strongly suggested for all books

Syntax

<meta name=pb_author content="name of author">

Usage

The value of the content attribute should be the name of the author(s) of the book. In this case, we're refering to the author of the content, not necessarily to the person who tagged the file. So if you're tagging a classic commentary from H. A. Ironside, you would enter "H. A. Ironside" here, not your name. On the other hand, if this book is an original work that you created, then you would use your name here.

Example

<meta name=pb_author content="H. A. Ironside">

pb_city

<meta> tag

Required in all books

Syntax

<meta name=pb_city content="publisher location">

Usage

The value of the content attribute should be the name of the city in which the publisher is located. This can include the state or province and country, as appropriate. Ex. "New York, NY USA" or "Toronto, ON Canada".

Example

<meta name=pb_city content="Cedar Rapids, IA">

pb_date

<meta> tag

Required in all books

Syntax

<meta name=pb_date content="year of publication">

Usage

The value of the content attribute should be the year of publication of this edition of the electronic book. Usually you enter the current year here.

Example

<meta name=pb_date content="2006">

pb_pubid

<meta> tag

Required in all books created with the Professional Edition; ignored in other editions of the BookBuilder.

Syntax

<meta name=pb_pubid content="publisher id number">

Usage

The value of the content attribute should be your Publisher ID as assigned by Laridian. Not all BookBuilder editions support this tag. Only the Professional Edition allows you to set the Publisher ID for a book. Other editions of the program use a fixed Publisher ID built into the program.

The Publisher ID is combined with the Book ID to create a unique identifier for this book. That identifier is used for a variety of purposes within our programs, including identifying the target of an inter-book link (a hyperlink from one book to another) and connecting notes, highlights, and bookmarks to the book they belong to.

The risk of having a fixed Publisher ID for all user-created books is that a person could install two books with the same Publisher ID and Book ID. This can't happen with the books you purchase from Laridian because we assign unique IDs to each book. Having two books with the same Publisher and Book ID doesn't cause any problem for the program unless you have a book that contains links to a specific book by Publisher ID and Book ID. In that case, the program could end up trying to activate the wrong book in response to the link.

Since you can create links between books you create, you should make sure you assign a unique Book ID to each of your books. Then the only problem is if you install a user-created book from someone else that shares your Publisher ID and Book ID, and you try to create a hyperlink to that book. The program won't know where to go.

The other context in which having two books with the same Publisher and Book ID values would be a problem is in storing notes, bookmarks, and other supplemental data associated with a book. The current MyBible program does not support notes and bookmarks on reference books, only on Bibles, so this isn't a problem in the current version. It could be an issue in the future.

If you are going to be distributing books in any large scale, it would be best to use the Professional Edition and request a Publisher ID and Book ID for each book you publish. Contact Laridian Technical Support for details.

The fixed Publisher ID for user-created books is 501. If you have the Professional Edition and need a Publisher ID to use for testing and limited distribution, you can use 501 instead of requesting a unique Publisher ID.

Example

<meta name=pb_pubid content="501">

pb_bookid

<meta> tag

Required in all books

Syntax

<meta name=pb_bookid content="book id number">

Usage

The value of the content attribute should be the Book ID for this book. This is a number between 1 and 32767, inclusive. The only contexts in which these numbers are used is in the construction of interbook links and in the storing of supplemental data like notes and bookmarks, as described in the discussion of the pb_pubid metadata tag.

It is a good idea to assign a different Book ID to each of the books you build.

Example

<meta name=pb_bookid content="1">

pb_editionid

<meta> tag

Required in all books

Syntax

<meta name=pb_editionid content="edition number of book">

Usage

The value of the content attribute should be the Edition ID for this book. This is a number between 1 and 255, inclusive. Update the Edition ID when you change any table of contents structure within the book.

Bookmarks, notes, highlights and other data that is tied to a specific location in a book depend heavily on the structure of the book not changing. You can change the spelling of a word without affecting structure, but if you add a new heading tag with the pb_toc attribute, or if you add or subtract a pb_sync tag from a Bible, you will change the structure of the book. Adding or subtracting a paragraph, list, or table will also affect the structure of the book. If that happens, supplementary information like notes and bookmarks could show up in the wrong place.

The Laridian book reader programs use the Edition ID to verify that bookmarks, notes, and any other data stored by the program for this book are still valid. Note that this means if you change the Edition ID, any existing bookmarks, notes, etc. will no longer work with this book and will have to be re-created. As a result it's a good idea to test your books thoroughly before writing notes or adding bookmarks and thus depending on their structure not changing.

As of this date, the MyBible program does not store bookmarks, notes, or highlights for anything but Bibles so for all practical purposes this discussion can be ignored. However, this can not be assumed for future versions of the program.

Example

<meta name=pb_editionid content="1">

pb_revisionid

<meta> tag

Required in all books

Syntax

<meta name=pb_revisionid content="revision number of book">

Usage

The value of the content attribute should be the Revision ID for this book. This is a number between 1 and 255, inclusive. This value is ignored by the Laridian book reader programs and serves only to give you a way of keeping track of different revisions of the book. Increment this number as you make corrections to the book so you can verify you have the latest revision of the book installed.

Example

<meta name=pb_revisionid content="1">

pb_options

<meta> tag

Optional; as needed

Syntax

<meta name=pb_options content="ignoreintrabooksync">

Usage

This tag communicates various options to BookBuilder. Right now there is only one option:

Example

<meta name=pb_options content="ignoreintrabooksync">

pb_synctype

<meta> tag

Required in all books

Syntax

<meta name=pb_synctype content="verse" | "word" | "date" | "none">

Usage

The value of the content attribute describes the method this book uses to synchronize itself to other books. Bibles and commentaries are synchronized by Bible verses. Dictionaries, lexicons, and topical reference works like encyclopaedias and topical Bibles are synchronized by words. Daily devotionals are synchronized by date. Novels and other books that are organized simply into chapters may not synchronize to any type of reference. An example of each is below.

Example

For a Bible or commentary:

<meta name=pb_synctype content="verse">

For dictionaries, lexicons, and topical works:

<meta name=pb_synctype content="word">

For daily devotionals:

<meta name=pb_synctype content="date">

For novels, Christian living titles, and other books that just have chapters:

<meta name=pb_synctype content="none">

pb_sync

Inline tag

Syntax

<pb_sync type="verse | word" value="sync verse or word">

Usage

Marks the point in the text to go to to find information on the verse or word in the value attribute.

type=verse

Used in commentaries to indicate the beginning of commentary text for the verse in the value attribute.

The reference in the value attribute can be more than one verse as in "John 3:16-18" or even "John 3". You can indicate more than one passage for the same verse, though this is not recommended. The exception is that we often find this structure useful:

<p><pb_sync type=verse value="John 3"><b>CHAPTER THREE</b></p>
<p>In this chapter, Jesus has a conversation with Nicodemus...</p>
<p><pb_sync type=verse value="John 3:3"><b>3</b> In this verse...</p>
<p><pb_sync type=verse value="John 3:16"><b>16</b> In this verse...</p>

In the commentary above, only two verse out of this chapter are discussed in detail. If the user goes to John 3:6 and tries to view the commentary for that verse, you want them to see something, so by having a pb_sync for the entire chapter (John 3), you provide a destination for all the verses that are not otherwise defined. When the user asks to see commentary for John 3:3, the book reader program shows the paragraph dealing with that specific verse. The book reader program will always choose to display the portion of text with the most specific pb_sync value. So it would choose "John 3:3" over "John 3:3-5" or "John 3".

type=word

This tag is used in dictionaries to indicate the beginning of the dictionary entry for the word in the value attribute.

One article in the dictionary can have multiple words associated with it by simply including multiple <pb_sync> tags.

The word must be in English.

Example

<h1 pb_toc=visible>John</h1>
<pb_sync type="verse" value="John 1" />
<h2 pb_toc=index>John 1</h2>
<pb_sync type="verse" value="John 1:1" />
<h3 pb_toc=index>John 1:1</h3>
<p><pb_link format=bcv>John 1:1</pb_link> This is commentary on John 1:1....
...
<pb_sync type="verse" value="John 1:2" />
<h3 pb_toc=index>John 1:2</h3>
<p><pb_link format=bcv>John 1:2</pb_link> This is commentary on John 1:2....

<h2 pb_toc=visible>Ajalon</h2>
<pb_sync type=word value="Ajalon">
<pb_sync type=word value="Aij'alon">
<p>Place of deer. </p>
<p>(1) A town and valley originally assigned to the tribe of Dan...</p>
<p>(2) A city in the tribe of Zebulun...</p>

Inline tag

Syntax

<pb_link format="bcv | bc | cv | c | v">...</pb_link>

Usage

Use this tag to create a link from a Bible reference in your book to the Bible. The format attribute lets you specify how you want the enclosed text formatted. The choices are:

See the examples below.

You can also link to Bible text using the HTML anchor tag <a>. The format is:

<a href="bible:book ch:vs">linked text</a>

Where book ch:vs is the reference you want to link to. The difference between this format and <pb_link> is that the <a> tag allows you to link any text to the Bible, whereas the <pb_link> tag shows a verse reference as the linked text. So you can write passages like:

The <a href="bible:Ezra 1:1">first verses</a> of this book are the same as the <a href="bible:2 Chr 36:22">last verses</a> of the previous book.

You'll see:

The first verses of this book are the same as the last verses of the previous book.

Example

The following tags produce the text that follows each. The text is linked to the Bible reference specified.

This is further discussed in <pb_link format="BCV">John 3:16</pb_link>.

This is further discussed in Jn 3:16.

Compare verses <pb_link format="V">John 1:1</pb_link> and <pb_link format="V">John 1:14</pb_link>.

Compare verses 1 and 14.

The first verses of chapter <pb_link format="C">Ezra 1</pb_link> are the same as the last verses of <pb_link format="BC">2 Chr 36</pb_link>.

The first verses of chapter 1 are the same as the last verses of 2 Chr 36.

pb_noconc

Inline tag

Syntax

<pb_noconc>...</pb_noconc>

Usage

BookBuilder automatically creates an index of every word in your book (also known as a concordance) to help searching run faster. Sometimes you encounter letters or words you want to put in the text but don't want the BookBuilder to add to the index. These are rare, but when you run into one it's nice to be able to turn off the indexing.

For example, on the title page of each of our books we write "L A R I D I A N". Because of the extra space between the letters, BookBuilder sees each letter as a word and creates an index entry for it. To keep from finding this page every time you search for "a" or "I" and to avoid wasting space with an entry in the index for "L" and "R", etc., we surround this text with the <pb_noconc> tag, as shown in the example.

Remember that <pb_noconc> acts on characters, not paragraphs, so it must be inside a paragraph (or paragraph-like) tag. You can't put <pb_noconc> around a group of paragraphs or around an entire table. You have to put this tag inside the paragraph and inside the table cells.

Example

<p align=center><pb_noconc>L A R I D I A N</pb_noconc></p>

Inline tag

Syntax

<pb_nolinks>...</pb_nolinks>

Usage

This tag is used to tell the VerseLinker program not to create Bible reference links even if there are unambiguous, explicit Bible references between the <pb_nolinks> and </pb_nolinks> tags.

If you have the BookBuilder Professional product, you use the VerseLinker to automatically create <pb_link format=...>...</pb_link> links on all your Bible references. This tag disables that linking functionality over a range of text. If you do not have BookBuilder Professional, you are creating your own Bible reference links so this tag doesn't do you any good.

Even if you're not running VerseLinker, it's not a bad idea to use these tags so that if you ever do upgrade to BookBuilder Professional you'll have the tags already in place.

Example

<pb_sync type=verse value="Genesis 1:1" display=later />
<h1 align="center"><pb_nolinks>Genesis</pb_nolinks></h1>
<h2><pb_nolinks>Genesis 1</pb_nolinks></h2>
<h3>The Beginning</h3>
<p><pb_sync type=verse value="Genesis 1:1" display=now />In the beginning God created the heavens and the earth...

pb_note

Inline tag

Syntax

<pb_note>...</pb_note>

Usage

This tag is used to insert footnotes into the text. MyBible replaces the footnote with a hyperlinked indicator. When the user selects the hyperlink, the text from the pb_note tag is displayed.

You should assume the text in a footnote is going to display following a paragraph tag. Don't put a <p> tag at the beginning of your note.

Example

<p>This is an <pb_note>This note appears to the <i>left</i> of the
next word</pb_note>example of using footnotes<pb_note>This note appears
to the <i>right</i> of the previous word</pb_note>.

The user sees:

This is an *example of using footnotes*.

pb_context

VerseLinker tag

Syntax

<pb_context book=Book Name>...</pb_context> or
<pb_context book=Book Name chap=Chapter Number>...</pb_context>

Usage

This tag is used to clue VerseLinker in on what book and/or chapter is being referenced by the ambiguous references in the text. Consider a pargraph that says:

Matthew cites the prophet Daniel in verses 15 and 29...

VerseLinker initially sees the word "Matthew" and sets its context accordingly. But then it sees "Daniel", which is also the name of a book in the Bible. So when it gets to the references to verses 15 and 29, it believes those are verses in Daniel.

If we insert the <pb_context> tag we can force the context to the correct book and chapter, which will save us time when running VerseLinker:

Matthew cites the prophet Daniel in <pb_context book=Mat chap=24>verses 15 and 29...

Now VerseLinker will pick up the correct book and chapter.

If you do not own the Professional edition of BookBuilder, then this tag is of little value. However, if you happen to notice a situation like this, it might be worth inserting the tag in order to save time running VerseLinker if you ever upgrade to the Professional edition.

pb_vlskip

VerseLinker tag

Syntax

<pb_vlskip>...</pb_vlskip>

Usage

This tag is inserted automatically by VerseLinker. It aids in being able to run VerseLinker over multiple sessions. By inserting this tag at points in the text where you asked VerseLinker to ignore a potential link, it can later skip this section without asking you for further input.

You should remove these tags after you've completed VerseLinker and before running BookBuilder.

There's never any reason to insert these tags yourself.

h1, h2, h3, ..., h9

Enhanced HTML tag

Syntax

<h# pb_toc="index" | "visible" id=anchor name>...</h#>

Where:

Usage

HTML heading tags are essentially a quick and easy way to make large, bold headlines in your text. In true HTML there are six levels of heading tags (<h1> through <h6>) but BookBuilder supports nine levels (<h1> through <h9>). <h1> creates the largest heading; <h9> the smallest.

BookBuilder uses headings in your document to create a hierarchical table of contents for your book. The table of contents is important for two reasons: First, it gives the user a way to navigate your book. The user can use a "go to" function in MyBible to select first the top-level (<h1>) heading, then the second and subsequent levels until they find the place in the book they want to go. Second, headings provide targets for links using the <a href="book:..."> tag.

Laridian adds the pb_toc attribute to control the creation of the table of contents, and uses the standard HTML id attribute to give you an easy way to create links within your books.

pb_toc

This attribute can appear in any HTML heading tag. The value of the pb_toc attribute is either index or visible.

When pb_toc is index, then the text between the <h#> and </h#> tags is used to create a table of contents entry, but then the heading is discarded. It won't appear on the screen when someone views your book. This is useful when you feel that the size of the text detracts from the readability of the book, or when its simply not necessary for the user to know when reading the text that a new section of the table of contents begins at this point. A common tagging technique is to follow the heading tag with the same text, only smaller, as follows:

<h3 pb_toc="index">Jesus Heals a Blind Man</h3>
<p><b>Jesus Heals a Blind Man</b> In these verses, Jesus heals a man who was blind....</p>

The user will not see the heading text, but will see the bold text at the beginning of the paragraph. On a small screen, this may be more space-efficient and give the user a better reading experience than using the larger font normally associated with the <h3> tag.

When pb_toc is visible, the text between the <h1> and </h1> tags is used to create a table of contents entry, and the heading is left in the text as-is so the user will see it on the screen above the text that follows.

When the pb_toc attribute is omitted, then the heading will appear to the user on the screen just like any other HTML heading, and no entry is made in the table of contents.

id

The id attribute allows any tag to become the target of a <a href=#xxx> link, where "xxx" is the id value of the tag. BookBuilder does not support linking to every tag in the document, but does permit linking to heading tags. You can use the HTML standard <a href="#xxx"> tag to create a link to the heading tag with id value "xxx".

Example

<h1 pb_toc=visible>John</h1>
<pb_sync type="verse" value="John 1" />
<h2 pb_toc=index>John 1</h2>
<pb_sync type="verse" value="John 1:1" />
<h3 pb_toc=index id="Jn 1.1">John 1:1</h3>
<p><pb_link format=bcv>John 1:1</pb_link> This is commentary on John 1:1....
...
<pb_sync type="verse" value="John 1:2" />
<h3 pb_toc=index id="any name will work">John 1:2</h3>
<p><pb_link format=bcv>John 1:2</pb_link> This is commentary on John 1:2....
...
... see the notes on <a href="#Jn 1.1">verse 1</a>...
... see the notes on <a href="#any name will work">Jn 1:2</a>...

User sees:

John

Jn 1:1 This is commentary on John 1:1....

...

Jn 1:2 This is commentary on John 1:2....

...

... see the notes on verse 1...

... see the notes on Jn 1:2...

a

Enhanced HTML tag

Syntax

  1. Inter-book link: <a href="book:pubid\bookid\h1 text\h2 text\...\h9 text">
  2. Intra-book link: <a href="book:\\h1 text\h2 text\...\h9 text">
  3. Inter-book sync link: <a href="sync:pubid\bookid\sync value">
  4. Intra-book sync link: <a href="book:\\sync value">
  5. Alternate intra-book link: <a href="#heading id">
  6. Bible link: <a href="bible:bible reference">

Where:

Usage

BookBuilder gives you several ways to create hyperlinks in your books. You can link to other books (inter-book links), within the same book (intra-book links), and to Bibles.

Inter-book and Intra-book Links

Forms (1) and (2) above are actually the same link. The first specifies the Publisher ID and Book ID of the book to which you want to link. The second omits the Publisher ID and Book ID, leaving just the backslashes. It is assumed in that case that you're linking to the current Publisher ID and Book ID — ie. the book you're currently in.

Publisher IDs and Book IDs are discussed elsewhere. Suffice to say that every book you create should have a unique Publisher ID and Book ID. The Publisher ID is preset to 501 for all books created with this edition of the BookBuilder program, so you should make sure you assign a unique Book ID to each book you create (see the pb_bookid meta tag).

To get to a particular section of a book, you specify a "path" using the table of contents headings you've created with the pb_toc attribute. First you list the <h1> entry under which your target section is located, then the <h2> entry, etc. until you get to the heading right before the text you want to link to.

The example shows the layout of a book's heading tags and how you would create links to "point A" and "point B" in the text. Note that headings that do not have the pb_toc attribute are not in the table of contents, so they should be ignored in the creation of paths.

Inter-book and Intra-book Sync Links

Forms (1) and (2) use the book's table of contents to locate the target of the link. Forms (3) and (4) use its sync index.

The sync index is built by BookBuilder from the values of the value attribute of the pb_sync tag. For commentaries, these sync values are Bible verses. For dictionaries, they are words.

Instead of specifying the path to the target section using the heading tags, it may be easier to link through the sync index. The example shows a variety of links into commentaries and dictionaries using both standard links (using heading paths) and sync links (using pb_sync values).

Note that if your commentary has a pb_sync tag with a value that is a range of verses, like "John 3:16-18", then you can use a sync link to any of the verses in the range to target that commentary section. So <a href="sync:\\Jn 3:17"> will find the section tagged as <pb_sync type=verse value="John 3:16-18">.

Bible Links

To link to the Bible from your reference books, use form (6) above. Examples are below.

Example

Intra-book and Inter-book Links

Sample Commentary

<h1 pb_toc=visible>John</h1>
<pb_sync type="verse" value="John 1" />
<h2 pb_toc=index>John 1</h2>
<pb_sync type="verse" value="John 1:1" />
<h3 pb_toc=index id=jn0101>John 1:1</h3>
<p><pb_link format=bcv>John 1:1</pb_link> This is commentary on John 1:1....
<p>This is "point A" in the text...
...
<pb_sync type="verse" value="John 1:2" />
<h3 pb_toc=index id=jn0102>John 1:2</h3>
<p><pb_link format=bcv>John 1:2</pb_link> This is commentary on John 1:2....
...
<h4>A Heading in the John 1:2 Commentary<h4>
...
<h4>Another Heading in the John 1:2 Commentary<h4>
<p>This is "point B" in the text...

<!-- Examples of intra-book links using heading paths -->

... (Point A) see the notes on <a href="book:\\John\John 1\John 1:1">verse 1</a>...
... (Point B) see the notes on <a href="book:\\John\John 1\John 1:2">Jn 1:2</a>...

<!-- Examples of intra-book links using sync links -->

... (Point A) see the notes on <a href="sync:John 1:1">verse 1</a>...
... (Point B) see the notes on <a href="sync:John 1:2">Jn 1:2</a>...

<!-- Examples of intra-book links using id names -->

... (Point A) see the notes on <a href=#jn0101">verse 1</a>...
... (Point B) see the notes on <a href=#jn0102">Jn 1:2</a>...

<!-- If this book's Publisher ID is 501 and Book ID is 10, here's -->
<!-- how you create links from another book to this book -->

... (Point A) see the notes on <a href="book:501\10\John\John 1\John 1:1">verse 1</a>...
... (Point B) see the notes on <a href="book:501\10\John\John 1\John 1:2">Jn 1:2</a>...

<!-- Inter-book sync links -->

... (Point A) see the notes on <a href="sync:501\10\John 1:1">verse 1</a>...
... (Point B) see the notes on <a href="sync:501\10\John 1:2">Jn 1:2</a>...

Sample Dictionary

<h1 pb_toc=index>A</h1>
<p align="center"><b>A</b></p>
<h2 pb_toc=index>Aaron</h2><pb_sync type=word value="Aaron" />
<p align="center"><b>Aaron</b></p>
<p>Moses' brother ...</p>
...
<h3 pb_toc=index>Events of Aaron's Life</h3>
<p align="center"><b>Events of Aaron's Life</b></p>
...
<h2 pb_toc=index>Aaronites</h2><pb_sync type=word value="Aaronites" />
<p align="center"><b>Aaronites</b></p>
<p>The priests who descended from Aaron ...</p>
...
<h2 pb_toc=index>Aaron's Rod</h2><pb_sync type=word value="Aaron's Rod" />
<p align="center"><b>Aaron's Rod</b></p>
<p>Staff belonging to Moses' brother, Aaron...</p>
...

<!-- Links to the article on Aaronites -->

... see <a href="book:\\A\Aaronites">Aaronites</a>...
... see <a href="sync:\\Aaronites">Aaronites</a>...

<!-- There is no way to create a sync link to "Events of Aaron's Life" since -->
<!-- it doesn't have a <pb_sync> tag. But we can link through the table of contents -->

... see <a href="book:\\A\Aaron\Events of Aaron's Life">Events of Aaron's Life</a>...

<!-- Intra-book links based on the heading id name and inter-book links -->
<!-- using Publisher ID and Book ID work the same in dictionaries as -->
<!-- in the commentary example, above. -->

Bible Links

... see <a href="bible:Jn 3:16">verse 16</a>...
... see <a href="bible:John 3.16">John 3:16</a>...

img

Enhanced HTML tag

Syntax

<img src="filename.bmp" height=height in pixels width=width in pixels or percent alt="alt text" border=border width hspace=pixels vspace=pixels>

Usage

The img tag is not so much "enhanced" but rather there are limitations on its use that are worth mentioning here.

For the most part, the img tag functions the same way you would expect in an HTML document. As of this date, our reader programs only support bitmap (bmp) images with 1-, 4-, 8-, or 24-bit pixel depth. If you have jpg or gif images you want to include in your book, you need to first convert them to a Windows bitmap using one of the supported pixel depths.

The files you name in an img tag should be located in the same directory as your source document for your book when you run BookBuilder. The files will be copied into the resulting .pdb file of your book by the BookBuilder program, and will be extracted by the reader as they're needed.

Height and width attributes can be used to scale the bitmap to the desired size, but it is more efficient to size your bitmap to the size you want it displayed. Don't load a huge, high-resolution bitmap then scale it down to 100 pixels wide. It will just waste time and space.

The alt text is not currently used but the attribute is supported and could be used in the future.

The border attribute allows you to create a black border around the image of whatever width you choose. If the image is contained in a hyperlink, a 2-pixel-wide blue border will be drawn around it unless you override it with the border attribute.

The attributes hspace and vspace are used to create horizontal and vertical space around the image, respectively.

Note that the align and valign attributes are not supported. Images are always displayed as if align=left and valign=bottom were selected.

Example

<img src="My Picture.bmp" border=1 hspace=3>

Building Your Book

Running the Program

Tagging books is hard; running BookBuilder is easy. Once your book is tagged, launch BookBuilder. Use the Brose button to find your tagged source document. Then select "Go!".

When BookBuilder is done, it may tell you to check the log file. The log file is located in the same directory as your source document and has the same name. The file extension, however, will be .log. So if your book is called mybook.htm, the log file will be mybook.log.

If BookBuilder finishes successfully, you'll see "Done!" in the status line and you can select the Exit button to exit the program.

Error and Warning Messages

Fatal Errors

These errors pop up in a dialog box and cause execution of BookBuilder to cease. You have to resolve these problems before continuing.

Exit and restart the program to compress another book.

You can only run BookBuilder once. After building one book you need to exit BookBuilder and re-launch it to build another.

Unable to open log file

BookBuilder creates a log file in the same directory and with the same name as your input file. If your input file is mybook.htm, the log file is called mybook.log. This error indicates BookBuilder was unable to create a log file. It could be that you have the existing log file open in another application, like your word processor, or it could be the file is read-only or you don't have proper rights to access the directory containing the log file.

File could not be opened

Something happened to the input file between the time you selected it and when you told BookBuilder to start. For some reason the file cannot be opened. Exit BookBuilder, close other programs and run BookBuilder again.

Error opening filename: File not found
Error opening filename: Bad path
Error opening filename: Access denied
Error opening filename: Sharing violation
Error opening filename: error code error number

These errors can occur when you first start building a book or after you're most of the way through and the program is trying to save its results. BookBuilder creates some intermediate files that it uses while running then deletes. If any of these files, or if the final output file, cannot be opened or written to, one of these errors will occur. It is probably the case that another program is using a file that BookBuilder wants to use. Close all other programs and try running BookBuilder again.

It's also possible that the file is read-only or that the current user does not have appropriate access rights to the file.

Error initializing parse tree. Out of memory?
Unable to allocate book storage. Insufficient memory.

It would be unusual to get these errors. For some reason the program wasn't able to allocate enough memory to build your book. If you've eliminated all other possibilities, and especially if your book is huge, you may not be able to build it on the machine you're currently running on. We've processed some very large books (30 MB input files) successfully with BookBuilder, so it can be done. You just might not have enough memory.

Book initialization failed
Initialization of temporary TOC book failed.
Failed to create IMAGES substorage

These errors follow another more informative message that would give you a better clue as to why initialization failed.

Unable to create cBkStorage for LBK file.
Unable to open LBK file to get abbreviation.
Unable to load info block from LBK file.
Unable to load word list from LBK file.
Unable to load punctuation list from LBK file.

BookBuilder is trying to open a temporary file it creates while building your book, but it cannot. It's possible another program has the file open or has deleted it. Exit BookBuilder, close all other programs, and try running BookBuilder again.

Required pb_synctype meta tag is missing or invalid.

All books must include the pb_synctype meta tag even if they don't have any synchronization capability (like a novel).

Node storage failed!

This indicates that your book violates some assumptions made in the program. Contact technical support for assistance.

Unrecognized tagging format in input file

One of the following has occurred:

Warnings

These errors are just alerts to let you know what's going on.

See log file for errors.

When BookBuilder is finished it warns you if it's placed something in the log file that you should look at. It may have gotten all the way through the book or it may have stopped early. In either case, examine the log file to figure out what went wrong.

No action performed on existing lbk or ldr file.

You've tried to run BookBuilder on a file type it recognizes but can't do anything with. These are PocketBible files are normally generated by BookBuilder; it doesn't know what to do with them when you try use them as input to the build process.

No file to process!

You're trying to run BookBuilder without choosing an input file.

The Log File

Overview of Log File Contents

BookBuilder generates a log file containing information about the processing of your book. If it encounters problems, it writes an error message to the log file. If all goes well, the log file will contain some useful information about the contents of your book that may help you find subtle problems. For example, one of the items that gets dumped to the log is the vocabulary of the book; that is, a list of every unique word it encounters. If you take a few minutes to skim the word list you might find common spelling errors like "teh" for "the". You can then search your source document for "teh" and fix it everywhere it occurs.

If BookBuilder encounters a serious error, it makes a log entry then pops up a message when it's done to tell you to check the log file for errors. If you don't get a message telling you to check the log file, then it's likely there were no serious errors. But again, there could be spelling errors that BookBuilder doesn't know about. It's up to you to check the log and make sure you're satisfied with the results.

The log file consists of several parts:

Weird Things in the Log File

Words in the word list containing &#xxx; character entities. If you use certain characters, such as o with a diaresis or e with an acute accent, you'll find that these words are spelled oddly in the word list. The word fiancée (with an acute accent over the first e) will appear as "fianc&#195;&#169;e". This is because accented characters can't be represented in a way we can be sure you're going to be able to read in the log file. Internally, they're stored in Unicode, and we can't simply send Unicode characters to the screen and expect them to be displayed. (Don't worry if you don't understand this. The point is we can't put accented characters in the log file for "technical reasons".) So we convert the internal Unicode (actually UTF-8) representation to character entities.

Words starting with &#255; at the end of the word list. This has to do with being able to search for words with and without accented characters. Don't worry about these words.

Punctuation sequences that contain &#xxx; character entities. Characters like em-dash (&mdash;) are stored internally in Unicode and can't reliably be displayed on your screen or sent to the log file in a format you can be guaranteed to be able to read. So we convert them to UTF-8 then to character entities. For the most part you can ignore these.

Analyzing the Log File

The section below describes error messages you may see in the log file. You should of course examine each of these and seek to determine what the problem is that caused the error.

Assuming your book made it through BookBuilder without any errors, what else can you learn by studying the log file?

Log File Errors and Warnings

Processing may stop when these conditions are encountered, and a message is placed in the log.

Failed parsing HTML document. Errors follow:

This message is followed by one of several types of errors:

Unrecognized tag, or element contains illegal tags after this point.

This error message is followed by a few lines from your source file indicating where the error occurred. While reading through your HTML file, the program encountered HTML tags it didn't recognize, or it found tags that just don't belong here. This usually happens when you have a table or a list that contains tags that aren't allowed in tables or lists.

Expected at least count items contained in this tag, but only saw count

This error can occur when HTML syntax requires something that is missing. The excerpt that follows this message will start with the tag that is expecting the missing content.

Required closing tag is missing, or this element has illegal contents.

The message is followed by an excerpt from your source file. The first tag in this excerpt is never closed. That is, if the first tag is <ol>, then the corresponding </ol> is missing. Note that you may look at your file and see the "missing" closing tag. The problem is most likely that it is out of place. For example, the following is erroneous even though the </ol> is obviously there:

<ol type="I">
<li>First item</li>
<li>Second item</li>
  <ol type="A">
  <li>First subitem of second item
  <li>Second subitem of second item
  </ol>
<li>Third item</li>
</ol>

Ordered lists can only contain list items. If you have a sublist within the list, it must be contained inside one of the list items. The correct format is:

<ol type="I">
<li>First item</li>
<li>Second item
  <ol type="A">
  <li>First subitem of second item
  <li>Second subitem of second item
  </ol>
</li> <!-- Note this is the end of the second list item -->
<li>Third item</li>
</ol>

BookBuilder complains about the first list in the first example because it encounters an ol tag while it's looking for an li tag.

EOF while looking for <fieldset> contents:
<fieldset> tag is empty or unterminated:
<table> has no contents.
<table> is empty, unterminated, or contains illegal elements.

All of these errors indicate that the program encountered the end of your source file before it found the rest of what it was looking for when it started parsing the tag at the beginning of the excerpt.

Required pb_abbrev meta tag is missing or invalid.
Required pb_bookid meta tag is missing or invalid.
Required pb_city meta tag is missing or invalid.
Required pb_copyright meta tag is missing or invalid.
Required pb_editionid meta tag is missing or invalid.
Required pb_publisher meta tag is missing or invalid.
Required pb_revisionid meta tag is missing or invalid.
Required pb_synctype meta tag is missing or invalid.
Required pb_title meta tag is missing or invalid.

These are self-explanatory. The indicated meta tags are required, but they can't be found in your book.

*** Too many words! ***
*** Too many punctuation strings! ***
*** More than 64K punc strings, MFO list won't work! ***

All of these errors are warning you that you've exceeded some capacity of the BookBuilder program. We have never encountered these errors and don't anticipate that you will. If you see these errors in the log, contact Technical Support.

*** Due to the size of the book, the word list was not optimized. ***
*** Due to the size of the book, the punctuation list was not optimized. ***

In order to optimize decompression of the text of your book, BookBuilder stores an additional, decompressed copy of your book's vocabulary list in database records that follow the records representing your book. This speeds up the display of your book significantly. There are two situations in which we can't perform this optimization:

  1. Palm OS limits us to 65,535 records in each PDB file. If you have more than 65,535 words in your vocabulary list, the device simply isn't capable of storing the list.
  2. If storing the word list means that too few records remain of the 65,535 allowed to store the rest of your book, the word list is not stored.

You may find that your book runs too slow to be of practical use without these optimizations, or you may find that it works fine. Contact Tech Support if you need help working around this problem.

tempTOC.Add() failed for heading text
TOC.Add() failed for "heading text"
Error storing verse reference: reference
ConstructTOCEntry: pElement is NULL

These errors indicate a problem updating an internal data structure. The most likely cause is an out-of-memory condition. Your book may be too big or you may not have enough memory in your computer to process the book. Try it on a different machine or close other programs and try again.

Found two <map> tags with same name (name)

Each <map> tag must have a different name or id attribute value. You can't have two image maps with the same name or the program won't know which one to use. Change the name of one of the maps.

Invalid book link: link text

The book link is improperly formed. Make sure you're using backslashes instead of forward slashes.

Unresolved book link: link text
Unresolved link: id link text

The book link is properly formed, but it goes to a non-existant location. Check the link carefully.

No src= in <img> tag

This is an improperly formed <img> tag.

Failed to create substorage for image file name

The program failed to create a temporary file into which to store your image. You may not have adequate permissions to create files in this directory or the file may be in use by another program. Verify your permissions and close other programs and try again.

usemap attribute missing # ('value')

usemap attributes must have values that are anchor names in your book. The proper HTML syntax requires that you precede the anchor name with a pound sign. It's either the case that you've left out the pound sign or you are trying to reference an image map in another file, which is not permitted.

Can't find <map> for <img> (value)

Value is the map name that is the value of the usemap attribute in the <img> tag in question. The program is unable to find a matching <map> tag in your document that has an id or name attribute that matches value. Your document must include a <map> for every usemap attribute you use.

<pb_sync> tag must have "value" parameter (last value seen?)

All pb_sync tags must have a value parameter. The message shows you the last value parameter it saw to help you locate the improperly formed tag.

Unrecognized Bible reference in <pb_sync> tag: Reference

The program was unable to recognize the Bible reference in the value attribute of this <pb_sync type=verse...> tag. Make sure Reference is a valid Bible verse. Note that the program doesn't know how many chapters are in a book, or how many books are in a chapter, so it's not possible that is the cause of the error. Instead, check the book name against the table of Bible book names found later in this document and verify that the overall construction of the reference is correct (i.e. you're using a colon, not a semicolon to separate chapter and verse, etc.).

Saw <pb_noconc> inside another <pb_noconc>

You can't put <pb_noconc>...</pb_noconc> inside another <pb_noconc>...</pb_noconc>. Once the concordance is turned off, you can't turn it off more. This can also happen if you accidentally fail to close a <pb_noconc> tag.

Saw <pb_note> inside another <pb_note>

You can't have footnotes on your footnotes. This can also happen if you accidentally fail to close a <pb_note> tag.

Unknown token text

The program has encountered something completely unexpected in the input file and has no clue what to do with it. The unknown text follows the error message.

<pb_sync> word (word) not found!
Verse reference (verse reference) not found in verse reference list!

These errors should never occur. The program stored the word or verse when it found it, then went to look for it again and it's gone. Something has gone horribly, horribly wrong.

Saw <pb_link> inside another <pb_link>.

Most likely you forgot to close a <pb_link> tag.

Unsupported <pb_link> format (bv)

The valid values of the format attribute are bcv, bc, cv, c, and v. Other combinations are not permitted.

UNSUPPORTED FEATURE. RESULTS UNDEFINED. Word with mixed capitalization, longer than 32 characters encountered: word

You've entered a word like "ThisIsAReallyLongWordWithMixedCaseLetters". BookBuilder can't handle words with mixed capitalization that are longer than 32 letters. You're going to have to figure out a way to break it up.

pb_toc attribute is empty: Heading

You have not provided a value for the pb_toc attribute in your heading tag. This error is followed by the text within the heading tag that has the missing pb_toc attribute value.

Unrecognized meta tag: name="meta tag name" content="meta tag contents"

This is probably the result of using an HTML editor that insists on putting its own meta data into all your HTML files. This can happen when you use Word to create your HTML files. Other word processors could do the same thing. You must use a plain-text editor or a very well-behaved HTML editor to create Laridian books. It's also possible that you just misspelled one of the recognized meta tags.

Indexed heading tag has no contents
Indexed heading tag contains no text

You've created a heading tag with no heading text, something like this:

<h1 pb_toc=index></h1>

There needs to be text in the heading, like:

<h1 pb_toc=index>This is the heading text</h1>

Error in Bible reference range: Start verse comes after end verse! (verse reference)

You've entered a Bible reference like John 3:18-16, where the start verse is actually after the end verse.

Error in Bible reference range: book, chapter or verse appears invalid. (verse reference)

You've entered an obviously wrong reference, like Genesis 112:215. The program doesn't check the exact validity of your references, but it will complain if you use chapters greater than 151 or verses greater than 176.

Whole-book syncs/links are not supported. Use 1:1-lastchap:lastvs. (verse reference)

The program can't handle links to an entire book or a pb_sync tag that names an entire book, as in <pb_sync type=verse value="John">.

Couldn't map 'characters' into a target font for language 1033

You're using an invalid character. The only characters that should appear in your document are ASCII values less than or equal to 127 and the supported character entities listed elsewhere in this document.

Miscellaneous Topics

About Copyrights

Most people think they understand copyright issues, but most do not. We're not lawyers, and this document shouldn't be construed as legal advice. But if you're going to be using BookBuilder to create electronic editions of anyone's work but your own, you need to be familiar with copyright law. There are many good books on this topic and we encourage you to seek them out and read them.

The author of a book, article, screenplay, Web site, or any other creative work immediately owns all copyrights in his or her work. As soon as a word is put into tangible form, even as a draft or handwritten manuscript, copyright exists. That means the author controls the publication, distribution, reproduction, and further development of the work.

When you publish someone else's book with BookBuilder, you are making decisions on their behalf about how the book will be reproduced, distributed, and formatted. If the author's copyright is still in effect, then you could be doing so illegally. It is your responsibility to determine the copyright status of the books you publish with BookBuilder, and what rights you have with respect to reproducing, viewing, and distributing those books.

It's possible that the owner of a copyrighted work would give you permission to publish their work electronically. It doesn't hurt to ask. You may have to pay a royalty on each copy you sell, and you may have to pay an advance against those royalties prior to selling a single copy. It could be that the owner would give you permission to create an electronic edition for your own use, or give you limited distribution rights. Again, you need to ask the copyright owner. The name of the copyright owner can be found in a printed edition of the work you intend to publish.

Public Domain

While an author owns the copyrights in his work immediately upon writing, those rights expire eventually. When they do, the book falls into the public domain. Books in the public domain are available for you to do with what you will. Determining what books are in the public domain can be difficult, especially for titles published in the last 75 years.

Books published before January 1, 1978 fall under rules that give copyright protection for 75 years from their creation or date of first publication, whichever is sooner. That means you can assume that books published in the 1800's and very early 1900's are in the public domain. For books published later than that, you'll have to do some investigation to determine their status. Copyrights expire after 28, 47, or 75 years depending on the circumstances, how they were registered and whether or not they were renewed.

Fair Use

The Fair Use doctrine grants exemptions to copyright restrictions for certain uses. For example, you can quote from a book when you're writing a review or when you're teaching a class. You can't reproduce the entire book and distribute it with your review, nor can you photocopy an entire book and hand it out to a class you're teaching. But you can use limited quotes in those contexts without permission from the author.

Some people argue that Fair Use includes publishing an electronic edition of a copyrighted work for your own use. Others object on the grounds that such use negatively affects the market for the author's own electronic editions and thereby violates Fair Use. The fact that you have created your own electronic edition — and especially if you've distributed a copy or two to friends — means that the owner of the copyright can't sell electronic editions to you (or your friends).

Even if such electronic editions don't exist, the copyright owner has the right to determine whether or not he or she wants to exploit those rights. When you make an electronic edition you are making that decision on behalf of the owner, and he or she may not agree with your decision. As a far-out example, just because your neighbor isn't exploiting his right to rent out one of his bedrooms doesn't mean that you can rent your neighbor's room to your brother-in-law.

There are precedents, however, for personal use of certain copyright materials. Examples often quoted include time-shifting, which is the recording of a copyrighted work to be played back at a more convenient time (think TiVo and VCRs). Time-shifting has been tested in court and found to be a valid defense against accusations of copyright infringement. Another example is format-shifting, which is the reproduction of a copyrighted work to be played back on a similar but incompatible device (i.e. making CDs of your vinyl records, or mix-tapes of your favorite songs). Some argue that making electronic editions of copyrighted books for your own personal use is nothing more than format-shifting and falls under Fair Use.

Guidelines

Again, we're not lawyers, but as general guidelines we offer this advice:

Publishing and Distributing Your Books

The End User License Agreement for BookBuilder states that you cannot use BookBuilder to create products that directly compete with Laridian products. BookBuilder enforces this by doing two things: First, the copyright statement in your book is modified to include a statement that prohibits commercial (paid) distribution of the book. Second, since all books created with BookBuilder have the same Publisher ID, it's possible that your book will "collide" with another on a user's machine, making it difficult to use one or the other of them.

For books you create for your own personal use, this isn't a problem, since you can assign different Book IDs to each of the books you create and avoid collisions. And you won't be selling books to yourself, so the copyright statement modification will have no effect. But if you're distributing your books to others, and especially if you're selling them, you need to submit your books to us. We'll assign each one a unique Publisher ID and Book ID, and build a version for you that is licensed for commercial distribution.

Each book must meet certain conditions before we'll let you distribute it. These are easy conditions to meet in most cases:

  1. You must own the Professional edition of BookBuilder.
  2. The book must be one that is not offered for sale by Laridian as of the date you submit the book to us.
  3. You must meet the submission frequency requirements described at www.laridian.com/publish.

We have a limit on how often you can submit books to us just so that we can encourage you to make sure your book is completely ready to ship to customers before submitting it to us. It should run through BookBuilder with no errors and should be thoroughly spell-checked and ready to go. The last thing you should do is submit the book to us. There should be no need for further builds of the book after we're through with it.

If you have special circumstances and need to exceed the submission frequency, the Web site offers you the ability to purchase additional builds at a nominal fee. Again, the point is to make sure that we're not doing all your intermediate builds as you create the product, but rather just doing the final build before the product goes out the door.

Talk to Us

If you are planning to license content from publishers and are concerned that you could get done with a book only to find that we also are publishing it, contact us and let us know your plans. We should be able to work something out. Our purpose is not to squash all publishing efforts but rather to limit the ability of an unscrupulous competitor to use our own tools to undermine our business. If you are not unscrupulous, then we should have no problem coming to an understanding.

Selling Your Books Through Laridian

We may be interested in selling titles that are of general interest to our customers. We may contact you in this regard when you submit your books for final processing, or you may contact us in advance to discuss this possibility. Simply address your questions to our Tech Support department and they'll get directed to the right person at Laridian.

Notes About the Future and Cross-Platform Development

This tagging format was originally developed for our PocketBible program for Pocket PC, hence the tags and attributes all start with "pb". Users who are familiar with PocketBible may see features in PocketBible books that seem to be impossible to recreate with BookBuilder despite our claims that BookBuilder is the same tool we use in-house to create books.

With certain exceptions, it's reasonable to assume that features you see in PocketBible books (such as support for Greek and Hebrew) are going to eventually make it into MyBible and thus, this BookBuilder program for MyBible. In those cases, there are tags which BookBuilder will recognize, but which we've left undocumented because they're unimplemented and untested in MyBible.

The exceptions to this assumption include implementation of the complete set of character entities. Without native support in the pre-installed Palm fonts, it would be more difficult to do this than it would be worth. It is felt that the currently implemented set is sufficient.

The previous versions of PocketBible for Windows Mobile (aka Windows CE) devices used an entirely different tagging scheme. If you want your books to run on the old PocketBible 2.0, consider purchasing BookBuilder Professional. It comes with a tool to convert from the "old" tagging style of PocketBible 2.0 to the "new" tagging style of PocketBible 3.x and MyBible 4.x. It might be easier to tag your book in the old tagging style, then use the tool in BookBuilder Professional to convert the book to the new style tags when you're done.

It is our plan to use this new tagging format for all future devices we support, so books you tag now will eventually have other target platforms you'll be able to build for. There will be exceptions to this plan. For example, the current batch of Java-based smart phones (not to be confused with Windows Mobile Smartphone) has a very limited memory model that prohibits the use of this data format on those devices, if in fact we choose to implement a reader on those devices.

You may also notice a lengthy list of unimplemented, but recognized, HTML tags. These include tags to support forms, inline styles, and some other micellaneous features. It would not be incorrect to assume that we intend eventually to implement some of these features. When that will be, and exactly what features of these tags will be supported, will not be disclosed until those features are available.

Appendices

Bible References

BookBuilder recognizes a large number of formats for specifying Bible verses. Just about any abbreviation for the book name can be used. A period, colon, or space can be used to separate chapter and verse.

The table below lists each of the ways you can spell each book of the Bible. The number in parenthesis is the minimum number of letters from that spelling that is required. So "Genesis (2)" indicates that you can abbreviate "Genesis" as "Ge", "Gen", "Gene", "Genes", or "Genesi". The abbreviation "Gn" is also accepted for Genesis.

Genesis (2)
Gn (2)
Exodus (2)
Leviticus (3) except "Levi"
Lv (2)
Numbers (2)
Deuteronomy (2)
Dt (2)
Joshua (3)
Jdg (3)
Judges (4)
Ruth (2)
1 Samuel (3)
1S (2)
1Samuel (3)
I Samuel (3)
First Samuel (9)
2 Samuel (3)
2S (2)
2Samuel (3)
II Samuel (4)
Second Samuel (10)
1 Kgs (4)
1 Kings (3)
1K (2)
1Kgs (3)
1Kings (3)
I Kgs (4)
I Kings (3)
First Kings (8)
2 Kgs (4)
2 Kings (3)
2K (2)
2Kgs (3)
2Kings (3)
II Kgs (5)
II Kings (4)
Second Kings (9)
1 Chronicles (4)
1Chronicles (3)
I Chronicles (4)
First Chronicles (9)
2 Chronicles (4)
2Chronicles (3)
II Chronicles (5)
Second Chronicles (10)
Ezra (3)
Nehemiah (2)
Esther (2)
Job (3)
Psalms (2)
Pss (3)
Proverbs (2)
Ecclesiastes (2)
Canticles (9)
Sol (3)
Song of Solomon (4)
Song of Songs (4)
SS (2)
Isaiah (3)
Jeremiah (2)
Lamentations (2)
Ezekiel (3)
Ezk (3)
Daniel (2)
Hosea (2)
Joel (3)
Amos (2)
Obadiah (2)
Jnh (3)
Jonah (3)
Micah (2)
Nahum (2)
Habakkuk (3)
Zephaniah (3)
Haggai (3)
Zechariah (3)
Malachi (3)
Matthew (3)
Mt (2)
Mark (3)
Mk (2)
Mr (2)
Lk (2)
Luke (2)
Jn (2)
John (3)
Acts (2)
Rm (2)
Romans (2)
1 Corinthians (4)
1Corinthians (3)
I Corinthians (4)
First Corinthians (9)
2 Corinthians (4)
2Corinthians (3)
II Corinthians (5)
Second Corinthians (10)
Galatians (2)
Ephesians (2)
Philippians (4)
Phl (3)
Php (3)
Colossians (3)
1 Thessalonians (4)
1Thessalonians (3)
I Thessalonians (4)
First Thessalonians (10)
2 Thessalonians (4)
2Thessalonians (3)
II Thessalonians (5)
Second Thessalonians (11)
1 Timothy (4)
1Timothy (3)
I Timothy (4)
First Timothy (8)
2 Timothy (4)
2Timothy (3)
II Timothy (5)
Second Timothy (9)
Titus (3)
Philemon (5)
Phlm (4)
Phm (3)
Hebrews (3)
James (2)
Jas (3)
Jms (3)
1 Peter (3)
1P (2)
1Peter (3)
First Peter (11)
I Peter (3)
2 Peter (3)
2P (2)
2Peter (3)
Second Peter (12)
II Peter (4)
1 Jn (3)
1 John (3)
1Jn (3)
1John (2)
I Jn (3)
I John (3)
First John (10)
2 Jn (3)
2 John (3)
2Jn (3)
2John (2)
II Jn (4)
II John (4)
Second John (11)
3 Jn (3)
3 John (3)
3Jn (3)
3John (2)
III Jn (5)
III John (5)
Third John (7)
Jde (3)
Jude (4)
Revelation (3)
1 Esdras (3)
1E (2)
1Esdras (3)
I Esdras (3)
2 Esdras (3)
2E (2)
2Esdras (3)
II Esdras (4)
Jdt (3)
Judith (6)
Add Esther (7)
AddEsther (6)
Additions to Esther (19)
Wisdom of Solomon (3)
Ecclesiasticus (14)
Ecclus (6)
Sirach (3)
Baruch (3)
A Letter of Jeremiah (20)
Let Jeremiah (7)
LetJeremiah (6)
Letter of Jeremiah (18)
The Letter of Jeremiah (22)
Azariah (3)
Pr Azr (6)
The Song of the Three Children (30)
Susanna (3)
Bel and the Dragon (3)
Bel and Dragon (14)
Manasseh (3)
Pr Man (6)
The Prayer of Manasseh (22)
1 Maccabees (3)
1M (2)
1Maccabees (3)
First Maccabees (8)
I Maccabees (3)
2 Maccabees (3)
2M (2)
2Maccabees (3)
Second Maccabees (9)
II Maccabees (4)
3 Maccabees (3)
3M (2)
3Maccabees (3)
Third Maccabees (7)
III Maccabees (5)
4 Maccabees (3)
4M (2)
4Maccabees (3)
Fourth Maccabees (8)
IV Maccabees (4)
Tobit (3)
FntM (4)
Front Matter (12)
Back Matter (11)
BckM (4)
Est (Gk) (8)
Esther (Greek) (14)

Supported HTML Tags

Unrecognized Tags Generate Errors

Normally, a Web browser will ignore tags it does not recognize. BookBuilder violates this principle and gives you an error message if it encounters a tag it doesn't recognize. This is so it will be painfully obvious if you misspell a tag or construct your document the wrong way.

It should also be noted that BookBuilder insists on following exact HTML syntax rules. Web browsers let Web site designers get away with a lot of shortcuts and carelessness. We don't want our reader programs to misbehave so BookBuilder insists on careful adherence to the rules.

Some of the common bad practices that BookBuilder will complain about include:

List of Supported HTML Tags and Attributes

Each tag is followed by a list of the attributes explicitly supported by BookBuilder. The interpretation of the tag and attributes may vary from standard HTML, or it may follow it more rigorously than you would like it to.

Any tag may have a bgcolor attribute or a style attribute where one of the styles is background-color.

Any tag may have the white-space style. Values "nowrap" and "normal" function as expected; "pre" functions like the <pre> tag and may not fully function as expected in standard HTML

When an attribute supports only certain values, those values are listed, separated by vertical bars. Optional items are in parenthesis.

ahref=bible: | book: | sync: | #...
areashape
href
coords
b 
basefontOnly supported in the document head
big 
blockquote 
body 
br 
captionalign=top | bottom | left | center | right
valign=top | bottom
colspan
colgroupspan
dd 
dirTreated like <ul>, deprecated
dl 
dt 
fontface
size=(+|-) 1 | 2 | 3 | ... | 7
color
style=background-color
h1
h2
h3
h3
h4
h5
h6
h7
h8
h9
align
color
style=background-color
id
pb_toc
head 
hralign
size
color
noshade
width in pixels or percent of screen width
html 
i 
imgsrc bitmaps only, no gifs or jpgs
align
alt
border
height in pixels
width in pixels or percent of screen width
hspace
vspace
usemap
litype
value
map 
metaname
contents
nobrCannot enclose paragraphs or paragraph-like tags (i.e. tables, lists)
ol 
palign
color
style=background-color
preDisables normal word wrapping; may not switch to monospaced font; may not honor extra spaces and carriage returns as in standard HTML. Honors <br> tag to force a new line.
s 
small 
sub 
sup 
tablecellpadding
cellspacing
border
frame=void | box | above | below | lhs | rhs | hsides | vsides
bodercolor
bordercolordark
bordercolorlight
bgcolor
style=background-color
rules=groups | all | rows | cols | none
tbody 
td
th
colspan
rowspan
bordercolor
bordercolordark
bordercolorlight
bgcolor
style=background-color
valign
align
width in pixels or percent of screen width
nowrap=nowrap
tfootAll recognized tr attributes
theadAll recognized tr attributes
trbordercolor
bordercolordark
bordercolorlight
bgcolor
style=background-color
align
valign
u 
ul 

The following are recognized but are not currently implemented. These may be implemented in future versions.

bgsound
fieldset
form
input
keygen
label
legend
menu
optgroup
option
select
style
textarea
title

Usable Characters and HTML Character Entities

About ASCII and Unicode

In several places in this document we've mentioned "ASCII values". Every letter, digit, or punctuation symbol you type is stored in the computer as a binary number, since computers don't implicitly understand letters and language. A long time ago, a group of programmers came up with a standard correspondence between the characters we see on the screen and the numeric value that represents them in the computer. They call this representation "ASCII" (pronounced "ask-ee").

ASCII can be used to represent all the letters in the English alphabet using values from 1 to 127 (52 upper- and lower-case letters, 10 digits, some control characters like "tab" and "enter", and punctuation). With some extensions using values up to 255, additional languages such as Spanish, French, and German can be accomodated. Since values up to 255 require 8 binary digits (or "bits") to represent, and since there are 8 bits in a byte, any ASCII value can be represented in one byte in the computer.

Several years later some really smart people got together and invented Unicode. Unicode starts with ASCII but uses 16 bits (values up to 65,535) and can represent every character and symbol in every language in the world. The first 255 values in Unicode are identical to ASCII. Other languages, including biblical Greek and Hebrew, use two-byte values to represent their letters.

Laridian uses Unicode internally in its products to represent characters. But because Unicode values are twice as big as ASCII values, and because the vast majority of our work is in English, it's inefficient to waste all that space storing an extra byte for each character. So we actually store text in UTF-8, which is a way of compressing Unicode so it mostly fits in 8-bits.

Because there are few, if any, popular text editing environments available today that output Unicode directly, BookBuilder takes 8-bit input and converts it to Unicode, then to UTF-8. Because UTF-8 uses the values from 128-255 to represent values greater than 255, BookBuilder could potentially get confused if it saw those values in your source document. So we limit you to values from 1-127. The table of usable characters, below, lists the valid characters you can use in your source documents.

Usable Characters

Values from 1 to 31 are control characters like tab, carriage return, and line feed.

ASCII
Value
 CharacterASCII
Value
 CharacterASCII
Value
 Character
32 ;64@96`
33!65A97a
34"66B98b
35#67C99c
36$68D100d
37%69E101e
38&70F102f
39'71G103g
40(72H104h
41)73I105i
42*74J106j
43+75K107k
44,76L108l
45-77M109m
46.78N110n
47/79O111o
48080P112p
49181Q113q
50282R114r
51383S115s
52484T116t
53585U117u
54686V118v
55787W119w
56888X120x
57989Y121y
58:90Z122z
59;91[123{
60<92\124|
61=93]125}
62>94^126~
63?95_127

Implemented Character Entities

If your text editor lets you enter characters like "e with an acute accent", as in "fiancée", you can probably get away with including those characters in your document, as long as they appear in the table below. There are rare circumstances where this can confuse the BookBuilder program, but they are truly rare. It's safer to use the character entities. So instead of entering the character "e with an acute accent" in the word "finacée", use the character entity &eacute;.

The values listed under "Decimal" in the following table are the ASCII values for the characters shown.

Note that your browser may not be able to display all of these characters. They will work on your PDA, though. Characters that can't be displayed by your browser are usually rendered as an empty box.
Description Entity Decimal Character
inverted exclamation mark &iexcl; &#161; ¡
cent sign &cent; &#162; ¢
pound sign &pound; &#163; £
currency sign &curren; &#164; ¤
yen sign = yuan sign &yen; &#165; ¥
broken bar = broken vertical bar &brvbar; &#166; ¦
section sign &sect; &#167; §
diaeresis = spacing diaeresis &uml; &#168; ¨
copyright sign &copy; &#169; ©
feminine ordinal indicator &ordf; &#170; ª
left-pointing double angle quotation mark = left pointing guillemet &laquo; &#171; «
not sign &not; &#172; ¬
soft hyphen = discretionary hyphen &shy; &#173; ­
registered sign = registered trade mark sign &reg; &#174; ®
macron = spacing macron = overline = APL overbar &macr; &#175; ¯
degree sign &deg; &#176; °
plus-minus sign = plus-or-minus sign &plusmn; &#177; ±
superscript two = superscript digit two = squared &sup2; &#178; ²
superscript three = superscript digit three = cubed &sup3; &#179; ³
acute accent = spacing acute &acute; &#180; ´
micro sign &micro; &#181; µ
pilcrow sign = paragraph sign &para; &#182;
middle dot = Georgian comma = Greek middle dot &middot; &#183; ·
cedilla = spacing cedilla &cedil; &#184; ¸
superscript one = superscript digit one &sup1; &#185; ¹
masculine ordinal indicator &ordm; &#186; º
right-pointing double angle quotation mark = right pointing guillemet &raquo; &#187; »
vulgar fraction one quarter = fraction one quarter &frac14; &#188; ¼
vulgar fraction one half = fraction one half &frac12; &#189; ½
vulgar fraction three quarters = fraction three quarters &frac34; &#190; ¾
inverted question mark = turned question mark &iquest; &#191; ¿
Latin capital letter A with grave = Latin capital letter A grave &Agrave; &#192; À
Latin capital letter A with acute &Aacute; &#193; Á
Latin capital letter A with circumflex &Acirc; &#194; Â
Latin capital letter A with tilde &Atilde; &#195; Ã
Latin capital letter A with diaeresis &Auml; &#196; Ä
Latin capital letter A with ring above = Latin capital letter A ring &Aring; &#197; Å
Latin capital letter AE = Latin capital ligature AE &AElig; &#198; Æ
Latin capital letter C with cedilla &Ccedil; &#199; Ç
Latin capital letter E with grave &Egrave; &#200; È
Latin capital letter E with acute &Eacute; &#201; É
Latin capital letter E with circumflex &Ecirc; &#202; Ê
Latin capital letter E with diaeresis &Euml; &#203; Ë
Latin capital letter I with grave &Igrave; &#204; Ì
Latin capital letter I with acute &Iacute; &#205; Í
Latin capital letter I with circumflex &Icirc; &#206; Î
Latin capital letter I with diaeresis &Iuml; &#207; Ï
Latin capital letter ETH &ETH; &#208; Ð
Latin capital letter N with tilde &Ntilde; &#209; Ñ
Latin capital letter O with grave &Ograve; &#210; Ò
Latin capital letter O with acute &Oacute; &#211; Ó
Latin capital letter O with circumflex &Ocirc; &#212; Ô
Latin capital letter O with tilde &Otilde; &#213; Õ
Latin capital letter O with diaeresis &Ouml; &#214; Ö
multiplication sign &times; &#215; ×
Latin capital letter O with stroke = Latin capital letter O slash &Oslash; &#216; Ø
Latin capital letter U with grave &Ugrave; &#217; Ù
Latin capital letter U with acute &Uacute; &#218; Ú
Latin capital letter U with circumflex &Ucirc; &#219; Û
Latin capital letter U with diaeresis &Uuml; &#220; Ü
Latin capital letter Y with acute &Yacute; &#221; Ý
Latin capital letter THORN &THORN; &#222; Þ
Latin small letter sharp s = ess-zed &szlig; &#223; ß
Latin small letter a with grave = Latin small letter a grave &agrave; &#224; à
Latin small letter a with acute &aacute; &#225; á
Latin small letter a with circumflex &acirc; &#226; â
Latin small letter a with tilde &atilde; &#227; ã
Latin small letter a with diaeresis &auml; &#228; ä
Latin small letter a with ring above = Latin small letter a ring &aring; &#229; å
Latin small letter ae = Latin small ligature ae &aelig; &#230; æ
Latin small letter c with cedilla &ccedil; &#231; ç
Latin small letter e with grave &egrave; &#232; è
Latin small letter e with acute &eacute; &#233; é
Latin small letter e with circumflex &ecirc; &#234; ê
Latin small letter e with diaeresis &euml; &#235; ë
Latin small letter i with grave &igrave; &#236; ì
Latin small letter i with acute &iacute; &#237; í
Latin small letter i with circumflex &icirc; &#238; î
Latin small letter i with diaeresis &iuml; &#239; ï
Latin small letter eth &eth; &#240; ð
Latin small letter n with tilde &ntilde; &#241; ñ
Latin small letter o with grave &ograve; &#242; ò
Latin small letter o with acute &oacute; &#243; ó
Latin small letter o with circumflex &ocirc; &#244; ô
Latin small letter o with tilde &otilde; &#245; õ
Latin small letter o with diaeresis &ouml; &#246; ö
division sign &divide; &#247; ÷
Latin small letter o with stroke = Latin small letter o slash &oslash; &#248; ø
Latin small letter u with grave &ugrave; &#249; ù
Latin small letter u with acute &uacute; &#250; ú
Latin small letter u with circumflex &ucirc; &#251; û
Latin small letter u with diaeresis &uuml; &#252; ü
Latin small letter y with acute &yacute; &#253; ý
Latin small letter thorn &thorn; &#254; þ
Latin small letter y with diaeresis &yuml; &#255; ÿ

Palm devices have a limited number of additional special characters available to display. The following are rendered with the best match available on the Palm. Note the "Decimal" column is empty; these characters have high Unicode values and should be entered using the character entity shown, not their decimal Unicode values. Note that the availability of these characters varies depending on the font selected on your device. Also, your browser may not be able to render all of these characters, in which case they may appear as a box.

DescriptionEntityDecimalCharacter
Logical And becomes caret &and;  
Double Low-9 Quote looks like two commas &bdquo;  
Bullet &bull;  
Circumflex Accent non-overstrike &circ;   ˆ
Black Club Suit &clubs;  
Union becomes cap U &cup;  
Dagger &dagger;  
Double Dagger &Dagger;  
Black Diamond Suit &diams;  
Empty Set &empty;  
Em Space becomes a space &emsp;  
En Space becomes a space &ensp;  
Euro Sign &euro;  
Latin Small F with Hook Script f &fnof;   ƒ
Fraction Slash becomes slash &frasl;  
Black Heart Suit &hearts;  
Horizontal Ellipsis &hellip;  
Black-Letter Capital I becomes cap I &image;  
Left-Pointing Angle Bracket becomes less-than &lang;  
Left Double Quote &ldquo;  
Asterisk Operator becomes asterisk &lowast;  
Lozenge white diamond suit &loz;  
Single Left-Pointing Angle Quote looks like less-than &lsaquo;  
Left Single Quote &lsquo;  
Em Dash &mdash;  
Minus Sign becomes hyphen &minus;  
En Dash becomes a hyphen &ndash;  
Not A Subset Of &nsub;  
Latin Capital Ligature OE &OElig;   Œ
Latin Small Ligature OE &oelig;   œ
Overline &oline;  
Logical Or becomes cap V &or;  
Per Mille Sign &permil;  
Prime looks like apostrophe &prime;  
Double Prime &Prime;  
Right-Pointing Angle Bracket becomes greater-than &rang;  
Right Double Quote &rdquo;  
Black-Letter Cap R becomes cap R &real;  
Single Right-Pointing Angle Quote looks like greater-than &rsaquo;  
Right Single Quote &rsquo;  
Single Low-9 Quote looks like comma &sbquo;  
Latin Cap S with Caron &Scaron;   Š
Latin Small S with Caron &scaron;   š
Dot Operator becomes bullet &sdot;  
Tilde Operator &sim;  
Black Spade Suit &spades;  
Thin Space becomes a space &thinsp;  
Tilde &tilde;   ˜
Trade Mark Sign &trade;  
Script Cap P becomes small P &weierp;  
Latin Cap Y with Diaeresis &Yuml;   Ÿ

Recognized Entities

The following character entities are recognized by BookBuilder, though they may not be implemented. See the tables above for implemented character entities.

&Aacute;&Eta;&ndash;&rho;
&aacute;&eta;&ne;&rlm;
&Acirc;&ETH;&ni;&rsaquo;
&acirc;&eth;&not;&rsquo;
&acute;&Euml;&notin;&sbquo;
&AElig;&euml;&nsub;&Scaron;
&aelig;&euro;&Ntilde;&scaron;
&Agrave;&exist;&ntilde;&sdot;
&agrave;&fnof;&Nu;&sect;
&alefsym;&forall;&nu;&shy;
&Alpha;&frac12;&Oacute;&Sigma;
&alpha;&frac14;&oacute;&sigma;
&and;&frac34;&Ocirc;&sigmaf;
&ang;&frasl;&ocirc;&sim;
&apos;&Gamma;&OElig;&spades;
&Aring;&gamma;&oelig;&sub;
&aring;&ge;&Ograve;&sube;
&asymp;&hArr;&ograve;&sum;
&Atilde;&harr;&oline;&sup;
&atilde;&hearts;&Omega;&sup1;
&Auml;&hellip;&omega;&sup2;
&auml;&Iacute;&Omicron;&sup3;
&bdquo;&iacute;&omicron;&supe;
&Beta;&Icirc;&oplus;&szlig;
&beta;&icirc;&or;&Tau;
&brvbar;&iexcl;&ordf;&tau;
&bull;&Igrave;&ordm;&there4;
&cap;&igrave;&Oslash;&Theta;
&Ccedil;&image;&oslash;&theta;
&ccedil;&infin;&Otilde;&thetasym;
&cedil;&int;&otilde;&thinsp;
&cent;&Iota;&otimes;&THORN;
&Chi;&iota;&Ouml;&thorn;
&chi;&iquest;&ouml;&tilde;
&circ;&isin;&para;&times;
&clubs;&Iuml;&part;&trade;
&cong;&iuml;&permil;&Uacute;
&copy;&Kappa;&perp;&uacute;
&crarr;&kappa;&Phi;&uArr;
&cup;&Lambda;&phi;&uarr;
&curren;&lambda;&Pi;&Ucirc;
&Dagger;&lang;&pi;&ucirc;
&dagger;&laquo;&piv;&Ugrave;
&dArr;&lArr;&plusmn;&ugrave;
&darr;&larr;&pound;&uml;
&deg;&lceil;&Prime;&upsih;
&Delta;&ldquo;&prime;&Upsilon;
&delta;&le;&prod;&upsilon;
&diams;&lfloor;&prop;&Uuml;
&divide;&lowast;&Psi;&uuml;
&Eacute;&loz;&psi;&weierp;
&eacute;&lrm;&radic;&Xi;
&Ecirc;&lsaquo;&rang;&xi;
&ecirc;&lsquo;&raquo;&Yacute;
&Egrave;&macr;&rArr;&yacute;
&egrave;&mdash;&rarr;&yen;
&empty;&micro;&rceil;&Yuml;
&emsp;&middot;&rdquo;&yuml;
&ensp;&minus;&real;&Zeta;
&Epsilon;&Mu;&reg;&zeta;
&epsilon;&mu;&rfloor;&zwj;
&equiv;&nabla;&Rho;&zwnj;

Supported Colors

Various HTML tags have attributes that represent colors. There are two common ways to specify a color in an HTML tag: By name and by value. The following table lists the color names that are recognized by BookBuilder, and gives the associated hexadecimal value for each color.

You can use any possible hexadecimal value to represent a color but only the following names are recognized.

Color SampleColor NameHex Representation
 lightpink#ffb6c1
 pink#ffc0cb
 crimson#dc143c
 lavenderblush#fff0f5
 palevioletred#db7093
 hotpink#ff69b4
 deeppink#ff1493
 mediumvioletred#c71585
 orchid#da70d6
 thistle#d8bfd8
 plum#dda0dd
 violet#ee82ee
 fuchsia#ff00ff
 darkmagenta#8b008b
 purple#800080
 mediumorchid#ba55d3
 darkviolet#9400d3
 darkorchid#9932cc
 indigo#4b0082
 blueviolet#8a2be2
 mediumpurple#9370db
 mediumslateblue#7b68ee
 slateblue#6a5acd
 darkslateblue#483d8b
 ghostwhite#f8f8ff
 lavender#e6e6fa
 blue#0000ff
 mediumblue#0000cd
 darkblue#00008b
 navy#000080
 midnightblue#191970
 royalblue#4169e1
 cornflowerblue#6495ed
 lightsteelblue#b0c4de
 lightslategray#778899
 slategray#708090
 dodgerblue#1e90ff
 aliceblue#f0f8ff
 steelblue#4682b4
 lightskyblue#87cefa
 skyblue#87ceeb
 deepskyblue#00bfff
 lightblue#add8e6
 powderblue#b0e0e6
 cadetblue#5f9ea0
 darkturquoise#00ced1
 azure#f0ffff
 lightcyan#e0ffff
 paleturquoise#afeeee
 aqua#00ffff
 darkcyan#008b8b
 teal#008080
 darkslategray#2f4f4f
 mediumturquoise#48d1cc
 lightseagreen#20b2aa
 turquoise#40e0d0
 aquamarine#7fffd4
 mediumaquamarine#66cdaa
 mediumspringgreen#00fa9a
 mintcream#f5fffa
 springgreen#00ff7f
 mediumseagreen#3cb371
 seagreen#2e8b57
 honeydew#f0fff0
 darkseagreen#8fbc8f
 palegreen#98fb98
 lightgreen#90ee90
 limegreen#32cd32
 lime#00ff00
 forestgreen#228b22
 green#008000
 darkgreen#006400
 lawngreen#7cfc00
 chartreuse#7fff00
 greenyellow#adff2f
 darkolivegreen#556b2f
 yellowgreen#9acd32
 olivedrab#6b8e23
 ivory#fffff0
 beige#f5f5dc
 lightyellow#ffffe0
 lightgoldenrodyellow#fafad2
 yellow#ffff00
 olive#808000
 darkkhaki#bdb76b
 palegoldenrod#eee8aa
 lemonchiffon#fffacd
 khaki#f0e68c
 gold#ffd700
 cornsilk#fff8dc
 goldenrod#daa520
 darkgoldenrod#b8860b
 floralwhite#fffaf0
 oldlace#fdf5e6
 wheat#f5deb3
 orange#ffa500
 moccasin#ffe4b5
 papayawhip#ffefd5
 blanchedalmond#ffebcd
 navajowhite#ffdead
 antiquewhite#faebd7
 tan#d2b48c
 burlywood#deb887
 darkorange#ff8c00
 bisque#ffe4c4
 linen#faf0e6
 peru#cd853f
 peachpuff#ffdab9
 sandybrown#f4a460
 chocolate#d2691e
 saddlebrown#8b4513
 seashell#fff5ee
 sienna#a0522d
 lightsalmon#ffa07a
 coral#ff7f50
 orangered#ff4500
 darksalmon#e9967a
 tomato#ff6347
 salmon#fa8072
 mistyrose#ffe4e1
 lightcoral#f08080
 snow#fffafa
 rosybrown#bc8f8f
 indianred#cd5c5c
 red#ff0000
 brown#a52a2a
 firebrick#b22222
 darkred#8b0000
 maroon#800000
 white#ffffff
 whitesmoke#f5f5f5
 gainsboro#dcdcdc
 lightgrey#d3d3d3
 silver#c0c0c0
 darkgray#a9a9a9
 gray#808080
 dimgray#696969
 black#000000

Contents

Introduction

Reference Section

Building Your Book

Miscellaneous Topics

Appendices