Title Page

Laridian® BookBuilder Professional

For PocketBible® Family of Bible Software


Overview

The BookBuilder program gives you the ability to create books that can be used in PocketBible. The general process one uses to create books is to start with the text of the book (perhaps something you've written yourself or public domain text you've downloaded from the Web); add HTML tags to indicate paragraphs, text styles, etc.; then process the text using the tools provided by BookBuilder to create a Laridian book (.lbk) file. This file can be installed into PocketBible for Mac OS X automatically from BookBuilder, or you can copy it to another device, such as an iPhone or Android device. (The process for installing a book into PocketBible varies by platform.)

This document describes how to tag books and how to use the features of BookBuilder to convert tagged documents to Laridian books (.lbk files).

BookBuilder is actually a suite of tools. The Professional edition of BookBuilder includes two tools that aid in the creation of tagged source documents. The first analyzes your source document on a character-by-character and tag-by-tag basis and tells you what it finds. This can help you convert text from one tagging format to one that is compatible with BookBuilder. We refer to this as "document analysis" and the tool itself as DocAnalyzer.

The second tool included in the Professional edition attempts to automatically link Bible references to your Bible(s) in PocketBible. It not only links obvious references like "John 3:16" but also attempts to link ambiguous references like "verse 16" by examining the context to determine the book and chapter to use. We refer to this process as "linking verses" and the tool itself as VerseLinker.

Both the Standard and Professional editions of BookBuilder allow you to build a Laridian book from a tagged source using the BookBuilder tool.

Furthermore, owning the Professional edition puts you in a special relationship with Laridian that allows you to safely distribute your books to other PocketBible users. Owners of the Professional edition can submit their books to Laridian for assignment of a unique Publisher ID and Book ID, which guarantees that their books won't interfere with other user-created books installed in PocketBible on anyone else's system. They can also have their books hosted on the Laridian Cloud server so they can be installed onto iOS and other devices that limit you to installing books from your download account on the Laridian server.

This User Guide discusses features of both the Mac OS X and Windows versions of BookBuilder. There is only a small number of features that are available only on one version or the other, and these will be noted. But for the most part, the programs are functionally similar. The user interface, however, is different.


Getting Started

Step-by-Step Instructions

Creating books for PocketBible involves these steps:

  1. Review the documentation and the sample books and get familiar with the process of creating PocketBible books.
  2. Acquire or write your book, preferably using HTML markup to tag the text. Professional edition users will use the DocAnalyzer tool during and after this process to validate their file and make sure it's ready to be built.
  3. Add some special tags required by PocketBible, including the meta tags that identify your book; synchronization tags for commentary, dictionary, and devotional books; Bible reference links; and the heading attributes that define your book's table of contents. Professional edition users will use the VerseLinker tool to automatically link Bible references in their book.
  4. Run the BookBuilder tool on your file to create the Laridian Book (.lbk) file required by PocketBible.
  5. Load your book into PocketBible (BookBuilder does this for you automatically if you wish) and review it. Review the log file generated by BookBuilder and correct any errors you find.
  6. Repeat the build-and-review process until your book is complete.
  7. If you are distributing your book to others (whether for sale or for free) and you own the Professional edition of BookBuilder, submit your file to Laridian for assignment of an official Publisher ID and Book ID and, if you wish, installation on our server so that it can be installed more easily.

The remainder of this section of the User Guide will describe the process in more detail. The reference section describes the syntax of the tags that BookBuilder expects to see in your books. If you own the Professional edition of BookBuilder, this User Guide will contain sections describing the DocAnalyzer and VerseLinker tools.

Avoiding Common Mistakes

You will avoid 99% of the most common problems people have if you read and follow the advice in this section to the letter.

Use a plain-text editor, not your word processor, to create your book. Word processors are designed to let you easily format documents to look nice when you print them. They have their own proprietary file format, which you won't be using. You'll be saving your files as text (or UTF8) files. You will be using HTML tags to stylize the text (for example, using <i> for italics and <b> for bold rather than using the "what you see is what you get" (WYSIWYG) features of your fancy word processor. Text editors like TextPad on Windows and TextWrangler on OS X are designed to create and manipulate the type of files you will be creating for BookBuilder.

Use a standard apostrophe in contractions, not a right single quote. A word like "don&rsquo;t" will work and will be rendered as "don’t" in PocketBible, but it will be split into two words in the PocketBible word list ("don" and "t") and you won't be able to search for it. Instead use a plain single quote or apostrophe character. "Don't" doesn't look as fancy but it works right.

If you use a word processor (against our advice), save your file as text, not HTML. You'll be tempted to avoid having to learn how to write HTML tags by just having your word processor save your file as HTML, but in so doing it will add all kinds of tags that BookBuilder won't recognize. Your word processor tries to hard to make the resulting HTML file exactly match what you see while you're editing (which is why they call it WYSIWYG). So it will include information about the font, font size, line spacing, paragraph indenting, margins, tabs, and all kinds of other detail that PocketBible does not need. (In PocketBible, the user selects the appearance of most of these items, not the book author.)

Save your files as UTF8 without a BOM (byte-order mark) or as 7-bit ASCII. You can use the ASCII format if your file does not contain any characters other than the alphabet, digits, and standard punctuation. If your file contains any “curly quotes” (as opposed to "straight quotes") or Greek/Hebrew characters, you need to save your file as UTF8.

If you do not have the option to create UTF8 files, you can use character entities for Greek/Hebrew and all other characters that cannot be represented in 7-bit ASCII.

Use DocAnalyzer. (BookBuilder Pro feature) DocAnalyzer will find any stray characters in your file that are unrecognized by BookBuilder. It will save you from dreaded "Unrecognized token" errors.

Read the documentation. BookBuilder is a challenging program to use. Our Tech Support staff are not as familiar with it as they are PocketBible. Tech Support will refer to this User Guide to answer your questions and most of the time they will find the answer here. You can save yourself a lot of time by doing that yourself instead of waiting for a reply from Tech Support.


Creating 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 some of the most challenging aspects of HTML to master. BookBuilder does support paragraph alignment, bold, italics, and underline, which are all relatively simple to understand. Perhaps the most difficult construct supported by BookBuilder is the <table> tag, though simple tables are easy to create in HTML.

Special text 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 one of two text editors, depending on your operating system. Both of these programs have powerful search and replace functions, which you'll find yourself using often when tagging books. They also handles large files well, and when you're editing an .htm (HTML) file they color your tags to make them easier to see.

Once your document is tagged, you'll run it through the BookBuilder program to create an .lbk 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. BookBuilder will show you the log file after each BookBuilder session, but if you want to review it later, it is located in the same folder as your original file. The log file has the same file name as your original file, but with the extension .log.

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 book into the appropriate folder to view it with PocketBible. The Mac OS X version of BookBuilder has an option to install the book and launch PocketBible automatically. For the Windows version, you'll need to locate the other .lbk files that PocketBible is using and copy your file into that folder. You may need to exit and re-launch PocketBible so that it can find your book. To install it into other versions of PocketBible (say, on your iPhone or iPad), follow the instructions for installing user-created books that you'll find in the PocketBible User Guide for your version of PocketBible.


Copyright Issues

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, website, 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 old-fashioned 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

Limitations on Distribution

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.


Distributing for iOS

iOS presents some unusual problems since all products must be downloaded and installed from the App Store.

Starting with version 2.0.4 of PocketBible for iOS, you can use iTunes file sharing to drop .lbk files that you create into PocketBible. Note that you cannot use this feature to install just any LBK file into PocketBible. It must be a book you have created with BookBuilder. Even the books you submit to Laridian as a BookBuilder Professional owner cannot be installed using this method.

See the PocketBible User's Guide for an explanation of how to use iTunes file sharing with PocketBible for iOS.

Other than the limited use of iTunes file sharing described above, PocketBible for iOS downloads books directly from our server into its sand box. That means that your books need to be on our server in order for users to download them to their phone. If you are a BookBuilder Professional owner, you can ask us to put your books on our server. Once we do this, you'll be able to log into your account on our server and control who has access to your book.

So if you're just creating books for yourself or a couple friends, you can use iTunes file sharing to install the books in PocketBible. Just beware of Book ID conflicts.


Selling or Giving Away Your Books

If you're distributing to a large number of people, use BookBuilder Professional to create your books, then submit them to Laridian for processing. Once we've put the book on our server, you can log into your account at our website and enable your "customers" to download your book. You just need each person's Customer ID to authorize them to download. This can become cumbersome for very large numbers of users, of course, because it's a manual process.

If you are selling your book on your own e-commerce site, or even if you're giving your book away in large numbers, we offer an automated way to authorize customers to download your book. Contact us if you would like to integrate this approval into your e-commerce site and we'll provide you an interface you can use from your site to automatically authorize people who purchase from you to download from us. Note that this requires relatively extensive Web programming experience that involves being able to execute a script on successful purchase from your site. Again, contact Tech Support for details.


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.


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.

To install the sample books, select Export Samples from the Tools menu in BookBuilder. The sample files will be copied into the folder you choose.

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 install them in PocketBible to experiment with the process.


PocketBible Books and HTML

What is HTML?

PocketBible books use HTML tags to indicate the start of paragraphs, italicized text, headings, tables, numbered lists, etc. When you learn a few simple tags you can create valid HTML documents quickly and easily.

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, OS X, etc.) or viewer (Safari, Chrome, Internet Explorer, Firefox, etc.). For this reason it's a popular document format.

This User Guide 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 on the Web.


Authoring/Editing Your Book

HTML documents must be created with a plain-text editor like TextWrangler (www.barebones.com) or TextPad (www.textpad.com). If you ignore our advice and choose to use full-featured word processors like Microsoft Word, make sure you save your document as a plain-text (.txt) file, not in Word's native format (.docx) or HTML (.htm). If you save in Word's .docx 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.

This bears repeating: Do not use Word to create your HTML files. Word adds all kinds of extra, unsupported tags into your document. Use a simple text editor like those recommended above.


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. You can see a complete list of the characters you're allowed to type into your book here.

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 all devices. A complete list of supported character entities can be found here. If you plan to use anything "unusual" you will want to test it on your target device. In general, OS X and iOS can display just about anything; Android and Windows may have trouble with some character entities.

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;). You'll use these to include Greek and Hebrew words in your book if you need them.

A similar form of character entity is &#xhexdigits;, where hexdigits 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. In this form, the quotation mark (ASCII 34) is &#x22; and the lowercase Greek letter alpha (Unicode U+03D1) is &#x03D1;.

Originally, BookBuilder required that any character outside of standard letters, numbers, and punctuation had to be encoded as a character entity. This included punctuation like “curly quotes” and especially Greek and Hebrew letters. More recent editions of BookBuilder include support for UTF8 files, which is a special file format that permits you to use any Unicode character directly in your file without turning it into a character entity.

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 PocketBible Books

HTML files have a head and a body, which are both wrapped by an opening and closing <html> and </html> tag. 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, Inc.">
<meta name="pb_author" content="Hughes, Robert B and J. Carl Laney">
<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, Inc.">
<meta name="pb_author" content="Elwell, Walter A.">
<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">

A typical Bible is slightly different and looks like this:

<meta name="pb_title" content="My Custom Bible Version">
<meta name="pb_abbrev" content="MYCBV">
<meta name="pb_copyright" content="Copyright &copy; 2015 by Laridian, Inc. All Rights Reserved.">
<meta name="pb_publisher" content="Laridian, Inc.">
<meta name="pb_city" content="Cedar Rapids, IA">
<meta name="pb_date" content="2015">
<meta name="pb_pubid" content="1">
<meta name="pb_bookid" content="101">
<meta name="pb_editionid" content="1">
<meta name="pb_revisionid" content="1">
<meta name="pb_synctype" content="verse">
<meta name="pb_isabible" content="yes">
<meta name="pb_biblebooks" content="KJV">
<meta name="pb_searchrange" content="OT=Gen-Mal">
<meta name="pb_searchrange" content="NT=Mat-Rev">
<meta name="pb_searchrange" content="Bible=Gen-Rev">

A devotional looks like this:

<meta name="pb_title" content="Streams in the Desert">
<meta name="pb_abbrev" content="STRM">
<meta name="pb_copyright" content="Copyright &copy; 1997 by The Zondervan Corporation. This updated edition is based on the original text of <i>Streams in the Desert</i> Copyright 1925, 1953 and 1965 by Cowman Publications, Inc. and Copyright &copy; 1996 by The Zondervan Corporation. Used by permission. All Rights Reserved.">
<meta name="pb_publisher" content="Laridian, Inc.">
<meta name="pb_author" content="Cowman, L. B.">
<meta name="pb_city" content="Cedar Rapids, IA">
<meta name="pb_date" content="1999">
<meta name="pb_pubid" content="101">
<meta name="pb_bookid" content="105">
<meta name="pb_editionid" content="2">
<meta name="pb_revisionid" content="1">
<meta name="pb_synctype" content="date">
<meta name="pb_startdate" content="01/01">


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>.

For reference books (not Bibles), 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?

For Bibles, the table of contents is built around the books, chapters, and verses included in the text. Verses are delimited by <pb_sync type="verse" value=... display=...> tags.


Managing Large Books

Sometimes a book can get too large to effectively manage in one large file. Consider a large commentary series or encyclopaedia. It can get unwieldy to handle such a large file.

BookBuilder allows you to split the body of your book up into separate files, then use the Include File feature to create a "parent book" that consists of instructions for pulling the actual contents of the book together from the component files. You will probably not make use of this feature. But it's there if you need it.

See Include Files for details.


Defining the Organizational Structure of Your Book

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.

For Bibles, both of these structures are the same. They are defined by books, chapters, and verses that are included in the Bible.

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.

A dictionary will have a table of contents, most likely a list of words or phrases organized alphabetically. There might be major sections for each letter of the alphabet, with words that start with that letter beneath. It will also have a synchronization index in which individual words or phrases are connected to a particular place in the book where the definition of that word can be found.

For devotionals, we tend to ignore the table of contents and present a calendar which the user employs to navigate the book (since there is a reading for each day of the year). The synchronization index is organized by date, associating a reading with each day.

Books we categorize as "other books" have a table of contents but no synchronization index. They are not organized by verse of the Bible like a commentary, nor by word like a dictionary, nor by date like a devotional.

The table of contents and syncrhonization index are discussed in the next two sections.

Table of Contents

Some ebook formats require you to create and maintain a separate table of contents document in addition to your text. This is not the case with PocketBible. The table of contents is created automatically, usually based on the HTML heading tags in your document.

The table of contents for a reference book 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. You also need to be sure that you follow a strict outline format as you use the heading tags. That is, <h2> tags need to follow <h1> tags, and <h3> tags need to follow <h2> tags. You can't start your book with an <h4> tag, then put <h7> tags beneath that just because you like the smaller size of the text. We'll talk about how to avoid the text size problems introduced by using heading tags later.

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.

Bibles do not make use of these special heading tags. Instead, the <pb_sync> tag is used to identify where each verse starts. The reader program will present the user with a verse navigation method, where he or she can choose the book, chapter and verse they want to go to, and the program will take them there. You do not include the heading tags described above when tagging Bibles.


Versification

Contrary to popular belief, the way the Bible is divided into verses is not standardized. Translators each make their own decisions about the way verses should be numbered, often following the scheme used by their predecessors and sometimes creating a new scheme. But even when following a previously devised scheme, they may follow the same versification as one Bible for some books and another Bible for others.

It is necessary for PocketBible to know how your Bible is versified so that it can make bookmarks, notes, and highlights work between Bibles. For example, if you set a book mark on Psalm 31:3 in the KJV ("For thou art my rock and my fortress...") then try to follow that bookmark in the Complete Jewish Bible, without knowledge of the versification schemes between these two Bibles, you would end up at Psalm 31:3 in the CJB ("Turn your ear toward me, come quickly to my rescue..."), which is verse 2 in the KJV.

Because versification is so central to the way PocketBible works, it needs to be hard-coded in PocketBible. It would be too difficult for us to explain and for you to implement versification mapping in your Bible using BookBuilder. But if you can't specify the versification scheme of your Bible, it can't really be used in PocketBible. To address this problem, we give you the ability to specify the versification of your new Bible by referring to the scheme of each book used in Bibles BookBuilder already knows about. You do this using the pb_biblebooks meta tag. See the description of that tag here.

The way this works is that you list all the books in your Bible along with the abbreviation of a known translation that follows the same versification scheme. This requires you to look at every chapter of every book of your Bible and verify that it is divided into verses in the same way as the other Bible. This is a non-trivial task, but is necessary in order for your Bible to work with the rest of your PocketBible library.

Because of the way PocketBible thinks about Bibles, everything (and we mean everything) in your Bible must belong to a verse. This raises immediate problems when considering the “Front Matter” (title page, preface, introduction, etc.) and “Back Matter” (charts and tables, maps, glossaries, study helps, etc.) in your Bible.

We don't normally think of Front Matter and Back Matter as being a “book of the Bible” but in PocketBible, we do. Everything that comes before Genesis needs to be tagged as a verse in the Front Matter book (abbreviated FntM) and everything after Revelation needs to be tagged as belonging to the Back Matter (BckM) book.

The Front Matter is always a single-chapter book, like Obadiah or 3 John. That is, it contains verses like FntM 1, FntM 2, FntM 3, etc. and not FntM 3:16. This means you are limited to 176 “verses” in your Front Matter. We usually tag each major section of the Front Matter as a “verse”. You could get away with tagging the entire Front Matter as FntM 1, but you'll find that PocketBible performs better if you break your Front Matter up into smaller pieces.

The Back Matter book can be either a single-chapter book or a multi-chapter book. For the pb_biblebooks meta tag, use BckM (KJV) for a single-chapter Back Matter book, or BckM (TNIV) for a multi-chapter Back Matter book. Again, single-chapter books are limited to 176 verses. Multi-chapter books are limited to 150 chapters, each of which can have 176 verses.

If your Bible has a glossary, you can use Glossary (CJB) to get a multi-chapter glossary book. It is subject to the same limits on chapters and verses as the multi-chapter Back Matter.

Note that for Front Matter and Back Matter in your Bible, it's not necessary that your new Bible exactly match the content of another Bible. The only reason we require you to reference a known Bible translation is to tell BookBuilder whether you're talking about a single-chapter or multi-chapter book.


Synchronization

There are many generic book readers on the market that allow you to use your phone or tablet 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 dictionaries, we tell PocketBible 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 to Bible Verses and Other Books

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 the reader 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 the reader 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.


Running DocAnalyzer (Pro)

Overview

Creating HTML documents to use with BookBuilder can be a challenging task. Computers read tags with ease, but we need a little help. DocAnalyzer can help you solve problems you might encounter while building a book, point out trouble spots in your HTML, and give you some good statistical information about the book you're creating. Whether you're publishing your own work or formatting an already published work to use with Laridian's many book readers, DocAnalyzer can be a big help.

In A Nutshell

When you create a book yourself and run it through BookBuilder, you have total control over the original file and it's unlikely you'll insert anything into the file that is problematic. If you do, it's easy to find since it's your book. If, on the other hand, you download a book from the Web, or (like us at Laridian) you receive a file from a third party (the author or publisher), you really don't know what's in the file. If it's large, there could be small things hiding there that would be difficult to see if you had to depend on just reading the file on your computer screen.

Files you receive from an author or publisher will most likely use a tagging scheme that is not compatible with BookBuilder. Bible references might look like “4003016” instead of John 3:16. Headings may be delimited with a tag like <p class="heading-1">. Bold and italics might be marked as “...this is [BO]bold[RO] and this is [IT]italic[RO]...”. While you might be able to discover most of these by just examining the file, DocAnalyzer will look at every single character in every single line and find every single occurrence of these odd tags. Thus it is the source of your first “to-do list” when coming up with a strategy for tagging a file.

There are two times when you use DocAnalyzer. First, you will want to run DocAnalyzer on a document you have downloaded from the Web or received from an author or publisher prior to beginning to tag that document. Your goal in doing this is to come up with a full list of:

  1. tags or attributes are not recognized by BookBuilder and therefore need to be removed or changed,
  2. tags that serve as clues for the location of your headings (for the table of contents) or synchronization points (<pb_sync> tags),
  3. characters that are not recognized by BookBuilder,
  4. tags that might be missing their corresponding closing tags (i.e. there are more <ol> tags than </ol> tags)

Second, you can use DocAnalyzer during the tagging process to verify that you haven't left any unrecognized tags in the document or inserted any illegal characters.

When you run DocAnalyzer, an HTML document is produced that is called original document name.docanalyzer.htm in the same directory where your HTML document is saved. It is also displayed to you in the DocAnalyzer tool. This is referred to as the output file throughout the rest of this documentation. The output file will have a wealth of information in it, including a statistical analysis of every character in your HTML file, all of the tags used, and warnings about possible problems with your HTML file.


About this Documentation

This document consists of two sections, one that details the options and operation of DocAnalyzer, which is fairly straightforward, and a section with practical help in using the information in the DocAnalyzer output file.


DocAnalyzer Options and Operations

The DocAnalyzer Window

DocAnalyzer is one of the tools you'll find in the Tools menu. Select DocAnalyzer from the Tools menu to run it. It is a BookBuilder Pro feature and is not available in the Standard edition of BookBuilder.

Begin by clicking the Browse button to choose the file you want to analyze. You can only analyze one HTML file at a time.

Usually the other options can be left as their defaults. Just click Go! and DocAnalyzer will go to work. You can see it working in the status field at the bottom of the window. When the program has completed its analysis, it will display the log file. You will also find the log file in the same folder as your original document. You can simply select it in the Finder to view it in your browser if you'd like.

Note: DocAnalyzer overwrites any previously created output file, or any file named original document name.docanalyzer.htm. If you wish to keep previous output, it is recommended that you rename the file (but keep the extension .htm) or move it out of the folder containing your original file.


Options

The options in DocAnalyzer can usually be left in their default mode, but in some cases you may want to change the options.

Tags

DocAnalyzer assumes the file you are starting from is some kind of tagged file that conforms to HTML or XML tagging standards. Tags in these languages look like this:

start-delimiter tag-name attribute-name = value end-delimiter

Where the start-delimiter is the less-than character (<); tag-name is the name of the tag, like “p” for “paragraph” or “ul” for “unordered list”; attribute-name is the name of a tag attribute, like “align” to change the alignment of a paragraph; value is the value of the attribute, like “center” to center a paragraph on the screen; and end-delimiter is a greater-than sign (>). A tag can have zero or more attribute/value pairs, and attribute values can be in quotes (and must be, if they contain a space). Here are some examples of HTML tags:

<a href="bible:John 3:16">
<b>
<meta name=pb_title value="The Holy Bible" />

By default, DocAnalyzer is configured to analyze HTML or XML files, but if your file is in some other format where the tags coincidentally follow this syntax, you can change the start and end characters to support your file format.

Your file may contain tags that are not supported by BookBuilder, so you will need to find and change those tags. When you check the Analyze Tags checkbox, DocAnalyzer will create a list of all the tags it finds in your document. If your document isn't tagged or uses some very unusual tagging format that DocAnalyzer can't distinguish from the surrounding text, you might want to disable the option to analyze tags.

As mentioned above, HTML and XML tags start with < and end with >, and BookBuilder requires these kind of tags. But if your document is tagged with other beginning and ending characters, you may change these to reflect those characters. For example, we've seen books where square brackets (“[” and “]”) were used to delimit tags. As long as the tags in your document have some known beginning and ending sequence, you can use DocAnalyzer to come up with a list of all the tags in your document.

We've seen files where each paragraph started with a pound-sign (#) and a letter describing the type of paragraph it was (for example, “L” for left-justified, “R” for right-justified, “I” for indented, etc.). DocAnalyzer isn't going to help you analyze this type of file (unless it also happens to contain HTML-like tags for bold or italic text).

While there are limits, there are also some creative uses of this functionality that might be helpful. For example, if your book contains a number of parenthesized elements (like Strong's numbers or cross-references), you could set the start and end tag characters to “(” and “)” and DocAnalyzer will produce a list of everything it finds in parenthesis in your file.

Character Entities

“Character entities” refers to the way that special characters are represented in HTML. For instance to display & in the browser, the character entity &amp; is used. While BookBuilder will recognize all the standard character entities in HTML, our PocketBible program may not support all character entities on every platform. With that in mind, it's helpful to have a list of every character entity in your document so you can verify there is nothing there that will trip up PocketBible.

In the Character Entities box you may opt to not analyze character entities. Uncheck the Analyze Character Entities checkbox to skip this analysis.

HTML character entities begin with ampersand (&) and end with semicolon (;), and are generally less than 10 characters long. You may change these options in the Character Entities box. As with the tags, enter the characters that start and end the character entities and change the Max Length as desired. For example, we've seen files from publishers where special characters simply appeared in parenthesis, like “(emdash)” or “(ellipsis)”. In this case you could replace the start and end characters with “(” and “)” and DocAnalyzer will list all the special characters it finds named between parenthesis.


Using DocAnalyzer to Improve Your Book

The DocAnalyzer Output File

If you want to revisit the output file outside the DocAnalyzer tool, simply double-click it in Finder your default Web browser will open the file.

Note: If you run DocAnalyzer multiple times, and view the results in a Web browser, you will have to click the refresh button on the Web browser tool bar (usually looks like a circular arrow) to see the new file. Browsers do not automatically update when the underlying HTML changes.

File Information

The first part of the output file is the name of the file processed and the file length.

Character information

About Character Encoding

It is difficult to explain the concept of "character encoding" without getting far more technical than we want to have to explain here. Suffice to say that the files you create for processing by BookBuilder should be saved as "Unicode UTF8 without a byte-order mark (BOM)". The TextWrangler program we recommend for OS X calls this encoding "Unicode (UTF8)". In the Windows editor, TextPad, it is "UTF-8".

If you get an error in your DocAnalyzer log that says some of your characters may not be encoded as UTF8, you should verify the encoding used by your text editor.

Character Count Table

Following the file information is some important character information. There is a count of each character in the file in a table. The first column of the table is the ASCII value. This is the number that is understood by the computer that represents the character. For instance, capital A has an ASCII value of 65 while lower case a has an ASCII value of 97.

The third column in the character count table is the number of times a character appears in the HTML file, whether it is in a tag or outside a tag.

UTF8 Character Count Table

ASCII values from 1 to 127 can be contained in one byte using UTF8 encoding. Character values greater than 127 are encoded in two or more bytes, and each byte has a value greater than 127. The first 127 characters are displayed in the Character Count Table described above. Remaining characters appear in the UTF8 Character Count Table.

The first column in the table gives the Unicode value, similar to the ASCII value above. The second column displays the character, and the third column gives the count. If there are multibyte, UTF8 characters in your HTML file, this table will not appear.

As long as every character with an ASCII value greater than 127 is part of a UTF8 character sequence, you won't have trouble building your book with BookBuilder. If DocAnalyzer is not able to translate every byte in your file that is greater than 127 into a UTF8 character, it will display a warning message. Usually the problem in this case is that your file is not UTF8-encoded.

Count of Character Entities Table

This table lists every character entity used in your HTML file and the number of times it appears. If your HTML file has no character entities, the table will not appear, though the title “Count of character entities” will.

Tag Information

Count of Tags Table (a.k.a. Tags Table)

The first table in the Tag Information section is the Count of tags table, referred to in this documentation as the Tags table. This table lists every tag used in your document in alphabetical order. The tag delimiter (usually < >) is not shown. Ending tags usually being with a forward slash (/) and are listed near the top of the table. See below for how to use this information effectively.

Count of Tag Attributes Table (a.k.a. Attributes Table)

The next table, referred to as the Attribute table, lists every tag again in the first column. The second column lists each attribute of the tags. An attribute gives more information for the reader to use about the tag. For instance, your document may have counted 17 meta tags in the Tags table. In this table you will see a row that lists the tag meta in the first column twice. The first time is the attribute “content” and the second time the attribute is “name” because meta tags often have two attributes. Some tags don't have any attributes, such as the italics (<i>) tag. Tags with no attributes are not listed in this table.

Note: HTML comments are usually tagged <!-- comment information -->. In the output file you will find a count for the tag !-- in the Tags table, and in the Attributes table each comment will appear as an attribute.

Note: If you end tags with a forward slash (/) before the >, as with pb_sync tags, the forward slash will appear as an attribute. This is normal.

Count of Tag Attribute Values Table (a.k.a. Values Table)

This table, referred to as the Values table, will most likely be the largest table in the output. Now each tag is listed in the first column, each attribute is listed in the second column and each value for each attribute is listed in the third column, with a count of each value in the final column.

The Values table now lists each tag and each attribute separately and gives the value each attribute had. The count shows how many times that value for that attribute with that tag is used.


Using the DocAnalyzer Output File

Using Tag Information

Balancing Tags

BookBuilder requires opening and closing tags for most of the HTML tags used. And when it can't find them the process will fail. DocAnalyzer lists out each tag in the Tag table which can be helpful to make sure your tags are balanced (a start tag with an end tag).

Inspect the Tag table counts of each tag, and look to make sure the corresponding end tag has the same count. For instance, if your document has 4 <li> tags then it should have 4 </li> tags as well. Unfortunately DocAnalyzer can't help you find where missing tags ought to go, but it will get you pointed in the right direction.

Clues for Problems

DocAnalyzer can clue you in to potential problems by looking at the count of certain tags. For instance, The King James Version has 31,102 verses, therefore you should have 31,102 <pb_sync> tags with the attribute type equal to word if you're doing a verse-by-verse commentary. If you only have 200, you've probably missed something. Inspecting the counts of tags, especially those specific to BookBuilder, can help you find errors that might not throw an error in BookBuilder.


Running VerseLinker (Pro)

Overview

The Problem

One of the things that gives electronic Bible study an advantage over using printed books are the links that can be created between reference books and Bibles. While this is a great advantage, it is also a great burden on reference book authors and editors, who have to manually “tag” the text to create those links. That is, they insert special codes into the text to tell the Bible reader software that a particular word or reference in the text should be linked to a particular Bible verse.

Authors of new reference books can structure their text to simplify the tagging process. For example, always fully specifying a reference (like saying “John 3:16” instead of “verse 16”) helps automated tools find and tag references automatically. But those working with existing manuscripts from authors who were not bound by the rigors of creating well formed documents that are easy to processes electronically find themselves mired in various conventions with respect to Bible verse citations.

In short, VerseLinker is a tool that takes text like this:

In John 3:16 we find the motive for God's gift...
verse 17 emphasizes Jesus' role as savior, not as judge, for those
who believe.

... and turns it into:

In John 3:16 we find the motive for God's gift... verse 17 emphasizes Jesus' role as savior, not as judge, for those who believe.

... without turning this:

Jesus had over 100 disciples who followed him in the 3 short years of his ministry. Among these he chose 12 we know by name, and from the 12, 3 as his inner circle.

... into this:

Jesus had over 100 disciples who followed him in the 3 short years of his ministry. Among these he chose 12 we know by name, and from the 12, 3 as his inner circle.

(where all the numbers have been linked to Bible verses because the program couldn't distinguish between verse numbers and other uses of numbers in the text).


The Solution

VerseLinker is a tool we developed to help our editors find and tag Bible references in a document so that those Bible references can be linked to the Bibles in PocketBible. VerseLinker uses sophisticated algorithms to seek out Bible references within a document and surrounds them with tags that make it easy for BookBuilder to create links to the Bible itself.


Philosophy and Implementation

In reviewing the processes used by our friends at other Bible software companies to solve this problem, we found a couple of approaches:

We found both of these approaches unacceptable. We needed at least a semi-automated tool so that we wouldn't be wasting hours performing a repetitive manual task. But we didn't want it so automated that it made gross mistakes — no matter how quickly it ran.

Because we want accurate results, VerseLinker is an interactive program. It requires your concentration but in the end gives you a very accurately tagged book — assuming you were paying attention in the process. It will automatically link unambiguous references like “John 3:16” and even complex references like “Gen 1:1-2:3; Ps 102:25; Jn 1:1-2”. It's smart enough to know that “10 kings” is not a Bible references, but that “1 Kings 10” is. And it can even understand that parenthesized numbers like (1) this and (2) this may not be references to verses 1 and 2.

When it encounters an ambiguous situation like “10:10” it stops and asks you what to do. It reads the text and picks up context so that it can guess what book of the Bible “10:10” may refer to. It gives you its best guess and allows you to choose that with one click of the mouse. It also gives you the ability to manually override its guess or to tell it that this isn't a Bible reference at all.

The program is designed to be run in several sessions if you have a very large source document. At any time in the process you can stop what you're doing. The program will save a partially tagged version of your file. When you are ready to continue, just run the program again and it picks up where you left off.


Preparing Your Text

Basic Text Editing Tips

If you are an author creating a document from scratch, there are some things you can do to improve the performance of VerseLinker and save yourself a lot of time when linking Bible references. Some of these ideas can also be applied when you're the editor of an existing text and trying to improve its chances of running through VerseLinker with as little manual intervention as possible.


When to Run VerseLinker

We've found it's best to do all the rest of your tagging and editing before running VerseLinker. There are several reasons for this:

So get your book so it builds with BookBuilder, works well in PocketBible, and, if it's a commentary, has all the correct synchronization tags so you can sync it to your Bible and have it follow along. Then run VerseLinker and do your final pass through BookBuilder, followed by a thorough proofreading pass that exercises as many links as you have time for.


VerseLinker Window

To run VerseLinker, select VerseLinker from the Tools menu.

Observe the following areas of the program interface:

File Input Area
Contains a field for display of the file name you're processing. Select the Browse... button to select a file, then select either the Pre-Link or Go! button to start linking (see instructions below).
Recent Lines
The large box in the center of the dialog shows the last few lines that have been processed when the program stops to ask for your input. This is not an edit area; you can't change the text here. It is here only to show you the context of the line on which the program has stopped so you can better determine what to do.
Status Area
Below the Recent Lines window, there is a progress bar representing your position in the input file. Below that is a line for status messages from the program that might help you choose the correct book and chapter.
Context Area
Book Context and Chapter Context fields show you the name of the book and chapter in that book that the program considers the “context” of the potential verse reference it has stopped to ask you about. To change the book and chapter in the Accept text (see below), it is best to change these Book Context and (optionally) Chapter Context fields, then select the Use This button to cause the book and chapter you've entered to be inserted into the Accept field.
My Last Entry Area
When you change the Book Context or Chapter Context fields, the text you enter is copied into My Last Book and My Last Chapter. This is sometimes helpful when you find yourself having to repeatedly type the same thing into VerseLinker because it is confused about the context. If you find that the Accept text should be using the book or chapter from this area, select the Restore button next to My Last Chapter. The values from My Last Book and My Last Chapter will be copied to the Book Context and Chapter Context fields and also inserted into the Accept text.
Last Context Tags
Displays the last explicit book or chapter context tag it has seen. For a Bible or commentary, these include the <pb_sync verse=...> tag. For all books, book and chapter context is set by the <pb_context> tag. This information may help you determine the correct context for the text. To replace the book and chapter in the Accept text with these values, select the Restore button next to the Last Chapter field. The values from the Last Book and Last Chapter fields will be copied into the Book Context and Chapter Context fields, and will be inserted into the Accept text.
Options
An area of check boxes for setting program options.
Accept Text and Skip Text
The fields to the left of the Accept and Skip buttons show you the text that the program is going to use to replace the highlighted text in the Recent Lines window if you choose the button associated with that field.
Other Buttons
...As Chapter changes the Accept text to treat a number or range as if it was a chapter, not a verse. Undo will undo the last edit made. Quit will copy the rest of the book to the output file unchanged. When the program is done, Quit will change to Done and is used to exit the VerseLinker tool.

Instructions

Automatic Backup Files

Launch the program and use the Browse button to select a file to operate on. When you select either Pre-Link or Go!, the program will immediately make a copy of your file called filename (1).ext. It then uses this back-up file as its input, and writes output to your original file. If you stop in the middle of this session and continue later, then filename (1).ext becomes filename (2).ext, the file you select with Browse becomes filename (1).ext, and the program operates as before. Nine back-up versions of your file are retained in this way.

Just remember, you're always working on the file as it was originally named (what we'll refer to as filename.ext).

If you ever need to restore a backup, you should delete filename.ext and rename the appropriate backup file to be the new filename.ext. So if you discover that you've made a bunch of changes incorrectly and you just want to get back to where you started the current VerseLinker session, exit the program and delete your main file (filename.ext). Then rename filename (1).ext to filename.ext and continue processing that file.

Pre-Linking

There are two ways to use VerseLinker. The traditional way is interactive -- you select the Go! button and the program links what it can and stops to ask for your help when it can't determine what the link should be. For large files, it may be quicker to “pre-link” the file before going through the interactive phase.

When you select a file and choose the Pre-Link button, VerseLinker goes through the file and links everything it knows for sure how to link. It then marks everything about which it has a question. When the pre-link pass is done, you can select Go! and the program will only stop at those places where it wasn't sure how to create the link. (Those places are marked in your file with <pb_prelink> tags so that VerseLinker can quickly find them.)

The reason pre-linking the file is faster is because you can go do something else while it does the pre-linking pass through the file. When you come back you move very quickly through each point in the text where there is some confusion about the context of the numbers VerseLinker finds. You don't have to wait for it to do the parsing of the file; that is already done during pre-linking. This makes better use of your time.

You don't have to do the interactive phase of verse linking immediately after you do the pre-link phase. You can pre-link a file, do some other tasks or even edit the file, then come back and run VerseLinker again and this time select Go! to do the normal verse linking phase.

Pre-Linking Caveats

Verse Linking

After you select Go!, the program begins linking all the references it sees that it can be confident are Bible references (if this hasn't already been done during the pre-linking phase). If you have a very well-formed document, it may never stop and ask for your help. It will simply process the entire file and tell you when it's done by putting a message in the status line and changing the text of the Quit button to Done.

It's more likely, however, that the program will eventually stop and show you a highlighted portion of text from your file that it doesn't know how to handle. You'll see the last few lines of text it's processed in the Recent Lines window, the current book and chapter context (if any) in the Context Area, and the text it's going to use if you select Accept or Skip in the Accept Text and Skip Text fields to the left of their associated buttons.

At this point you should examine the text and determine to what Bible verse the author is refering. Then examine the Accept Text. If the tag is correct, select the Accept button. If necessary, make changes directly to the Accept Text to make it read the way you want, then select Accept. You can do any of the following:

If the program has selected a completely incorrect piece of text to replace, you'll have to stop VerseLinker and edit the file to correct the problem. Or you can select Skip for now and make a note to go back and correct the file when you're done. This rarely happens. It is usually associated with some kind of ambiguous piece of text like “Jn 3 16” where the author has left out a colon. Another way this can happen is if the author uses an unusual abbreviation, such as “Numb” for “Numbers”. When VerseLinker sees “Numb. 1:1” it will skip “Numb.” and ask you how to link “1:1”. You can either link the text to Num 1:1 or (better yet) exit VerseLinker and edit the file to change “Numb.” to “Num” or “Num.”.

One very common indicator of a problem that is often overlooked is when VerseLinker stops and highlights the chapter and verse of what looks like a legitimate reference. This looks like something you can just accept, but technically it is indicating an error. Consider this example:

...which are said to be sung upon a sea of glass (Re 15:2), as this was upon the Red Sea...

Here, the program has highlighted the "15:2" in a reference that looks like a valid link to Revelation 15:2. The clue that there is a problem is the fact that VerseLinker should not pause to ask you to link an obvious Bible reference. The problem here is that "Re" is not a valid abbreviation for "Revelation". Sure, you can just link "15:2" to Revelation 15:2, but the more correct way to fix this is to quit VerseLinker and edit your document to fix the abbreviation ("Rev" would be acceptable). You should search the rest of your file for similar errors while you're at it.

If you examine the text and discover that the number the program has highlighted isn't a Bible reference at all, select Skip. The program will output the highlighted text unchanged (unless you change it in the Skip Text field, which you shouldn't normally do) and continue to the next problem.

Sometimes, especially in commentary refering to Psalms, a number will appear that is a reference to a chapter. The program will often interpret these as a reference to a verse and use any existing chapter context to provide a chapter number. Rather than manually editing the Accept Text to make it correct, it's easier to select the ...As Chapter button. This will change the tags and text in the Accept Text field to assume that the numbers it found are actually chapter numbers. So, for example, “1-3” will now refer to “Psalm 1-3” instead of “Psalm 1:1-3”.

While examining a reference you may realize that you've been tagging references incorrectly. You can use the Undo button to go back to a previous position in the file and start again from there. There are only about ten levels of undo, so if you've made a large mistake you might want to follow the instructions above to go back to the beginning of your session by renaming one of the back-up files.

Note that the changes you make with the Accept and Skip buttons are not reflected in the recent lines as displayed in the large text window. The recent lines window always shows you the lines as they appear in the original file. The changes you make are being made to a new version of the file.

If you pre-linked the file, the <pb_prelink> tags will be removed from the text you see in the Recent Lines box, but only for the text you have already linked or are in the process of linking. You may see those tags in text that comes later in the document, but they will disappear when you get to the point where you are linking the number(s) contained in the <pb_prelink>...</pb_prelink> tag.


Keyboard Shortcuts

Note that all the buttons in VerseLinker have shortcut keys associated with them.

Mac OS X Shortcut Keys

ButtonShortcutDescription
Use ThisControl+TUse the book and chapter from the Book Context and Chapter Context fields
Restore (My Last)Control+MUse the book and chapter from My Last Book and My Last Chapter fields
Restore (Context)Control+RUse the book and chapter from the Last Context Tag fields
AcceptControl+AReplace the highlighted text with the Accept Text
SkipControl+SReplace the highlighted text with the Skip Text
As ChapterControl+CMake the verse number in the Accept Text be a chapter number
UndoControl+UUndo the last change (regardless of if it was an Accept or Skip)

Windows Shortcut Keys

ButtonShortcutDescription
Use ThisAlt+TUse the book and chapter from the Book Context and Chapter Context fields
Restore (My Last)Alt+MUse the book and chapter from My Last Book and My Last Chapter fields
Restore (Context)Alt+RUse the book and chapter from the Last Context Tag fields
AcceptAlt+AReplace the highlighted text with the Accept Text
SkipAlt+SReplace the highlighted text with the Skip Text
As ChapterAlt+CMake the verse number in the Accept Text be a chapter number
UndoAlt+UUndo the last change (regardless of if it was an Accept or Skip)

Changing Program Options

VerseLinker has three checkboxes that affect its operation:

Skip parenthesized numbers

Some reference books include hundreds of little lists within the text, designated with parenthesized numbers. These lists look (1) like (2) this. Check this box ignore any numbers that are enclosed in parenthesis. Note that the text in parenthesis must all be digits in order for it to be ignored. So if you check this box and the program encounters “(see also verse 3)”, it will link the “3” even though it occurs in parenthesis.

Don't reset context after parenthesis

Some reference books contain lists of cross-references in parenthesis, and the text is written in such a way that the context is better determined by ignoring the text in parenthesis. An example would be a list of verse numbers, each followed by a cross-reference specific to that verse, as in: “See how this topic is addressed in verses 3 (Gen 1:1), 5 (Exo 20:2), 19 (Dt 6:6), and 27 (Josh 1:6)”. If an author makes frequent use of this technique, using VerseLinker on the book can be very tedious, as every parenthesized reference changes the context unnecessarily. Check this box to ignore references in parenthesis for the purpose of setting context. (Parenthesized references will still be linked.)


Linking in Two or More Sessions

It's not necessary to complete your verse linking in one session. If you want to stop and continue at another time, just select Quit. The program will copy the rest of the file to the output file unchanged. If you stop the program using Force Quit in the Apple menu or use some other means to terminate the program without pressing the Quit button, the unprocessed portion of the file will not be copied to the output file and you will have to carefully restore it from backups. Always exit the program using the Quit button.


How VerseLinker Determines Context

VerseLinker “reads” your book and picks up context as it goes along. So if you're creating a commentary, it helps to have the synchronization tags (<pb_sync...>) in place before running VerseLinker. When it encounters synchronization tags it updates its internal book and chapter context so the next time it encounters a number standing alone it can build a likely link.

Consider the following:

<p><pb_sync type=verse value="John 3:16">... this thought is continued in 18....

The digits “18” must refer to John 3:18 even though the “John 3” part is missing. VerseLinker knows this because it picked up the book and chapter from the <pb_sync...> tag.

So if VerseLinker knows that “18” refers to “John 3” why does it stop and ask you to accept this link?

Consider a couple different possibilities:

<p><pb_sync type=verse value="John 3:16">... Romans 5:8 describes the love that John speaks of in this verse.... this thought is continued in 18.

In the example above, the verse linker will automatically link “Romans 5:8” then change its internal context to Romans 5 knowing that future verse references will likely be referring to the same book and chapter as a previous reference. So when it reaches the digits “18” it assumes you want to link to Romans 5:18, which is incorrect.

<p><pb_sync type=verse value="John 3:16">... this thought is continued in 18 journal entries the author made in the month of July, 1841.

In the example above, it turns out the “18” isn't referring to a Bible verse at all, but rather what you're seeing is an excerpt of a sentence in which the author of the commentary is describing the comments a famous preacher recorded in his journal. Since the VerseLinker program didn't anticipate a phrase like “18 journal entries”, it assumes the “18” is a verse reference and asks you if you want to link it.

So we've seen a couple examples of why the program couldn't be made to automatically link every number in a reference book to a Bible verse. There are well-known commercial Bible software vendors who would place this link and simply hope you didn't ever see it. VerseLinker gives you the power to decide what is a real Bible reference and what is not.

Explicit Context Changes

The <pb_context> tag explicitly sets the context to a particular book and chapter.

Note that inside the block of text surrounded by <pb_context>...</pb_context>, VerseLinker will automatically link even ambiguous numbers. If you surround a large block of text with explicit context tags, make sure that every number inside the block is meant to be linked to the Bible.

The <pb_sync> tag explicitly sets the context to the first book and chapter in the reference in the tag.

The book and chapter context can be explicitly changed by the user any time the program pauses to ask for input. The Book Context and Chapter Context fields are read when either the Accept or Skip button is pressed, and the values in those fields replace any current context information the program is carrying.

The user can also force the context back to the last explicit context tag seen by pressing the Restore button to the right of Last Chapter Tag when the program is stopped, awaiting input.

Implicit Context Changes

Any well-formed Bible reference that is automatically tagged by VerseLinker will set the context to the first book and chapter in the reference. So encountering “John 3:16” in the text sets the book context to John and the chapter context to 3. Encountering “Gen 1:1; John 1:1” sets the context to Gen 1, not John 1.

Any mention of a book of the Bible sets the book context to that book. There are some exceptions to this that include:

Ignored Words and Phrases

The program will generally stop at a number unless it sees something in the surrounding context that indicates that this number can't be a verse. So when it sees “20 tons” or “60 men” it knows not to try to link the “20” or “60” to a Bible verse. But if it encounters “20” in the text and there's nothing to indicate it's not a verse reference, it will try to use its context to link it to a Bible verse.

Listed below are samples of the kinds of things that the VerseLinker recognizes and doesn't link. In each case it's looking for these words following a number.

Not all recognized words are listed. In some cases there are hundreds of words like those listed that the program recognizes. Enough are listed below to give you an idea of the kinds of terms that are ignored in the linking process. So if you see “18 kesitahs” in your text and wonder why the VerseLinker didn't stop on “18”, it's because it recognizes “kesitahs”.

Note that in most cases, the plural, singular, and hyphenated form of the word is recognized. So when you see “days” below, it actually means that “3 days”, “1 day” and “30-day” are all recognized and not linked.

Within Certain Tags

Non-English text is not linked. Note that if you do not properly end <pb_lang> tag, VerseLinker could skip the rest of your document. In that case it will give you a warning message to tell you that the book you're processing ended in a non-English language. This should be your clue that something is wrong.

Text within <pb_nolinks>...</pb_nolinks> is not linked.

Text within <a...>...</a> is not linked.

Text within headings (<h1>, <h2>, <h3>, ..., <h9>) is not linked.

This program inserts <pb_vlskip>...</pb_vlskip> tags around sections of text that you've asked it not to link during a previous session. These tags remain in the file until you remove them, and cause future sessions to skip these same portions of text so that you don't have to answer the same question over and over again.

This program inserts <pb_link...>...</pb_link> tags around verses it links. These are skipped on subsequent sessions of VerseLinker. You can use these tags to manually link verses as well, and they will be skipped by VerseLinker.

Dates

Years are generally skipped because they're out-of-range. There is no verse “2005”, for example.

Years that are preceeded or followed by “AD”, “BC”, or “BCE” are not linked.

Days of the month that are preceeded or followed by the name of the month are not linked. Some common abbreviations are recognized for month names. Note that “Mar.” is recognized as an abbreviation for March, not the book of Mark. So “Mar. 1:1” will appear to VerseLinker as “March 1” followed by a colon and a 1. It will try to link the final 1 to whatever book and chapter are in context.

Time

Numbers followed by words like “years”, “days”, “months”, “hours”, “minutes”, “seconds”, etc. are not linked.

Numbers followed by “A.M.” or “P.M.” are not linked. Note that “PM” is recognized but “AM” is not because it's an abbreviation for “Amos”. You should use “A.M.” and “P.M.” in your documents rather than “AM” and “PM”.

Measurements

Most common measurements of distance (“feet”, “cubits”, “miles”, “stadia”, etc.) are recognized and numbers preceeding them are not linked.

Most common measurements of area (“acres”, “square miles”, “hectares”, etc.) are recognized, as are measurements of volume (“cubic feet”, “gallons”, “baths”, “bushels”, etc.). These will not be linked.

Most common measurements of weight and money are not linked (“tons”, “pounds”, “ounces”, “talents”, “drachma”, etc.).

Numbers of things

Many descriptions of people are recognized and not linked (“boys”, “women”, “horsemen”, “satraps”, “descendants”, “disciples”, etc.).

Many places and things are recognized and are not linked (“provinces”, “chariots”, “towers”, “bowls”, “garments”, etc.)

Many names of animals are recognized and are not linked (“oxen”, “sheep”, “cattle”, etc.).

Some adjectives are recognized regardless of the nouns they modify (“silver”, “adult”, “Jewish”). So “3 Jewish men” is ignored, as is “30 silver coins”.

Descriptions of books and manuscripts are not linked (“books”, “bibles”, “words”, “miniscules”, etc.).

Numbers and ordinals are not linked (“million”, “degrees”, “%”, “st”, “rd”, etc.).

Pages and page numbers are not linked (“page”, “pages”, “pp”, “p”, “p.”, etc.).

Large numbers, like “5,000” and “180” are not linked. Numbers must be larger than the maximum number of chapters in a book (151) or verses in a chapter (176), depending on context.

Parenthesized Numbers

Parenthesized numbers may or may not be linked, depending on the setting of the “Skip Parenthesized Numbers” checkbox.

Confusing Words

Words like “prove” and “lame”, which look like abbreviations for “Proverbs” and “Lamentations” are ignored. There are several other words in this category, like “am”, “numb”, and “song”.

Pseudepigraphal References

When book names like “3 Corinthians”, “Pseudo-Philo”, or “Sibylline Oracles” are followed by numbers that look like a chapter/verse reference, the numbers are ignored.


Error Messages

Unterminated <a...> tag in this file!

There is an <a...> tag somewhere in the file that doesn't have a matching </a> tag.

This book ends in a non-English language (may be OK; may be missing tag)
This book ends in a non-Spanish language (may be OK; may be missing tag)
This book ends in a language other than that in which it began (may be OK; may be missing tag)

This message indicates that you may have turned on a language that you did not later turn off. If the last word in your book is in a language other than that of the book itself, then this could be OK. Normally, this is an error and you need to investigate it.

Unterminated <hn...> tag.

“n” will be a digit from 1-9. The corresponding closing tag is missing.

Unclosed <pb_context...> tag.

There must be a matching </pb_context> tag for each <pb_context> tag. You've left out the closing tag somewhere in your document.

Missing end of HTML tag on this line

The program has encountered a tag with no closing greater-than (>) symbol.

Nested heading tag inside <hn>

“n” will be a digit from 1-9. You've placed a heading tag inside another heading tag, as in:

<h1>This heading
<h2>Contains this one</h2>

The second heading is contained in the first because the closing </h1> tag is missing from the first.

Saw </hm> tag after <hn>

“m” and “n” are different values. You've closed a heading tag incorrectly as in:

<h1>This is a h1 but is closed with h2</h2>

Mismatched <pb_nolinks> and </pb_nolinks> in this book.

Either there's an extra or a missing </pb_nolinks> tag (which could be because there's an extra or missing <pb_nolinks> tag).

Unterminated <pb_context...> tag: ...

Missing </pb_context> tag.

Missing book= and chapter= attributes in <pb_context...> tag:...

Self-explanatory.

Unterminated quote in book name in <pb_context...> tag:...

Self-explanatory.

Unrecognized <pb_context...> tag book name contents:...

Self-explanatory.

Unterminated quote in chapter number in <pb_context...> tag:...

Self-explanatory.

Extra </pb_context> tag:...

Self-explanatory.

Bad or missing value attribute in <pb_sync...> tag:...

Self-explanatory.

Unrecognized verse sync verse:...

The verse in the value attribute of a <pb_sync type=verse value=...> tag is not a valid Bible verse.


Running BookBuilder

Tagging books is hard; running BookBuilder is easy. Once your book is tagged, launch the BookBuilder tool from the Tools menu. Use the Browse button to find your tagged source document. Choose any options you might want. Then select Go!.

Options

Automatically link Bible references

When selected, any unambiguous references to Bible verses (like "Eph 2:8") will automatically be linked if they are not already tagged with <pb_link> or <a> links. Note this does not duplicate the functionality of the VerseLinker tool available in the Professional edition of BookBuilder. VerseLinker is able to examine the context of a number that occurs in the text and determine whether or not it should be linked even if it is not part of an explicit reference like "John 3:16".


Ignore missing images

When selected, the program will ignore any <img> tags it sees for which it can't find the source file. This is useful in a couple of situations. First, you may not have access to all the images that will eventually be in your book, but you want to build it to verify that the rest of the book is correct. Second, if your book contains a large number of images, you may want to create a smaller version of your book that does not include images. When you check this option, BookBuilder will replace missing images with "[Image Removed]" to make it obvious to the reader that there should be an image there (in case there is a caption or the text refers to it). To build a version of your book with no images, temporarily move all the image files to another folder and select this option.


Copy to PocketBible on successful build

This is a BookBuilder Pro feature. When selected, this option causes BookBuilder to install your book into PocketBible, then launches PocketBible so you can see how the book will appear in the program.

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.


Runtime Errors and Warnings

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.

Could not open the log file for writing.

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.

No file was selected, or there was an error opening the file.

You need to select a file before selecting the Go! button. If you have selected a file and you get this error, there was a problem opening the file. Perhaps another program has it open or you do not have permission to open the file.

There was an error initializing the HTML parser. Low memory?

It would be unusual to get this error. 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.

There was an HTML syntax error while parsing the book. See the log file.

Prior to building your book, BookBuilder validates the basic syntax of your file. For example, verifying that every <h1> tag ends with a </h1> tag, and that every <b> tag is terminated with </b> before the end of the paragraph it is in. This error message indicates there was a problem with your HTML syntax. The details are in the log file, which is located in the same folder as your source file.

There was an error initializing the book object.
There was an error initializing the temporary table of contents file.
There was an error creating a substorage for image files.
There was an error creating a substorage for static Bible reference database files.

These errors are rare, but may indicate a permissions problem. BookBuilder may not have adequate permission to write to the folder in which your source file is located.

There was an error storing HTML nodes.

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

Missing or invalid value attribute for <pb_relhdg>

You must include the value attribute for every pb_relhdg tag, and it must be a positive or negative integer value.

<pb_relhdg> results in heading level out-of-range (#)

When the value of the value attribute is added to the level of the immediately previous heading tag, the result is either less than 1 or greater than 9. Remember that BookBuilder converts <pb_relhdg> tags to heading tags, and that only <h1> through <h9> are recognized. The number in the error message tells you what BookBuilder has calculated the heading level to be.

There was an error creating the stemmers. Low memory?

This is a rare error that would indicate there was insufficient memory to allocate space for the code that supports "same root word" searches. Contact Technical Support if you get this error.

Something in your book exceeded an arbitrary limit in PocketBible books. See log for details.

In order to limit the complexity of PocketBible books, arbitrary limits are placed on the number of certain things in the book. A simple example is the size of the vocabulary of your book — that is, the number of different words found in your book. PocketBible can't store a vocabulary list containing more than 147,453 words. If your book exceeds any of these limits, you'll receive this message. The details will be in the log file. Contact Technical Support if you have trouble working around this problem.

There was a problem building your book. See the log file for details.

This could be a fatal error, or it might just be a point of information. In either case, it's likely that your book won't work correctly. Even if your book appears to be correct, you should examine the log file for error or warning messages that need to be addressed.


Warning Messages

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

Failed to copy the book to PocketBible. You can try doing so manually if this problem persists.

This is a BookBuilder Pro feature. There was some kind of error while attempting to install the book into PocketBible after a successful build. This shouldn't happen. If it does, you can manually copy the book from the same folder as your original file into the folder that PocketBible uses for its books, which you will find somewhere in ~/Library/Application Support/com.laridian.PocketBible.

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 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.

Unknown Bible translation; no pb_biblebooks meta tag found. Versification may not be correct.

When creating a Bible with BookBuilder, you need to supply the pb_biblebooks meta tag, which tells PocketBible how your Bible is "versified".

pb_biblebooks meta tag ignored for known translation (xxx).

When we create Bibles at Laridian, we add the pb_biblebooks data directly to BookBuilder. If for some reason you are manually building a Bible that we already publish, you will get this error if you try to supply the pb_biblebooks tag, as BookBuilder won't know whether to use its built-in data or your data.

pb_biblebooks meta tag is unnecessary and is ignored in non-Bibles.

The meaning of this message is obvious. If you're getting this message when trying to build a Bible, you are probably leaving out pb_isabible meta tag.


The BookBuilder 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 what looks like random punctuation and symbols. If you use certain characters, such as o with a diaresis or e with an acute accent, you may find that these words are spelled oddly in the word list, depending on what text editor you're using to view the log. Internally, Greek letters, accented characters, and other characters outside what's known as 7-bit ASCII characters are stored as 16-bit Unicode (actually UTF-8). The log file is a UTF-8 file and contains what's called a "UTF-8 BOM" marker that should tell your text editor how to display it properly. Not all text editors make use of this inforation and as a result they may misinterpret some characters in the log file.

Words starting with ÿ 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.


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.

Improperly formed start date (date)

The pb_startdate meta tag has a bad content value. It doesn't look like a date.

Invalid start date: date

The pb_startdate meta tag has a date value but the month, day, and/or year is out of range. Remember the format is MM/DD/YYYY. Months can only be from 1-12, days from 1-31, and years from 32,768 BC to AD 32,767.

*** 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.

Saw unsupported language language number

You've attempted to use a language that is not supported. See the <pb_lang> tag for a list of supported languages.

*** 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. ***

(Palm OS Only) 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
Strong's Hebrew word (word) not found in word list!
Strong's Greek word (word) not found in word list!
ConstructTOCEntry: pElement is NULL

These errors indicate a problem updating an internal data structure. The most likely cause of the "tempTOC.Add..." and "TOC.Add..." messages are invalid characters in the table of contents entry. See the description of the heading tag for the limitations on what characters are allowed.

The most likely cause of the other messages 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.

Saw <pb_attr> with no recognizable attributes.

See the reference section of this document for help with the <pb_attr> tag.

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 file name

The program failed to create a temporary file into which to store an image or some other supplementary file needed by your book. 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, close other programs that may be accessing the file, 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
Unrecognized verse reference in <a> tag: Reference

The program was unable to recognize the Bible reference in a <pb_sync type="verse" value="..." /> or <a href="bible:..."> 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.

Strong's Hebrew number (value) out of range
Strong's Greek number (value) out of range

You've used a Strong's number that is too large. We allow Hebrew numbers up to 16383 and Greek numbers up to 8191 even though no Strong's dictionary uses word numbers that high.

Strong's Hebrew suffix (character) out of range
Strong's Greek number suffix (character) out of range

You can add the letters a-d on the end of a Strong's number to differentiate it from the Strong's number without the letter. The NASEC uses this technique. We only allow the letters a-d; you've used something else.

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 language in pb_language meta tag: content="language"

See the pb_language description in the reference section of this document for the list of accepted languages for this meta tag. Remember that it is not necessary to include this tag if your book is in English.

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.


Tagging Reference

Laridian Extensions to HTML

BookBuilder recognizes a subset of HTML and adds its own tags and attributes. This section describes several 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.

In addition, BookBuilder recognizes a specially formatted comment tag that allows you to manage large books by breaking them up into smaller files, then automatically including the smaller files into one large file for processing by BookBuilder.


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; 2015 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; 2015 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

Required in all books except Bibles

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, but ignored in commercial releases of 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.

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 allowing each BookBuilder user to assign his or her own Publisher ID is that a person could end up with two books, each having 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 can cause any number of problems. The program could open the wrong book in response to a link or associate notes, highlights, and bookmarks with the wrong book.

In order to minimize the risk of user-created books having the same Publisher ID as a Laridian-created book, the commercial releases of BookBuilder ignore this tag and assign a fixed Publisher ID to every book they create. This has two implications: First, you need to use the Book ID to uniquely identify your books. This will allow you to create links between your own books and will guarantee that within your PocketBible library, all your books have unique IDs. Second, if you are going to distribute your books to others, you need to contact Laridian to get a unique Publisher ID and Book ID assigned to your book and have Laridian build your book for you so that your book does not interfere with the operation of other user-created books on those users' devices. This service is described at www.laridian.com/publish and may require that you own the Professional Edition of BookBuilder.

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 contexts in which these numbers are used include the construction of interbook links and storing 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.

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_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 (PocketBible only):

<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_minpgmmajor

<meta> tag

Optional; seldom used

Syntax

<meta name=pb_minpgmmajor content="Major Version Number">

Usage

This tag is used together with pb_minpgmminor to identify the minimum book reader engine version number required to read this book. As features are added to the reader that affect the format of the ebook files, it could be possible that you would create a book that wouldn't run on an older version of the reader. This tag allows you to tell the reader what the minimum version is that you require in order to correctly read and display your book.

As useful as this capability sounds, the tag itself is seldom used because BookBuilder will automatically set the minimum book reader engine number in your book based on features you use. So if a feature is added that you don't use, BookBuilder will set the minimum book reader engine version number to the lowest version that will read your book. If a feature is added that you do use, BookBuilder will set the minimum book reader engine version in your book to the first version that supported this new feature.

So it's best to never use this tag unless some strange circumstance comes up and tech support suggests that you use it.

The Major Version Number is the portion of the version number to the left of the decimal point. See also pb_minpgmminor, where the portion of the version number to the right of the decimal point is used.

Example

<meta name=pb_minpgmmajor content="1">

<meta name=pb_minpgmminor content="62">

pb_minpgmminor

<meta> tag

Optional; seldom used

Syntax

<meta name=pb_minpgmmionr content="Minor Version Number">

Usage

This tag is used together with pb_minpgmmajor to identify the minimum book reader engine version number required to read this book. See the discussion of that meta tag for more information.

The Minor Version Number is the portion of the version number to the right of the decimal point multiplied by 1000. So version 1.062 has a minor version number of 62 (.062 times 1000).

As described above, this tag shouldn't be used except under the supervision of tech support.

Example

<meta name=pb_minpgmmajor content="1">

<meta name=pb_minpgmminor content="62">

pb_startdate

<meta> tag

Optional in all devotional (date sync) books

Syntax

<meta name=pb_startdate content="MM/DD/YYYY">

Usage

The value of the content attribute is the starting date that is recommended to be used for this devotional. For most devotionals this tag can be omitted. The book reader program will give the user the option to set the date of the first reading to whatever date is convenient. Some devotional books, however, are published on a regular schedule with the idea that the user will read through them and discard them when the next issue is published. Those books have a set start date. The reader program may still allow the user to change the start date, but the date in this tag is the recommended start date.

The year can be left blank, in which case the first reading will be set to the month and day from this tag in the current year.

Example

Start on a specific day:

<meta name=pb_startdate content="01/01/2007">

Start on a specific day of the current year:

<meta name=pb_startdate content="07/01">

pb_isabible

<meta> tag

Required in all Bibles; optional in other books

Syntax

<meta name=pb_isabible content="yes | no">

Usage

This meta tag tells BookBuilder and the reader program whether or not this book is a Bible. You must include this meta tag with the content value "yes" in every Bible you create with BookBuilder. You can leave this tag out, or include it with a content value "no" in other books.

See also pb_biblebooks, which is required in Bibles.

Example

<meta name=pb_isabible content="yes">

pb_biblebooks

<meta> tag

Required in all Bibles; not allowed in other books

Syntax

<meta name=pb_biblebooks content="book number list">

Where book number list is a comma-separated list of book specifiers, each of which looks like: book name (translation abbreviation).

Alternately, book number list can be the abbreviation of a known translation, like KJV to indicate that versification in this Bible matches the given translation.

Usage

Allows you to specify the versification scheme of your Bible. See this discussion.

See this list of “known translations” in the current release of BookBuilder. BookBuilder will tell you if it does not recognize the translation you provide here.

If your custom Bible follows a versification scheme that is not recognized by BookBuilder/PocketBible, contact Tech Support to discuss your options. There aren't any, but perhaps we can think of an alternative.

See also pb_isabible, which is required in Bibles.

Example

Versification matches a known Bible:

<meta name=pb_biblebooks content="KJV">

Versification specified for each book of your Bible:

<meta name=pb_biblebooks content="Mt (KJV), Mk (KJV), Lk (GEN), Jn (KJV), Acts (NAB), Rom (WEB), 1Cor (KJV), 2Cor (NLT), Gal (GEN), Eph (KJV), Php (KJV), Col (KJV), 1Th (KJV), 2Th (KJV), 1Ti (KJV), 2Ti (KJV), Tit (KJV), Phm (KJV), Heb (KJV), Jas (KJV), 1P (KJV), 2P (KJV), 1J (KJV), 2John (GEN), 3John (RSV), Jude (KJV), Rev (NRSV)">

pb_hebdictid

<meta> tag

Optional; strongly suggested for books containing Strong's word number attributes

Syntax

<meta name=pb_hebdictid content="publisher ID,book ID">

Usage

This meta tag identifies the Hebrew dictionary you'd like the reader to use when the user selects a Strong's word number attribute in your book. If your book doesn't use the <pb_attr> tag, then you don't need this meta tag.

The reader program may or may not make use of this value. If it does, it will give preference to the dictionary whose publisher ID and book ID you place in this tag when the user selects a Strong's word number in your book. It may not always use your preferred dictionary, depending on what other books the user has open at the time, and what options the user may have chosen in the program. But if it has to choose from among several dictionaries, it will give the one you identify here the first shot at filling the request for a definition.

No checking is performed by BookBuilder to determine if there is a dictionary available with the publisher ID and book ID you enter here.

Example

Select the Hebrew dictionary from the NAS Exhaustive Concordance

<meta name=pb_hebdictid content="101,9">

pb_grkdictid

<meta> tag

Optional; strongly suggested for books containing Strong's word number attributes

Syntax

<meta name=pb_grkdictid content="publisher ID,book ID">

Usage

This meta tag identifies the Greek dictionary you'd like the reader to use when the user selects a Strong's word number attribute in your book. If your book doesn't use the <pb_attr> tag, then you don't need this meta tag.

The reader program may or may not make use of this value. If it does, it will give preference to the dictionary whose publisher ID and book ID you place in this tag when the user selects a Strong's word number in your book. It may not always use your preferred dictionary, depending on what other books the user has open at the time, and what options the user may have chosen in the program. But if it has to choose from among several dictionaries, it will give the one you identify here the first shot at filling the request for a definition.

No checking is performed by BookBuilder to determine if there is a dictionary available with the publisher ID and book ID you enter here.

Example

Select the Greek dictionary from the NAS Exhaustive Concordance

<meta name=pb_grkdictid content="101,10">

pb_stroptions (Deprecated)

<meta> tag

Obsolete

Syntax

<meta name=pb_stroptions content="TRUE | FALSE">

Usage

This tag communicates various options about how to handle books containing Strong's numbers. This is a performance enhancement option that is no longer used by our readers.

Example

<meta name=pb_stroptions content="TRUE">

pb_options

<meta> tag

Optional; as needed

Syntax

<meta name=pb_options content="noversenums" | "ignoreintrabooksync">

Usage

This tag communicates various options to BookBuilder. As of this version of BookBuilder, there are only two options:

Example

<meta name=pb_options content="noversenums">
<meta name=pb_options content="ignoreintrabooksync">

pb_searchrange

<meta> tag

Optional for Bibles; ignored in other books

Syntax

<meta name=pb_searchrange content="Name=Book Range">

Usage

This tag specifies a shortcut for a commonly used search range in a Bible. Name is the name of the search range ("OT", "NT", "Bible", "Apocrypha", etc.) and is followed by an equal sign and then the range of books that defines the range. A traditional 66-book Bible uses the search ranges tag as shown in the example below.

If your Bible contains the Apocrypha or if the order of the books is different than a conventional Bible, you may want to define these differently. If you want, you can add ranges for other useful groupings of books ("Pentateuch", "History", "Poetry", "Gospels", etc.).

Use one of these tags for each search range you want the reader to offer the user.

Our newer readers tend to ignore these tags and present the user with a fixed set of search ranges.

Example

<meta name=pb_searchrange content="OT=Gen-Mal">
<meta name=pb_searchrange content="NT=Mat-Rev">
<meta name=pb_searchrange content="Bible=Gen-Rev">

pb_language

<meta> tag

Required in non-English books

Syntax

<meta name=pb_language content="spanish" | "greek">

Usage

This tag specifies the language of a book when it is not English. Currently the only supported languages are Spanish and Greek.

The language in this tag refers to the dominant language of a book. Just because a book contains a few words in a non-English language does not mean the book requires this tag.

pb_sync

Inline tag

Syntax

<pb_sync type="verse" value="verse reference" display="now | later" /> or
<pb_sync type="word" value="sync verse or word" />
<pb_sync type="date" />

Usage

Marks the point in the text to go to to find information on the verse or word in the value attribute, or the point at which the next day's reading begins.

type=verse

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

type=verse as used in Bibles

This tag marks the beginning of a Bible verse. BookBuilder recognizes most abbreviations for Bible book names as long as they're not followed by a period.

If the display attribute is "now", PocketBible will insert the verse number at this point in the text. In any case, if the user uses the "go to" function to go to a verse, the program will take them to this point in the text. This seems simple but there is one important consideration to keep in mind.

If your Bible has section headings, chapter headings, and/or book headings, you want the user to see those when they go to the first verse that follows them. That is, if there is a subject heading before a verse and the user goes directly to that verse, you want them to see the subject heading at the top of the screen, not the verse. So at first glance you would think you would want to put the verse sync tag before the subject head. But remember that the verse sync tag also marks the position of the verse number. So consider the following example:

<pb_sync type=verse value="John 8:48" display="now" />
<h4>Jesus' Claims About Himself</h4>
<p>The Jews answered him, "Aren't we right...

This will result in the following display when we go to John 8:48:

48

Jesus' Claims About Himself

The Jews answered him, "Aren't we right...

We don't want the "48" to appear before the subject head, so we use a special attribute of this tag to "move" the verse number. When the display attribute is "later", the display of the verse number is deferred until a matching pb_sync tag with the display attribute value "now" is found. If such a tag is not found, the verse number is suppressed entirely.

<pb_sync type=verse value="John 8:48" display=later />
<h4>Jesus' Claims About Himself</h4>
<p><pb_sync type=verse value="John 8:48" display=now />The Jews answered him, "Aren't we right...

This will result in the following display when we go to John 8:48:

Jesus' Claims About Himself

48 The Jews answered him, "Aren't we right...

This technique can also be used at the start of books:

<pb_sync type=verse value="John 1:1" display=later />
<h1>Gospel of John</h1>
<h4>The Word Became Flesh</h4>
<p><pb_sync type=verse value="John 1:1" display=now />In the beginning was the Word...

This will result in the following display when we go to John 1:1:

Gospel of John

The Word Became Flesh

1:1 In the beginning was the Word...

type=verse as used in Commentaries

In commentaries, the <pb_sync> tag marks the beginning of the commentary section that deals with the verse. Unlike Bibles, this tag does not result in a verse number being inserted into the text. Just like with Bibles, the Bible reference can contain most abbreviations for book names as long as they don't end with a period.

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:

The <pb_sync> tag always is associated with the immediately previous heading tag that has a pb_toc attribute. That is, the only thing you can "sync" to is a table of contents entry. When the user is viewing John 3:16 in the Bible and asks to see the associated commentary section, he will be taken to the location of the heading that immediately precedes the <pb_sync> tag for John 3:16.

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

In the commentary above, when the user requests the commentary for John 3:16 they will be taken to the location of the "Verse 16" heading on the line above the <pb_sync> tag. Since this heading has a pb_toc value of "index", the heading itself will not be visible on the screen and the effect will be as if the user was taken directly to the paragraph that contains the commentary on John 3:16. Note, however, that if there was another paragraph between the heading tag and the paragraph containing the <pb_sync> tag, the user would be taken to that paragraph instead of the paragraph containing the <pb_sync> tag, because the <pb_sync> tag is always associated with the immediately previous heading tag that contains a pb_toc attribute.

Note that only two verses 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.

As in the discussion above, remember that the <pb_sync> tag is always associated with the immediately preceding heading that contains a pb_toc attribute. If the <pb_sync> tag appears in the fifth paragraph after the heading and the user requests to be taken to the article for the word named in the <pb_sync> tag, they will be taken to the location of the heading, not the fifth paragraph after the heading.

type=date

This form of the tag marks the beginning of a daily reading in a devotional. Since BookBuilder cannot create books for DailyReader for Palm OS, you won't normally use this tag on that platform.

When the user choose to go to the next reading, he or she will be taken to the section of the book in which this tag occurs. Because sections are defined by table of contents entries, that means the program will scroll to the heading tag (with the pb_toc attribute) that immediately precedes this tag. Because of this, it's important not to put the pb_sync tag right before the heading, thinking that the program will take you to that point in the text. Instead, put the tag after the target heading tag.

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>

<h1 pb_toc=visible>Victory In Jesus</h1>
<pb_sync type=date />
<p><pb_link format=bcv>1 Cor 15:51-57</pb_link>
<p>Today's reading takes us to First Corinthians...

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>

pb_attr

Inline tag

Syntax

<pb_attr name=strongshebrew value="Strong's word number" /> or
<pb_attr name=strongsgreek value="Strong's word number" />

Usage

This tag immediately follows a word with which you want to associate a Strong's word number. The primary use for this tag is in a Bible like our NASB or KJV Exhaustive Concordance products, in which almost every word in the Bible has one or more Strong's numbers associated with it. But it's possible to use this tag in any book that has Strong's numbers corresponding to some of the words in the book.

When the book reader encounters this tag it inserts a link to definition of the word with the word number given in this tag. The link will go to the dictionary identified by the publisher ID and book ID in the pb_hebdictid or pb_grkdictid meta tag, or to another dictionary chosen by the user at run-time.

If a word has two or more Hebrew/Greek words associated with it, simply add additional pb_attr tags after the first. Note that the pb_attr tag must immediately follow the word with which it is associated without any intervening spaces or punctuation. Similarly, when two or more Hebrew or Greek words are associated with a word, the pb_attr tags must immediately follow each other.

If you include these tags in your book you must include the pb_hebdictid and pb_grkdictid meta tags in the book.

Note that you don't necessarily want to use this tag for every Strong's number in your book. Some reference books mention a Strong's number every once in a while. Those can be linked with the <a> tag. Think of the pb_attr tag as a way to add a Strong's number as a potentially hidden attribute of the immediately preceding English (or Spanish) word. The reader may not even display the number to the user. If your book has a parenthesized Strong's number following key words in the text, you would not use this tag. If you did, the Strong's number would be associated not with the preceding word but with the left parenthesis, and the parenthesis could be empty depending on display options chosen by the user.

Example

<pb_sync type=verse value="Genesis 1:1" display=later />
<h1 align="center"><pb_noconc>Genesis </pb_noconc></h1>
<h2><pb_noconc>Genesis 1</pb_noconc></h2>
<pb_sync type=verse value="Genesis 1:1" display=now />In the beginning<pb_attr name=strongshebrew value=7225 /> God<pb_attr name=strongshebrew value=430 /> created<pb_attr name=strongshebrew value=1254 /><pb_attr name=strongshebrew value=853 /> the heaven<pb_attr name=strongshebrew value=8064 /> and<pb_attr name=strongshebrew value=853 /> the earth<pb_attr name=strongshebrew value=776 />.

<pb_sync type=verse value="John 1:1" display=later/>
<h1 align="center"><pb_noconc>John </pb_noconc></h1>
<h2><pb_noconc>John 1</pb_noconc></h2>
<pb_sync type=verse value="John 1:1" display=now />In<pb_attr name=strongsgreek value=1722 /> the beginning<pb_attr name=strongsgreek value=746 /> was<pb_attr name=strongsgreek value=1510 /><pb_attr name=strongsgreek value=2258 /> the Word<pb_attr name=strongsgreek value=3056 />, and<pb_attr name=strongsgreek value=2532 /> the Word<pb_attr name=strongsgreek value=3056 /> was<pb_attr name=strongsgreek value=1510 /><pb_attr name=strongsgreek value=2258 /> with<pb_attr name=strongsgreek value=4314 /> God<pb_attr name=strongsgreek value=2316 />, and<pb_attr name=strongsgreek value=2532 /> the Word<pb_attr name=strongsgreek value=3056 /> was<pb_attr name=strongsgreek value=1510 /><pb_attr name=strongsgreek value=2258 /> God<pb_attr name=strongsgreek value=2316 />.

pb_note

Inline tag

Syntax

<pb_note>...</pb_note>

Usage

This tag is used to insert footnotes into the text. The reader program 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. Don't include any "block level" HTML tags in your footnote (such as <table> or <ul>).

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_woc

Inline tag

Syntax

<pb_woc>...</pb_woc>

Usage

This tag is used in Bibles to mark words of Christ so they can be displayed in red by the reader if the user has chosen that option. Technically, this tag can also be used in reference books but the reader program may or may not choose to display words of Christ in red unless the book is a Bible.

Example

<pb_sync type=verse value="Mat 24:4" display=now /> And Jesus answered and said to them, <pb_woc>"See to it that no one misleads you.</pb_woc>

The user sees:

4 And Jesus answered and said to them, "See to it that no one misleads you.

pb_lang

Inline tag

Syntax

<pb_lang value="language name">...</pb_lang>

Usage

To display words in a language such as Greek or Hebrew, one can't simply change the font with a <font> tag. PocketBible is "language aware" and requires that you tell it the language you want to use, not the font. If necessary for the platform, PocketBible will choose a font appropriate to the language you're using. This tag lets you identify the language of the words that follow.

Possible values for "language name" are:

The following are recognized but their use is deprecated. Use English (or your book's base language) instead:

All books are assumed to be in English unless you say otherwise, so it's not necessary to start every paragraph with a <pb_lang value=english> tag.

In the current version of PocketBible, words that are not in the base language of the book (see the pb_language meta tag) are not indexed, nor are they compressed. You can't do searches for non-English words in your English books, nor non-Spanish words in your Spanish books. As a result, it's not practical to use this capability to create a Hebrew Bible.

When using Hebrew, which reads right-to-left, you should write the characters in the order they would be read in Hebrew even though you're writing from left to write. So if English was a right-to-left language and we wanted to write the sentence "werbeH si sihT", we would write: <pb_lang value=hebrew>This is Hebrew</pb_lang>. The reader program will reverse the letters within each word and reverse the words inside the <pb_lang...>...</pb_lang> tags.

This somewhat awkward support for Hebrew makes it impractical to use BookBuilder to create a Hebrew Bible. Think about what would happen if you wrote an entire verse in Hebrew. Word wrapping occurs from left to right and the lines are left-justified on the screen. Your verse would read from bottom to top.

If you don't understand this discussion, it will suffice to say that it would be unwise to think you could use BookBuilder to create a Hebrew Bible. Think of the Hebrew support in PocketBible as being suitable for the occassional display of a Hebrew word or two and you'll be safe.

Now that we understand how to switch languages in PocketBible, we need to address how we enter non-English characters. PocketBible uses the Unicode standard (www.unicode.org) to encode characters. Since Unicode includes standard ASCII characters, you can write English words using English letters as you would expect. Greek and Hebrew are more complicated.

Unicode is a method of encoding every character in every written language in the world. It assigns a unique number to every character in every language. We use these numbers to represent characters. A Unicode character is traditionally written as U+XXXX where "XXXX" is the 4-digit hexadecimal (base 16) value of the letter. Hebrew alef is U+05D0. Greek lower-case alpha is U+03B1. All the accents, vowel points, and other diacriticals have values, too. An acute accent is U+0301. The Greek iota subscript is U+0345.

Currently, BookBuilder requires 7-bit ASCII files. It does not directly support files encoded in UTF8, UTF16, etc. To use characters with Unicode values beyond 127, you should encode Unicode values in HTML character entities. An HTML character entity is written as &#nnnn; or &#xhhhh; where "nnnn" is the decimal (base 10) value and "hhhh" is the hexadecimal (base 16) value of the character you want to write.

We have created a table showing all the Greek and Hebrew characters that PocketBible supports, and have included it as an appendix to this document. The table shows the character you want to produce followed by the characters you need to enter to create that character. The table also includes the Unicode values for reference. You can either use the decimal character entity shown in the table or use the hexadecimal Unicode value to create a hexadecimal character entity. So the Hebrew letter "bet" is either &#1489; (decimal) or &#x05D1; (hex).

Transliteration

Prior versions of PocketBible and BookBuilder treated transliteration, in which words from a non-English language are rendered using English letters and some diacritics, as a language and put restrictions on which diacritics could be used. We now recommend that you simply use English (or the base language of your book, if not English) combined with whatever diacritics you might need from the Unicode standard.

Non-English Languages

We are in the process of adding more support to PocketBible for non-English languages. At present, only Spanish and Greek are directly supported. To create a Spanish Bible or reference book, include the pb_language meta tag in your document. Then enter your text as usual for an English document. For accented characters, use the appropriate character entities.

Other non-English languages such as French, German, etc. are supported only to the extent that they can be represented using the same character set as English. There is no language tag for French, for example, but one could write a French book using no language tags. PocketBible would assume it was English. The only negative impact of this is that a search for English words that are spelled the same as French words would turn up hits in your French books that might be unexpected.

Note that not all punctuation is available in the other languages, so to include punctuation it may be necessary to switch back to English. Also, normal HTML tags are "translated" if they're included in another language, so make sure to use these tags only in English. If you need to make a Greek word bold, for example, you would say <b><pb_lang value=greek>...</pb_lang></b> instead of <pb_lang value=greek><b>...</b></pb_lang>.

Example

The word "fish" in Greek was made up of the initial letters of the words in the article
of faith so dear to the early Church:
<pb_lang value=greek>&#921;</pb_lang>,
<pb_lang value=greek>&#921;&#951;&#963;&#959;&#965;&#834;&#962;</pb_lang>, Jesus;
<pb_lang value=greek>&#935;</pb_lang>,
<pb_lang value=greek>&#935;&#961;&#953;&#963;&#964;&#959;&#769;&#962;</pb_lang>, Christ;
<pb_lang value=greek>&#920;</pb_lang>,
<pb_lang value=greek>&#920;&#949;&#959;&#965;&#834;</pb_lang>, of God;
<pb_lang value=greek>&#933;</pb_lang>,
<pb_lang value=greek>&#933;&#953;&#959;&#769;&#962;</pb_lang>, Son;
<pb_lang value==greek>&#931;</pb_lang>,
<pb_lang value=greek>&#931;&#969;&#964;&#951;&#769;&#961;</pb_lang>, Savior...

...Abel (Heb. <i><pb_lang value="trans hebrew">&#700;a&#772;be&#772;l</pb_lang>,</i> &ldquo;watercourse&rdquo;)...

<h2 pb_toc=index>62. Abel Beth-maakah</h2>
<pb_sync type=word value="H62">
<pb_sync type=word value="Abel Beth-maakah">
<p><b>62.</b>
<pb_lang value=hebrew>&#1489;&#1468;&#1461;&#1497;&#1514;&#1470;&#1502;&#1458;&#1506;&#1463;&#1499;&#1464;&#1492;
&#1488;&#1464;&#1489;&#1461;&#1500;</pb_lang>
<b>Abel Beth-maakah</b> (5d); from <a href="sync:\\H58">58</a>,
<a href="sync:\\H1004">1004</a> and <a href="sync:\\H4601">4601</a>;
a city in N. Isr.:&mdash;Abel(1), Abel-beth-maacah(2).</p>

First two examples above are from New Unger's Bible Dictionary, Copyright © 1961, 1966, 1988 The Moody Bible Institute of Chicago; the second from the New American Standard Exhaustive Concordance Hebrew-Aramaic Dictionary, Copyright © 1981, 1998 by The Lockman Foundation.

pb_relhdg

Inline tag

Syntax

<pb_relhdg value=offset pb_toc="index" | "visible" id=anchor name>...</pb_relhdg>

Usage

You can think of this tag as an alias for a heading tag (<h1>, <h2>, etc.). When BookBuilder encounters this tag, it converts it into a heading tag where the heading level is equal to the last actual heading tag seen plus the offset from the value attribute.

It's not immediately obvious why this tag is useful, but when you need it, it is indispensible. Consider a commentary whose table of contents is organized like a large outline of the entire Bible or a specific book of the Bible. In some cases you might navigate down to the fourth level of the outline to find the comments on a particular verse, but in another case those comments might be at level five or six. That is, sometimes you want to tag the verse commentary as <h4 pb_toc=...> but in other cases you want to use <h5 pb_toc=...> or <h6 pb_toc...>.

Without the <pb_relhdg> tag, you would have to examine each section of commentary to determine where it falls in the outline and tag it appropriately. But if your text includes some simple flag that makes it easy to find the beginning of each of these sections, it would be easier if you could do a global search-and-replace operation to tag each commentary section with the same heading tag without examining each one. The <pb_relhdg> tag allows you to do just that.

In the example below, commentary sections for Matthew 1:1-17 fall at level 5 in the outline, but the commentary sections for Matthew 3:1-12 are at level 7. In the original source text, these sections are easy to identify but it is not possible to create a global search-and-replace specification that can determine what level the commentary sections should be at. By using the <pb_relhdg> tag, we simply say that we want the verse commentary sections to be one level higher than the last real heading tag prior to the <pb_relhdg> tag.

Example

<h2 pb_toc="visible">Exposition of Matthew</h2>
<h3 pb_toc="visible">I. Prologue: The Origin and Birth of Jesus the Christ (1:1-2:23)</h3>
<h4 pb_toc="visible">A. The Genealogy of Jesus (1:1-17)</h4>
<pb_relhdg value="1" pb_toc="visible"><pb_link format=bcv>Matthew 1:1</pb_link></pb_relhdg>
<pb_sync type="verse" value="Matthew 1:1" />
<p><b><pb_nolinks>1</pb_nolinks></b> The first two words of Matthew, <i>biblos geneseos</i>, may be translated...
...
<h3 pb_toc="visible">II. The Gospel of the Kingdom (3:1-7:29)</h3>
<h4 pb_toc="visible">A. Narrative (3:1-4:25)</h4>
<h5 pb_toc="visible">1. Foundational steps (3:1-4:11)</h5>
<h6 pb_toc="visible">a. The ministry of John the Baptist (3:1-12)</h6>
<pb_relhdg value="1" pb_toc="visible"><pb_link format=bcv>Matthew 3:1</pb_link></pb_relhdg>
<pb_sync type="verse" value="Matthew 3:1" />
<p><b><pb_nolinks>1</pb_nolinks></b> Matthew's temporal note, "In those days," is vague...

The value attribute can be 0 or negative if necessary.

See the description of the heading tags for an explanation of the pb_toc and id attributes.

Note that this tag is literally turned into a heading tag by BookBuilder, so it must obey all the restrictions placed on those tags, such as maintaining the proper sequence of levels.

VerseLinker 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_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 the reader program 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 a heading tag is used with the pb_toc attribute to create a table of contents entry, you cannot use character entities in the heading text. On some devices, the table of contents is displayed using a "tree view" or "table view" that has limited abilities to display characters outside the normal ASCII range, so you are limited to alphanumeric characters and basic punctuation.

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="sync:\\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 usemap=#id>

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 .lbk or .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 displayed but the attribute is supported and could be used in the future. It is used in PocketBible's Copy Passage function as a replacement for the image.

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.

The usemap attribute is used to associate an image map with this image. The value of this attribute is the id of a <map> tag to be used with this image. Note that external maps are not supported. The image map must be one that is in your document.

Example

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

Include File

Enhanced HTML tag

Syntax

<-- #include file="filename.htm" tocoffset="pb_toc heading offset" hoffset="HTML heading offset" -->

Usage

This tag must be on a line by itself. The entire line will be replaced with the contents of the file named in this tag.

This specially formatted comment tells BookBuilder to insert the contents of filename.htm into your book at this point. This is handy if your book is large and it is easier to manage if you split it into smaller pieces.

The file name should be relative to the source document for your book. That is, if you just provide a file name, it should be in the same folder. If you need to specify a file in a different folder, you must specify its location relative to the current folder.

The tocoffset value is optional, and is the number of "levels" which you want to add to each table of contents heading tag in the included file to make it fit correctly into the structure of the book. If no adjustments are needed, this attribute can be excluded. See the examples below.

The hoffset value is optional, and is the number of "levels" which you want to add to each normal HTML heading tag (i.e. those that do not have the pb_toc attribute) to make them look correct once included into the book. If no adjustments are needed, this attribute can be excluded. See the examples below.

Example

Assume you have several files organized into folders as shown below:

My Books
  + Commentaries
    + Matthew
        Matthew Part 1.htm
        Matthew Part 2.htm
        Matthew.htm
    + Mark
        Mark Part 1.htm
        Mark Part 2.htm
        Mark.htm
    + Luke
        Luke Part 1.htm
        Luke Part 2.htm
        Luke.htm
    + John
        John Part 1.htm
        John Part 2.htm
        John.htm
    + Gospels
        Gospels.htm

Your commentary for each book is very long, so you have divided each in half (Mark Part 1.htm and Mark Part 2.htm, for example). The actual source document for your commentary on Mark is Mark.htm. You would put your normal head and meta tags only in this file, then in the body section you would have these two lines:

<!-- #include file="Mark Part 1.htm" -->
<!-- #include file="Mark Part 2.htm" -->

Note that each #include tag is on a line by itself. This is important.

Now say you want to have another book that is your commentary on all four gospels combined into one book. The file Gospels.htm resides in the Gospels folder, so you'll need to use the special .. folder to go "up" one level in the folder hierarchy to find the component files.

Furthermore, you want to include a top-level heading that identifies the name of the book ("Matthew", "Mark", "Luke", or "John"). Since the component books will already have <h1 pb_toc="..."> tags to identify their top-level table of contents, you will want these to be shifted down to <h2 pb_toc="...">, and any other heading tags that define the table of contents to be similarly shifted. Your Gospels.htm file would have the normal head section, then the following:

<body>
<h1 pb_toc="visible">Matthew</h1>
<!-- #include file="../Matthew/Matthew Part 1.htm" tocoffset="1" -->
<!-- #include file="../Matthew/Matthew Part 2.htm" tocoffset="1" -->
<h1 pb_toc="visible">Mark</h1>
<!-- #include file="../Mark/Mark Part 1.htm" tocoffset="1" -->
<!-- #include file="../Mark/Mark Part 2.htm" tocoffset="1" -->
<h1 pb_toc="visible">Luke</h1>
<!-- #include file="../Luke/Luke Part 1.htm" tocoffset="1" -->
<!-- #include file="../Luke/Luke Part 2.htm" tocoffset="1" -->
<h1 pb_toc="visible">John</h1>
<!-- #include file="../John/John Part 1.htm" tocoffset="1" -->
<!-- #include file="../John/John Part 2.htm" tocoffset="1" -->
</body>

The special .. folder means "go up one level". So BookBuilder would start in the Gospels folder, go up one level to the My Books folder, then go down into Matthew to find Matthew Part 1.htm.

The value of 1 for the tocoffset attribute tells BookBuilder to add 1 to the level number for each heading tag it encounters in the included file which has a pb_toc attribute (that is, each table of contents heading tag). This can be any value, but since BookBuilder only recognizes 9 heading levels, you generally don't use an offset greater than 1 or 2. It will all depend on how your included files are structured and why you are using this feature.

The hoffset attribute works similarly, but it applies to heading tags that do not have pb_toc attributes. That is, it applies to the standard HTML heading tags that are not being used to define the PocketBible table of contents for this book.

It bears repeating that this tag must appear on a line by itself. The included file will replace this entire line. Anything else on the line, before or after this tag, is ignored.


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. There should be no period after the abbreviation of the book name. So "Rom 12:1" is valid; "Rom. 12:1" is not. If you have BookBuilder Professional and use VerseLinker, note that VerseLinker will recognize abbreviated names followed by a period, but will remove the period for compatibility with BookBuilder.

A period, colon, or space can be used to separate chapter and verse.

The tables below list 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.

English Bible Book Names

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)

Spanish Bible Book Names

Note that Spanish book names with and without accents are supported. Also note that you can only use Spanish book names in books in which the pb_language meta tag is set to Spanish.

Génesis (2)
Gn (2)
Genesis (2)
Éxodo (2)
Exodo (2)
Levítico (3)
Lv (2)
Levitico (4)
Números (2)
Nm (2)
Numeros (2)
Deuteronomio (3)
Dt (2)
Josué (3)
Josue (5)
Jueces (3)
Rut (3)
Rt (2)
1 Samuel (3)
1Samuel (2)
2 Samuel (3)
2Samuel (2)
1 Reyes (3)
1Reyes (2)
2 Reyes (3)
2Reyes (2)
1 Crónicas (4)
1Crónicas (3)
1 Cronicas (5)
1Cronicas (4)
2 Crónicas (4)
2Crónicas (3)
2 Cronicas (5)
2Cronicas (4)
Esdras (3)
Nehemías (3)
Nehemias (6)
Ester (3)
Job (3)
Salmos (3)
Proverbios (2)
Eclesiastés (2)
Eclesiastes (10)
Cantares (2)
Cnt (3)
Isaías (2)
Isaias (4)
Jeremías (3)
Jeremias (6)
Lamentaciones (3)
Lm (2)
Ezequiel (2)
Daniel (3)
Dn (2)
Oseas (2)
Joel (4)
Jl (2)
Amós (2)
Amos (3)
Abdías (3)
Abdias (4)
Jonás (3)
Jonas (4)
Miqueas (2)
Nahúm (3)
Nahum (4)
Habacuc (3)
Sofonías (3)
Sofonias (6)
Hageo (3)
Zacarías (3)
Zacarias (6)
Malaquías (3)
Malaquias (7)
Mateo (3)
Mt (2)
Marcos (3)
Mr (2)
Lucas (3)
Lc (2)
Juan (4)
Jn (2)
Hechos (3)
Hch (3)
Romanos (2)
1 Corintios (4)
1Corintios (3)
2 Corintios (4)
2Corintios (3)
Gálatas (2)
Gal (2)
Galatas (2)
Efesios (2)
Filipenses (3)
Colosenses (3)
1 Tesalonicenses (4)
1Ts (3)
1Tesalonicenses (3)
1 Ts (4)
2 Tesalonicenses (4)
2Ts (3)
2Tesalonicenses (3)
2 Ts (4)
1 Timoteo (4)
1Timoteo (3)
2 Timoteo (4)
2Timoteo (3)
Tito (3)
Filemón (4)
Flm (3)
Filemon (6)
Hebreos (3)
Santiago (3)
Stg (3)
1 Pedro (3)
1Pedro (2)
2 Pedro (3)
2Pedro (2)
1 Juan (3)
1Juan (2)
1 Jn (4)
1Jn (3)
2 Juan (3)
2Juan (2)
2 Jn (4)
2Jn (3)
3 Juan (3)
3Juan (2)
3 Jn (4)
3Jn (3)
Judas (3)
Apocalipsis (2)

Known Bible Translations

When specifying the versification scheme of a custom Bible, you need to tell BookBuilder how your Bible is versified by referring to the versification scheme of a known Bible. Here are the Bibles that BookBuilder knows about.

AMPAmplified Bible
ASVAmerican Standard Version
BBEBible in Basic English
CJBComplete Jewish Bible
DNTDarby's New Translation
ESVEnglish Standard Version
EXBExpanded Bible
GENGeneva Bible
GWTGOD'S WORD Translation
GWGOD'S WORD Translation
HCSBECHolman Christian Standard Bible
HCSBHolman Christian Standard Bible
ICBInternational Children's Bible
JBSBiblia Jubileo 2000
JUBJubilee Bible 2000
KJVECKing James Version
KJVKing James Version
LBLALa Biblia de las Americas
MSGThe Message
NABRENew American Bible Revised Edition
NABNew American Bible
NASBNew American Standard Bible
NASECNew American Standard Bible
NBLHNueva Biblia Latinoamericana de Hoy
NCVNew Century Version
NETNET Bible
NIrVNew International Reader's Version
NIVNew International Version
NKJVNew King James Version
NLTSENew Living Translation 2nd Ed.
NLTNew Living Translation
NRSVNew Revised Standard Version
NVINuevo Versi\xf3n Internacional
RSVRevised Standard Version
RVR95ECReina-Valera 1995
RVR95Reina-Valera 1995
SBLGNTSBL Greek New Testament
TLVTree of Life Version
TNIVToday's New International Version
YLTYoung's Literal Translation
WBSWebster's Bible
WEBWorld English Bible
WEYWeymouth's New Testament

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 website 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

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

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. Characters that can't be displayed by your browser are usually rendered as an empty box.

In the past, different versions of PocketBible (i.e. PocketBible running on different platforms) supported different sets of character entities. The first list is the character entities supported by all versions of PocketBible. However, all versions of PocketBible distributed since about 2007 support all the recognized character entities, which are listed in the next section below.

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; ÿ

Old Palm OS devices have a limited number of 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.

Laridian no longer supports MyBible on Palm OS. This information is included for historical reference only.

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;   Ÿ

Old Windows Mobile devices have a limited number of special characters available to display. The following are rendered with the best match available on the device. 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.

Laridian no longer supports PocketBible on Windows CE and Windows Mobile devices. (Note that Windows Phone is not the same as Windows Mobile.) This information is included for historical reference only.

DescriptionEntityDecimalCharacter
greek capital letter alpha &Alpha;   Α
greek small letter alpha &alpha;   α
almost equal to = asymptotic to &asymp;  
double low-9 quotation mark &bdquo;  
greek capital letter beta &Beta;   Β
greek small letter beta &beta;   β
bullet = black small circle &bull;  
greek capital letter chi &Chi;   Χ
greek small letter chi &chi;   χ
modifier letter circumflex accent &circ;   ˆ
dagger &dagger;  
double dagger &Dagger;  
greek capital letter delta &Delta;   Δ
greek small letter delta &delta;   δ
greek capital letter epsilon &Epsilon;   Ε
greek small letter epsilon &epsilon;   ε
greek capital letter eta &Eta;   Η
greek small letter eta &eta;   η
euro sign &euro;  
latin small f with hook = function = florin &fnof;   ƒ
greek capital letter gamma &Gamma;   Γ
greek small letter gamma &gamma;   γ
greater-than or equal to &ge;  
horizontal ellipsis = three dot leader &hellip;  
integral &int;  
greek capital letter iota &Iota;   Ι
greek small letter iota &iota;   ι
greek capital letter kappa &Kappa;   Κ
greek small letter kappa &kappa;   κ
greek capital letter lambda &Lambda;   Λ
greek small letter lambda &lambda;   λ
left double quotation mark &ldquo;  
less-than or equal to &le;  
lozenge &loz;  
single left-pointing angle quotation mark &lsaquo;  
left single quotation mark &lsquo;  
em dash &mdash;  
minus sign &minus;  
greek capital letter mu &Mu;   Μ
greek small letter mu &mu;   μ
en dash &ndash;  
not equal to &ne;  
greek capital letter nu &Nu;   Ν
greek small letter nu &nu;   ν
latin capital ligature OE &OElig;   Œ
latin small ligature oe &oelig;   œ
overline = spacing overscore &oline;  
greek capital letter omega &Omega;   Ω
greek small letter omega &omega;   ω
greek capital letter omicron &Omicron;   Ο
greek small letter omicron &omicron;   ο
partial differential &part;  
per mille sign &permil;  
greek capital letter phi &Phi;   Φ
greek small letter phi &phi;   φ
greek capital letter pi &Pi;   Π
greek small letter pi &pi;   π
double prime = seconds = inches &Prime;  
prime = minutes = feet &prime;  
n-ary product = product sign &prod;  
greek capital letter psi &Psi;   Ψ
greek small letter psi &psi;   ψ
square root = radical sign &radic;  
right double quotation mark &rdquo;  
greek capital letter rho &Rho;   Ρ
greek small letter rho &rho;   ρ
single right-pointing angle quotation mark &rsaquo;  
right single quotation mark &rsquo;  
single low-9 quotation mark &sbquo;  
latin capital letter S with caron &Scaron;   Š
latin small letter s with caron &scaron;   š
greek capital letter sigma &Sigma;   Σ
greek small letter sigma &sigma;   σ
greek small letter final sigma &sigmaf;   ς
n-ary sumation &sum;  
greek capital letter tau &Tau;   Τ
greek small letter tau &tau;   τ
greek capital letter theta &Theta;   Θ
greek small letter theta &theta;   θ
small tilde &tilde;   ˜
trade mark sign &trade;  
greek capital letter upsilon &Upsilon;   Υ
greek small letter upsilon &upsilon;   υ
greek capital letter xi &Xi;   Ξ
greek small letter xi &xi;   ξ
latin capital letter Y with diaeresis &Yuml;   Ÿ
greek capital letter zeta &Zeta;   Ζ
greek small letter zeta &zeta;   ζ

Recognized Entities

The following character entities are recognized by BookBuilder, though they may not be implemented depending on the platform PocketBible is running on. This caveat applies mainly to older, non-supported platforms. Newer versions of PocketBible tend to support all the recognized 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

Unicode Tables for Greek and Hebrew

Greek

If you are able to type Greek letters into your text editor, chances are good that they will work with BookBuilder. If you have difficulty with certain characters, try using the equivalent character entities to represent the character and any attached diacriticals, as described below.

Greek letters with diacriticals (accents or breating marks) are constructed in PocketBible by combing a base character with a combining character. A combining character is one that “overstrikes” the character which precedes it. You may use more than one combining character if necessary, and you may use many of the Greek Extended Unicode characters that are a combination of a base character and one or more diacriticals. Note that some combinations are not supported, but you should be able to encode any ancient Greek text you might find.

There are some combinations of diacriticals that don't make sense, and those are not supported. There are other combinations that make sense in modern Greek but which are not supported by PocketBible because it focuses on ancient Greek. While modern Unicode fonts support such combinations, we still have to use our own fonts and our own mapping algorithms on older platforms where Unicode isn't fully supported. This limits our ability to support modern Greek since those fonts are designed for biblical Greek.

When we first launched PocketBible, support for Unicode fonts on mobile devices was rare. Today, reasonably good Unicode support is commonplace. Whereas in the past we often had to roll our own font mapping algorithms, we find ourselves more and more relying on the built-in capabilities of the platforms on which we implement PocketBible. As a result, you may find that your Greek text displays fine on one platform and not so well on another. In that case, try changing the font PocketBible is using to display Greek text if PocketBible on your platform gives you that option.

Diacriticals can appear in any order, though they may be rearranged by BookBuilder into a “canonical” order to aid in searching the Greek text. Precomposed characters will be decomposed into what Unicode calls their “normalized canonical form”. One result of this is that error messages from BookBuilder might display combinations of Unicode characters that don't actually appear in your document. For example, the Greek Extended precomposed character U+1FD7 (small iota with dialytika and perispomeni) is not supported, but the error message will tell you that BookBuilder is unable to map U+03B9 (iota) U+0308 (dialytika) U+0342 (perspomeni) to its Greek font.

Greek Base Characters

CharacterDecimal EntityHex EntityUnicode Value
 &#32;&#x0020;U+0020 Space
* &#42;&#x002A;U+002A Asterisk
, &#44;&#x002C;U+002C Comma
- &#45;&#x002D;U+002D Hyphen
. &#46;&#x002E;U+002E Period
; &#59;&#x003B;U+003B Semicolon (see U+037E)
ʼ &#700;&#x02BC;U+02BC Apostrophe
ʽ &#701;&#x02BD;U+02BD Reverse apostrophe
ˊ &#714;&#x02CA;U+02CA Spacing acute accent
; &#894;&#x037E;U+037E Greek question mark
· &#903;&#x0387;U+0387 Middle dot
Α &#913;&#x0391;U+0391
Β &#914;&#x0392;U+0392
Γ &#915;&#x0393;U+0393
Δ &#916;&#x0394;U+0394
Ε &#917;&#x0395;U+0395
Ζ &#918;&#x0396;U+0396
Η &#919;&#x0397;U+0397
Θ &#920;&#x0398;U+0398
Ι &#921;&#x0399;U+0399
Κ &#922;&#x039A;U+039A
Λ &#923;&#x039B;U+039B
Μ &#924;&#x039C;U+039C
Ν &#925;&#x039D;U+039D
Ξ &#926;&#x039E;U+039E
Ο &#927;&#x039F;U+039F
Π &#928;&#x03A0;U+03A0
Ρ &#929;&#x03A1;U+03A1
Σ &#931;&#x03A3;U+03A3
Τ &#932;&#x03A4;U+03A4
Υ &#933;&#x03A5;U+03A5
Φ &#934;&#x03A6;U+03A6
Χ &#935;&#x03A7;U+03A7
Ψ &#936;&#x03A8;U+03A8
Ω &#937;&#x03A9;U+03A9
α &#945;&#x03B1;U+03B1
β &#946;&#x03B2;U+03B2
γ &#947;&#x03B3;U+03B3
δ &#948;&#x03B4;U+03B4
ε &#949;&#x03B5;U+03B5
ζ &#950;&#x03B6;U+03B6
η &#951;&#x03B7;U+03B7
θ &#952;&#x03B8;U+03B8
ι &#953;&#x03B9;U+03B9
κ &#954;&#x03BA;U+03BA
λ &#955;&#x03BB;U+03BB
μ &#956;&#x03BC;U+03BC
ν &#957;&#x03BD;U+03BD
ξ &#958;&#x03BE;U+03BE
ο &#959;&#x03BF;U+03BF
π &#960;&#x03C0;U+03C0
ρ &#961;&#x03C1;U+03C1
ς &#962;&#x03C2;U+03C2
σ &#963;&#x03C3;U+03C3
τ &#964;&#x03C4;U+03C4
υ &#965;&#x03C5;U+03C5
φ &#966;&#x03C6;U+03C6
χ &#967;&#x03C7;U+03C7
ψ &#968;&#x03C8;U+03C8
ω &#969;&#x03C9;U+03C9
ϒ &#978;&#x03D2;U+03D2 Upsilon with hook
ϛ &#987;&#x03DB;U+03DB Stigma
ϡ &#993;&#x03E1;U+03E1 Sampi

Greek Diacriticals

Since diacriticals overstrike the previous character, it is necessary to choose a character for use in the table below. We've chosen to use the letter alpha for all diacriticals even though in some cases that may not make sense. Just remember that alpha is just a placeholder here for the actual character you will use in your document.

CharacterDecimal EntityHex EntityUnicode Value
ὰ &#768;&#x0300;U+0300 Grave accent
ά &#769;&#x0301;U+0301 Acute accent
α̃ &#771;&#x0303;U+0303 Tilde
ᾱ &#772;&#x0304;U+0304 Macron
α̅ &#773;&#x0305;U+0305 Overline
α̈ &#776;&#x0308;U+0308 Diaresis
α̑ &#785;&#x0311;U+0311 Inverted breve
ἀ &#787;&#x0313;U+0313 Comma above
ἁ &#788;&#x0314;U+0314 Reverse comma above
α̣ &#803;&#x0323;U+0323 Dot below
ᾶ &#834;&#x0342;U+0342 Perispomeni
ἀ &#835;&#x0343;U+0343 Koronis
α̈́ &#836;&#x0344;U+0344 Dialytika
ᾳ &#837;&#x0345;U+0345 Iota subscript

Greek Extended Characters

BookBuilder supports the Unicode Greek Extended characters (precomposed polytonic Greek) by decomposing them into their normalized canonical form. Certain characters are not supported due to a lack of support in the ancient Greek fonts we use on some platforms. These include the following:

CharacterDecimal EntityHex EntityUnicode Value
 &#7936;&#x1F00;U+1F00 GREEK SMALL LETTER ALPHA WITH PSILI
 &#7937;&#x1F01;U+1F01 GREEK SMALL LETTER ALPHA WITH DASIA
 &#7938;&#x1F02;U+1F02 GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA
 &#7939;&#x1F03;U+1F03 GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA
 &#7940;&#x1F04;U+1F04 GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA
 &#7941;&#x1F05;U+1F05 GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA
 &#7942;&#x1F06;U+1F06 GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI
 &#7943;&#x1F07;U+1F07 GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI
 &#7944;&#x1F08;U+1F08 GREEK CAPITAL LETTER ALPHA WITH PSILI
 &#7945;&#x1F09;U+1F09 GREEK CAPITAL LETTER ALPHA WITH DASIA
 &#7946;&#x1F0A;U+1F0A GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA
 &#7947;&#x1F0B;U+1F0B GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA
 &#7948;&#x1F0C;U+1F0C GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA
 &#7949;&#x1F0D;U+1F0D GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA
 &#7950;&#x1F0E;U+1F0E GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI
 &#7951;&#x1F0F;U+1F0F GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI
 &#7952;&#x1F10;U+1F10 GREEK SMALL LETTER EPSILON WITH PSILI
 &#7953;&#x1F11;U+1F11 GREEK SMALL LETTER EPSILON WITH DASIA
 &#7954;&#x1F12;U+1F12 GREEK SMALL LETTER EPSILON WITH PSILI AND VARIA
 &#7955;&#x1F13;U+1F13 GREEK SMALL LETTER EPSILON WITH DASIA AND VARIA
 &#7956;&#x1F14;U+1F14 GREEK SMALL LETTER EPSILON WITH PSILI AND OXIA
 &#7957;&#x1F15;U+1F15 GREEK SMALL LETTER EPSILON WITH DASIA AND OXIA
 &#7960;&#x1F18;U+1F18 GREEK CAPITAL LETTER EPSILON WITH PSILI
 &#7961;&#x1F19;U+1F19 GREEK CAPITAL LETTER EPSILON WITH DASIA
 &#7962;&#x1F1A;U+1F1A GREEK CAPITAL LETTER EPSILON WITH PSILI AND VARIA
 &#7963;&#x1F1B;U+1F1B GREEK CAPITAL LETTER EPSILON WITH DASIA AND VARIA
 &#7964;&#x1F1C;U+1F1C GREEK CAPITAL LETTER EPSILON WITH PSILI AND OXIA
 &#7965;&#x1F1D;U+1F1D GREEK CAPITAL LETTER EPSILON WITH DASIA AND OXIA
 &#7968;&#x1F20;U+1F20 GREEK SMALL LETTER ETA WITH PSILI
 &#7969;&#x1F21;U+1F21 GREEK SMALL LETTER ETA WITH DASIA
 &#7970;&#x1F22;U+1F22 GREEK SMALL LETTER ETA WITH PSILI AND VARIA
 &#7971;&#x1F23;U+1F23 GREEK SMALL LETTER ETA WITH DASIA AND VARIA
 &#7972;&#x1F24;U+1F24 GREEK SMALL LETTER ETA WITH PSILI AND OXIA
 &#7973;&#x1F25;U+1F25 GREEK SMALL LETTER ETA WITH DASIA AND OXIA
 &#7974;&#x1F26;U+1F26 GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI
 &#7975;&#x1F27;U+1F27 GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI
 &#7976;&#x1F28;U+1F28 GREEK CAPITAL LETTER ETA WITH PSILI
 &#7977;&#x1F29;U+1F29 GREEK CAPITAL LETTER ETA WITH DASIA
 &#7978;&#x1F2A;U+1F2A GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA
 &#7979;&#x1F2B;U+1F2B GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA
 &#7980;&#x1F2C;U+1F2C GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA
 &#7981;&#x1F2D;U+1F2D GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA
 &#7982;&#x1F2E;U+1F2E GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI
 &#7983;&#x1F2F;U+1F2F GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI
 &#7984;&#x1F30;U+1F30 GREEK SMALL LETTER IOTA WITH PSILI
 &#7985;&#x1F31;U+1F31 GREEK SMALL LETTER IOTA WITH DASIA
 &#7986;&#x1F32;U+1F32 GREEK SMALL LETTER IOTA WITH PSILI AND VARIA
 &#7987;&#x1F33;U+1F33 GREEK SMALL LETTER IOTA WITH DASIA AND VARIA
 &#7988;&#x1F34;U+1F34 GREEK SMALL LETTER IOTA WITH PSILI AND OXIA
 &#7989;&#x1F35;U+1F35 GREEK SMALL LETTER IOTA WITH DASIA AND OXIA
 &#7990;&#x1F36;U+1F36 GREEK SMALL LETTER IOTA WITH PSILI AND PERISPOMENI
 &#7991;&#x1F37;U+1F37 GREEK SMALL LETTER IOTA WITH DASIA AND PERISPOMENI
 &#7992;&#x1F38;U+1F38 GREEK CAPITAL LETTER IOTA WITH PSILI
 &#7993;&#x1F39;U+1F39 GREEK CAPITAL LETTER IOTA WITH DASIA
 &#7994;&#x1F3A;U+1F3A GREEK CAPITAL LETTER IOTA WITH PSILI AND VARIA
 &#7995;&#x1F3B;U+1F3B GREEK CAPITAL LETTER IOTA WITH DASIA AND VARIA
 &#7996;&#x1F3C;U+1F3C GREEK CAPITAL LETTER IOTA WITH PSILI AND OXIA
 &#7997;&#x1F3D;U+1F3D GREEK CAPITAL LETTER IOTA WITH DASIA AND OXIA
 &#7998;&#x1F3E;U+1F3E GREEK CAPITAL LETTER IOTA WITH PSILI AND PERISPOMENI
Ἷ &#7999;&#x1F3F;U+1F3F GREEK CAPITAL LETTER IOTA WITH DASIA AND PERISPOMENI
 &#8000;&#x1F40;U+1F40 GREEK SMALL LETTER OMICRON WITH PSILI
 &#8001;&#x1F41;U+1F41 GREEK SMALL LETTER OMICRON WITH DASIA
 &#8002;&#x1F42;U+1F42 GREEK SMALL LETTER OMICRON WITH PSILI AND VARIA
 &#8003;&#x1F43;U+1F43 GREEK SMALL LETTER OMICRON WITH DASIA AND VARIA
 &#8004;&#x1F44;U+1F44 GREEK SMALL LETTER OMICRON WITH PSILI AND OXIA
 &#8005;&#x1F45;U+1F45 GREEK SMALL LETTER OMICRON WITH DASIA AND OXIA
 &#8008;&#x1F48;U+1F48 GREEK CAPITAL LETTER OMICRON WITH PSILI
 &#8009;&#x1F49;U+1F49 GREEK CAPITAL LETTER OMICRON WITH DASIA
 &#8010;&#x1F4A;U+1F4A GREEK CAPITAL LETTER OMICRON WITH PSILI AND VARIA
 &#8011;&#x1F4B;U+1F4B GREEK CAPITAL LETTER OMICRON WITH DASIA AND VARIA
 &#8012;&#x1F4C;U+1F4C GREEK CAPITAL LETTER OMICRON WITH PSILI AND OXIA
 &#8013;&#x1F4D;U+1F4D GREEK CAPITAL LETTER OMICRON WITH DASIA AND OXIA
 &#8016;&#x1F50;U+1F50 GREEK SMALL LETTER UPSILON WITH PSILI
 &#8017;&#x1F51;U+1F51 GREEK SMALL LETTER UPSILON WITH DASIA
 &#8018;&#x1F52;U+1F52 GREEK SMALL LETTER UPSILON WITH PSILI AND VARIA
 &#8019;&#x1F53;U+1F53 GREEK SMALL LETTER UPSILON WITH DASIA AND VARIA
 &#8020;&#x1F54;U+1F54 GREEK SMALL LETTER UPSILON WITH PSILI AND OXIA
 &#8021;&#x1F55;U+1F55 GREEK SMALL LETTER UPSILON WITH DASIA AND OXIA
 &#8022;&#x1F56;U+1F56 GREEK SMALL LETTER UPSILON WITH PSILI AND PERISPOMENI
 &#8023;&#x1F57;U+1F57 GREEK SMALL LETTER UPSILON WITH DASIA AND PERISPOMENI
 &#8025;&#x1F59;U+1F59 GREEK CAPITAL LETTER UPSILON WITH DASIA
 &#8027;&#x1F5B;U+1F5B GREEK CAPITAL LETTER UPSILON WITH DASIA AND VARIA
 &#8029;&#x1F5D;U+1F5D GREEK CAPITAL LETTER UPSILON WITH DASIA AND OXIA
 &#8031;&#x1F5F;U+1F5F GREEK CAPITAL LETTER UPSILON WITH DASIA AND PERISPOMENI
 &#8032;&#x1F60;U+1F60 GREEK SMALL LETTER OMEGA WITH PSILI
 &#8033;&#x1F61;U+1F61 GREEK SMALL LETTER OMEGA WITH DASIA
 &#8034;&#x1F62;U+1F62 GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA
 &#8035;&#x1F63;U+1F63 GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA
 &#8036;&#x1F64;U+1F64 GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA
 &#8037;&#x1F65;U+1F65 GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA
 &#8038;&#x1F66;U+1F66 GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI
 &#8039;&#x1F67;U+1F67 GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI
 &#8040;&#x1F68;U+1F68 GREEK CAPITAL LETTER OMEGA WITH PSILI
 &#8041;&#x1F69;U+1F69 GREEK CAPITAL LETTER OMEGA WITH DASIA
 &#8042;&#x1F6A;U+1F6A GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA
 &#8043;&#x1F6B;U+1F6B GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA
 &#8044;&#x1F6C;U+1F6C GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA
 &#8045;&#x1F6D;U+1F6D GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA
 &#8046;&#x1F6E;U+1F6E GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI
 &#8047;&#x1F6F;U+1F6F GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI
 &#8048;&#x1F70;U+1F70 GREEK SMALL LETTER ALPHA WITH VARIA
 &#8049;&#x1F71;U+1F71 GREEK SMALL LETTER ALPHA WITH OXIA
 &#8050;&#x1F72;U+1F72 GREEK SMALL LETTER EPSILON WITH VARIA
 &#8051;&#x1F73;U+1F73 GREEK SMALL LETTER EPSILON WITH OXIA
 &#8052;&#x1F74;U+1F74 GREEK SMALL LETTER ETA WITH VARIA
 &#8053;&#x1F75;U+1F75 GREEK SMALL LETTER ETA WITH OXIA
 &#8054;&#x1F76;U+1F76 GREEK SMALL LETTER IOTA WITH VARIA
 &#8055;&#x1F77;U+1F77 GREEK SMALL LETTER IOTA WITH OXIA
 &#8056;&#x1F78;U+1F78 GREEK SMALL LETTER OMICRON WITH VARIA
 &#8057;&#x1F79;U+1F79 GREEK SMALL LETTER OMICRON WITH OXIA
 &#8058;&#x1F7A;U+1F7A GREEK SMALL LETTER UPSILON WITH VARIA
 &#8059;&#x1F7B;U+1F7B GREEK SMALL LETTER UPSILON WITH OXIA
 &#8060;&#x1F7C;U+1F7C GREEK SMALL LETTER OMEGA WITH VARIA
 &#8061;&#x1F7D;U+1F7D GREEK SMALL LETTER OMEGA WITH OXIA
 &#8064;&#x1F80;U+1F80 GREEK SMALL LETTER ALPHA WITH PSILI AND YPOGEGRAMMENI
 &#8065;&#x1F81;U+1F81 GREEK SMALL LETTER ALPHA WITH DASIA AND YPOGEGRAMMENI
 &#8066;&#x1F82;U+1F82 GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA AND YPOGEGRAMMENI
 &#8067;&#x1F83;U+1F83 GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA AND YPOGEGRAMMENI
 &#8068;&#x1F84;U+1F84 GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA AND YPOGEGRAMMENI
 &#8069;&#x1F85;U+1F85 GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA AND YPOGEGRAMMENI
 &#8070;&#x1F86;U+1F86 GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
 &#8071;&#x1F87;U+1F87 GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
 &#8072;&#x1F88;U+1F88 GREEK CAPITAL LETTER ALPHA WITH PSILI AND PROSGEGRAMMENI
 &#8073;&#x1F89;U+1F89 GREEK CAPITAL LETTER ALPHA WITH DASIA AND PROSGEGRAMMENI
 &#8074;&#x1F8A;U+1F8A GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA AND PROSGEGRAMMENI
 &#8075;&#x1F8B;U+1F8B GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA AND PROSGEGRAMMENI
 &#8076;&#x1F8C;U+1F8C GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA AND PROSGEGRAMMENI
 &#8077;&#x1F8D;U+1F8D GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA AND PROSGEGRAMMENI
 &#8078;&#x1F8E;U+1F8E GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
 &#8079;&#x1F8F;U+1F8F GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
 &#8080;&#x1F90;U+1F90 GREEK SMALL LETTER ETA WITH PSILI AND YPOGEGRAMMENI
 &#8081;&#x1F91;U+1F91 GREEK SMALL LETTER ETA WITH DASIA AND YPOGEGRAMMENI
 &#8082;&#x1F92;U+1F92 GREEK SMALL LETTER ETA WITH PSILI AND VARIA AND YPOGEGRAMMENI
 &#8083;&#x1F93;U+1F93 GREEK SMALL LETTER ETA WITH DASIA AND VARIA AND YPOGEGRAMMENI
 &#8084;&#x1F94;U+1F94 GREEK SMALL LETTER ETA WITH PSILI AND OXIA AND YPOGEGRAMMENI
 &#8085;&#x1F95;U+1F95 GREEK SMALL LETTER ETA WITH DASIA AND OXIA AND YPOGEGRAMMENI
 &#8086;&#x1F96;U+1F96 GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
 &#8087;&#x1F97;U+1F97 GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
 &#8088;&#x1F98;U+1F98 GREEK CAPITAL LETTER ETA WITH PSILI AND PROSGEGRAMMENI
 &#8089;&#x1F99;U+1F99 GREEK CAPITAL LETTER ETA WITH DASIA AND PROSGEGRAMMENI
 &#8090;&#x1F9A;U+1F9A GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA AND PROSGEGRAMMENI
 &#8091;&#x1F9B;U+1F9B GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA AND PROSGEGRAMMENI
 &#8092;&#x1F9C;U+1F9C GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA AND PROSGEGRAMMENI
 &#8093;&#x1F9D;U+1F9D GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA AND PROSGEGRAMMENI
 &#8094;&#x1F9E;U+1F9E GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
 &#8095;&#x1F9F;U+1F9F GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
 &#8096;&#x1FA0;U+1FA0 GREEK SMALL LETTER OMEGA WITH PSILI AND YPOGEGRAMMENI
 &#8097;&#x1FA1;U+1FA1 GREEK SMALL LETTER OMEGA WITH DASIA AND YPOGEGRAMMENI
 &#8098;&#x1FA2;U+1FA2 GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA AND YPOGEGRAMMENI
 &#8099;&#x1FA3;U+1FA3 GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA AND YPOGEGRAMMENI
 &#8100;&#x1FA4;U+1FA4 GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA AND YPOGEGRAMMENI
 &#8101;&#x1FA5;U+1FA5 GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA AND YPOGEGRAMMENI
 &#8102;&#x1FA6;U+1FA6 GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
 &#8103;&#x1FA7;U+1FA7 GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
 &#8104;&#x1FA8;U+1FA8 GREEK CAPITAL LETTER OMEGA WITH PSILI AND PROSGEGRAMMENI
 &#8105;&#x1FA9;U+1FA9 GREEK CAPITAL LETTER OMEGA WITH DASIA AND PROSGEGRAMMENI
 &#8106;&#x1FAA;U+1FAA GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA AND PROSGEGRAMMENI
 &#8107;&#x1FAB;U+1FAB GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA AND PROSGEGRAMMENI
 &#8108;&#x1FAC;U+1FAC GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA AND PROSGEGRAMMENI
 &#8109;&#x1FAD;U+1FAD GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA AND PROSGEGRAMMENI
 &#8110;&#x1FAE;U+1FAE GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
 &#8111;&#x1FAF;U+1FAF GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
 &#8113;&#x1FB1;U+1FB1 GREEK SMALL LETTER ALPHA WITH MACRON
 &#8114;&#x1FB2;U+1FB2 GREEK SMALL LETTER ALPHA WITH VARIA AND YPOGEGRAMMENI
 &#8115;&#x1FB3;U+1FB3 GREEK SMALL LETTER ALPHA WITH YPOGEGRAMMENI
 &#8116;&#x1FB4;U+1FB4 GREEK SMALL LETTER ALPHA WITH OXIA AND YPOGEGRAMMENI
 &#8118;&#x1FB6;U+1FB6 GREEK SMALL LETTER ALPHA WITH PERISPOMENI
 &#8119;&#x1FB7;U+1FB7 GREEK SMALL LETTER ALPHA WITH PERISPOMENI AND YPOGEGRAMMENI
 &#8121;&#x1FB9;U+1FB9 GREEK CAPITAL LETTER ALPHA WITH MACRON
 &#8122;&#x1FBA;U+1FBA GREEK CAPITAL LETTER ALPHA WITH VARIA
 &#8123;&#x1FBB;U+1FBB GREEK CAPITAL LETTER ALPHA WITH OXIA
 &#8124;&#x1FBC;U+1FBC GREEK CAPITAL LETTER ALPHA WITH PROSGEGRAMMENI
 &#8126;&#x1FBE;U+1FBE GREEK PROSGEGRAMMENI
 &#8130;&#x1FC2;U+1FC2 GREEK SMALL LETTER ETA WITH VARIA AND YPOGEGRAMMENI
 &#8131;&#x1FC3;U+1FC3 GREEK SMALL LETTER ETA WITH YPOGEGRAMMENI
 &#8132;&#x1FC4;U+1FC4 GREEK SMALL LETTER ETA WITH OXIA AND YPOGEGRAMMENI
 &#8134;&#x1FC6;U+1FC6 GREEK SMALL LETTER ETA WITH PERISPOMENI
 &#8135;&#x1FC7;U+1FC7 GREEK SMALL LETTER ETA WITH PERISPOMENI AND YPOGEGRAMMENI
 &#8136;&#x1FC8;U+1FC8 GREEK CAPITAL LETTER EPSILON WITH VARIA
 &#8137;&#x1FC9;U+1FC9 GREEK CAPITAL LETTER EPSILON WITH OXIA
 &#8138;&#x1FCA;U+1FCA GREEK CAPITAL LETTER ETA WITH VARIA
 &#8139;&#x1FCB;U+1FCB GREEK CAPITAL LETTER ETA WITH OXIA
 &#8140;&#x1FCC;U+1FCC GREEK CAPITAL LETTER ETA WITH PROSGEGRAMMENI
 &#8145;&#x1FD1;U+1FD1 GREEK SMALL LETTER IOTA WITH MACRON
 &#8146;&#x1FD2;U+1FD2 GREEK SMALL LETTER IOTA WITH DIALYTIKA AND VARIA
 &#8147;&#x1FD3;U+1FD3 GREEK SMALL LETTER IOTA WITH DIALYTIKA AND OXIA
 &#8150;&#x1FD6;U+1FD6 GREEK SMALL LETTER IOTA WITH PERISPOMENI
 &#8153;&#x1FD9;U+1FD9 GREEK CAPITAL LETTER IOTA WITH MACRON
 &#8154;&#x1FDA;U+1FDA GREEK CAPITAL LETTER IOTA WITH VARIA
 &#8155;&#x1FDB;U+1FDB GREEK CAPITAL LETTER IOTA WITH OXIA
 &#8161;&#x1FE1;U+1FE1 GREEK SMALL LETTER UPSILON WITH MACRON
 &#8162;&#x1FE2;U+1FE2 GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND VARIA
 &#8163;&#x1FE3;U+1FE3 GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND OXIA
 &#8164;&#x1FE4;U+1FE4 GREEK SMALL LETTER RHO WITH PSILI
 &#8165;&#x1FE5;U+1FE5 GREEK SMALL LETTER RHO WITH DASIA
 &#8166;&#x1FE6;U+1FE6 GREEK SMALL LETTER UPSILON WITH PERISPOMENI
 &#8169;&#x1FE9;U+1FE9 GREEK CAPITAL LETTER UPSILON WITH MACRON
 &#8170;&#x1FEA;U+1FEA GREEK CAPITAL LETTER UPSILON WITH VARIA
 &#8171;&#x1FEB;U+1FEB GREEK CAPITAL LETTER UPSILON WITH OXIA
 &#8172;&#x1FEC;U+1FEC GREEK CAPITAL LETTER RHO WITH DASIA
 &#8178;&#x1FF2;U+1FF2 GREEK SMALL LETTER OMEGA WITH VARIA AND YPOGEGRAMMENI
 &#8179;&#x1FF3;U+1FF3 GREEK SMALL LETTER OMEGA WITH YPOGEGRAMMENI
 &#8180;&#x1FF4;U+1FF4 GREEK SMALL LETTER OMEGA WITH OXIA AND YPOGEGRAMMENI
 &#8182;&#x1FF6;U+1FF6 GREEK SMALL LETTER OMEGA WITH PERISPOMENI
 &#8183;&#x1FF7;U+1FF7 GREEK SMALL LETTER OMEGA WITH PERISPOMENI AND YPOGEGRAMMENI
 &#8184;&#x1FF8;U+1FF8 GREEK CAPITAL LETTER OMICRON WITH VARIA
 &#8185;&#x1FF9;U+1FF9 GREEK CAPITAL LETTER OMICRON WITH OXIA
 &#8186;&#x1FFA;U+1FFA GREEK CAPITAL LETTER OMEGA WITH VARIA
 &#8187;&#x1FFB;U+1FFB GREEK CAPITAL LETTER OMEGA WITH OXIA
 &#8188;&#x1FFC;U+1FFC GREEK CAPITAL LETTER OMEGA WITH PROSGEGRAMMENI

Hebrew

If you are able to type Hebrew letters into your text editor, chances are good that they will work with BookBuilder. If you have difficulty with certain characters, try using the equivalent character entities to represent the character and any attached diacriticals, as described below.

Hebrew letters with diacriticals (vowel points) are constructed in our programs by combing a base character with a combining character. A combining character is one that “overstrikes” the character which precedes it. Only one combining character is allowed to follow a base character. Since there are times when more than one diacritical is needed on a letter, our Hebrew font includes precomposed base characters that consist of a base character with one or more diacriticals all in one glyph. It also includes precomposed diacriticals which are combinations of diacriticals in one glyph. These glyphs are chosen automatically by the program when needed. You simply encode the base character and the diacriticals you want to go with it.

Earlier versions of PocketBible used a static method of constructing characters that required you to choose from a list of combinations which we had previously defined. The latest versions of PocketBible use a new algorithm that dynamically combines base characters and diacriticals without you first having to find the formula from our list.

When entering Hebrew text into your document, the first character must be one of the base characters listed below. This should be followed by diacritical characters such as accents and vowel points. Diacriticals can appear in any order. If you get an error when building your book, try simplifying the diacriticals. If you cannot publish your book without getting errors, contact Technical Support to see if we can extend the capabilities to accommodate your needs.

Hebrew Base Characters

CharacterDecimal EntityHex EntityUnicode Value
&#32;&#x0020;U+0020 Space
·&#183;&#x00B7;U+00B7 Centered dot
־&#1470;&#x05BE;U+05BE Maqaf
׀&#1472;&#x05C0;U+05C0 Paseq
׃&#1475;&#x05C3;U+05C3 Sof Paseq
א&#1488;&#x05D0;U+05D0
ב&#1489;&#x05D1;U+05D1
ג&#1490;&#x05D2;U+05D2
ד&#1491;&#x05D3;U+05D3
ה&#1492;&#x05D4;U+05D4
ו&#1493;&#x05D5;U+05D5
ז&#1494;&#x05D6;U+05D6
ח&#1495;&#x05D7;U+05D7
ט&#1496;&#x05D8;U+05D8
י&#1497;&#x05D9;U+05D9
ך&#1498;&#x05DA;U+05DA
כ&#1499;&#x05DB;U+05DB
ל&#1500;&#x05DC;U+05DC
ם&#1501;&#x05DD;U+05DD
מ&#1502;&#x05DE;U+05DE
ן&#1503;&#x05DF;U+05DF
נ&#1504;&#x05E0;U+05E0
ס&#1505;&#x05E1;U+05E1
ע&#1506;&#x05E2;U+05E2
ף&#1507;&#x05E3;U+05E3
פ&#1508;&#x05E4;U+05E4
ץ&#1509;&#x05E5;U+05E5
צ&#1510;&#x05E6;U+05E6
ק&#1511;&#x05E7;U+05E7
ר&#1512;&#x05E8;U+05E8
ש&#1513;&#x05E9;U+05E9
ת&#1514;&#x05EA;U+05EA
&#9676;&#x25CC;U+25CC Dotted circle

Hebrew Diacriticals

Since diacriticals overstrike the previous character, it is necessary for us to choose a character for use in the table below to demonstrate these diacriticals. We've chosen to use the letter mem for all diacriticals even though in some cases that may not make sense. Just remember that mem is just a placeholder here for the actual character you will use in your document.

CharacterCharacter EntityUnicode Value
מ̭&#813;&#x032D;U+032D Hat below
מְ&#1456;&#x05B0;U+05B0 Point Sheva
מֱ&#1457;&#x05B1;U+05B1 Point Hataf Segol
מֲ&#1458;&#x05B2;U+05B2 Point Hataf Patah
מֳ&#1459;&#x05B3;U+05B3 Point Hataf Qamats
מִ&#1460;&#x05B4;U+05B4 Point Hiriq
מֵ&#1461;&#x05B5;U+05B5 Point Tsere
מֶ&#1462;&#x05B6;U+05B6 Point Segol
מַ&#1463;&#x05B7;U+05B7 Point Patah
מָ&#1464;&#x05B8;U+05B8 Point Qamats
מֹ&#1465;&#x05B9;U+05B9 Point Holam
מֻ&#1467;&#x05BB;U+05BB Point Qubuts
מּ&#1468;&#x05BC;U+05BC Point Dagesh
מֽ&#1469;&#x05BD;U+05BD Point Meteg
מֿ&#1471;&#x05BF;U+05BF Point Rafe
מׁ&#1473;&#x05C1;U+05C1 Point Shin Dot
מׂ&#1474;&#x05C2;U+05C2 Point Sin Dot
מׄ&#1476;&#x05C4;U+05C4 Upper Dot

End-User License Agreement (EULA)

We're not lawyers and neither are most of you. When you register and use this software, you agree to the following no-nonsense agreement. If you are planning to create books for distribution or sale, you should read this agreement carefully.

You understand that you're not purchasing any rights in the software itself but rather a license for your personal use of the software. For your convenience, you may install the software on as many compatible devices as you own or control, as long as you are the sole user of the software on all of the devices.

You agree not to give away, sell or otherwise transfer copies of this product to any other party for any reason. When you upgrade the product, your license to use the older versions terminates. You cannot legally give old copies of the product away.

The previous paragraph is not intended to prevent you from transferring your ownership of your single copy of the product to another individual, as long as you destroy all your copies of the software and the new owner agrees with the terms of this agreement and notifies Laridian of the transfer of ownership.

You agree to submit to Laridian all books intended for wide distribution and especially those you intend to sell. The documentation for this product includes procedures for submitting completed books to Laridian for the purpose of assigning a unique Publisher ID and Book ID and for confirmation of their non-competing status. The assignment of these unique identifiers is important to maintaining the integrity of the library of available books. Such assignment will not be unreasonably withheld but may be subject to reasonable terms such as limits on the frequency of submission of the same title and the requirement to own the Professional version of this product in order to receive services from Laridian at no additional cost.

You may not use this product to directly compete with Laridian. By "directly compete" we mean to create electronic books which are also sold by Laridian as of the date you submit your book to Laridian for assignment of its unique Publisher ID and Book ID.

We acknowledge your right to distribute the electronic books you create with these tools as you see fit. You agree to research the copyright status of any work you publish with these tools, and agree to defend us against any claims that might arise against us from your improper use of copyrighted materials.

We acknowledge your right to keep a backup copy of this program for archival purposes only.

You agree that using software of any kind from any company is a risky activity. You will not hold us liable for any loss of time, money, data files, etc. that might be caused by using this product. This is not to say that we expect this to happen; just that you're responsible for backing up your important files and operating your computer with care. Our obligation to you under any and all circumstances is limited to replacing products you've purchased from us that become damaged or lost because of something we did, or refunding your purchase price at our discretion.

LARIDIAN, INC.
February 27, 2015


Copyright © 2015 by Craig Rairdin. All Rights Reserved. Distributed under license by Laridian, Inc. Laridian, PocketBible, and MyBible are registered trademarks of Laridian, Inc. BookBuilder, VerseLinker, and DocAnalyzer are trademarks of Laridian, Inc. Other marks are the property of their respective owners.