* Formatting Tip: Poetry

Posted on August 16th, 2011 by John. Filed under Formatting Tips.


About Formatting Tips.

Poetry is one of the hardest elements to get right when formatting an ebook. The biggest issue is poems visually use a fixed width. Each line needs to be easily distinguishable. If they run together the rhyming and meter can easily be thrown off. Ebooks typically allow for reflowable text. This is where the text on screen changes to accommodate the users selected font, font size, and the screen size. This is exactly what happens on a web page how each line changes length when the browser window is resized.

When dealing with a poem do not put it in a pre tag. Do not use a single p tag and separate each line with a br tag. Do use an ul tag and hide the bullet. All of these methods will end up looking terrible.

When dealing with a poem there are two parts: the poem’s text and the attribution. Each of these parts will be in p tags. Lets start by setting a base p style with CSS. We want to remove the empty space between paragraphs.

p {
    margin-bottom: 0;
    margin-top: 0;
}

There are a few special things we want to do with the poem’s text. First, we want it pushed to the right so it is clear to the reader that they have entered a poem. One way to do this is to put the entire poem in a blockquote tag. I don’t like this because this affect can be achieved with CSS. Second, the text should be smaller than the regular text. Third, we want each line to not be indented. However we do want each line to be distinguishable even if the text is wrapped. The trick is to indent the portion of the line that wraps. Think of this like a reverse paragraph indent. We can make this happen by using a negative value for the text indent. Here is the CSS block to make all this happen.

.poem-text {
    margin-left: 3em;
    font-size: small;
    text-indent: -1em;
}

With many poems there are often breaks ever few lines. Handles these by putting in an almost empty paragraph. It’s necessary to put a non-breaking space in the empty paragraph because completely empty paragraphs are often ignored by devices and reading software.

<p>&nbsp;</p>

For the title we want to have it appear italicized. We also want to force a little space between the poem’s text and the title. The author we want to force some blank space after it so it doesn’t run into a paragraph below. Both the title and author need to be right justified. Finally, I like to use small caps with the title and author. However, there is one major issue with small caps. Many reading devices and software (one’s using Adobe’s software) do not support small caps. Sometimes you can get away with using a CSS transformation to uppercase. Check your targeted reading platform / device to make sure this will come through. If it doesn’t you will need to make the title and author uppercase in the text itself.

.poem-title {
    font-style: italic;
    text-align: right;
    margin-top: 2em;
    /* Pick one or neither */
    font-variant: small-caps;
    text-transform: uppercase;
}
 
.poem-author {
    margin-bottom: 2em;
    text-align: right;
    /* Pick one or neither */
    font-variant: small-caps;
    text-transform: uppercase;
}

The best way to illustrate this concept is with an example. Download ft-poetry.epub. Opening the file with Sigil you will see the example chapters and the external CSS that is referenced by each XHTML file.

Tags: , , , , , , .

    Comments Off


* Sigil 0.4.0 and FlightCrew 0.7.2 Released

Posted on August 15th, 2011 by John. Filed under Sigil.


The long awaited Sigil 0.4.0 release is now out. Along with Sigil is a new release of FlightCrew. FlightCrew version 0.7.2 is the latest version bundled with Sigil.

If you’re an OS X user then one thing need to be aware of is these two releases bump the minimum OS X version to 10.6 (Snow Leopard). The Linux builds (x86 and x64) are built on Ubuntu 11.04.

A lot of work went into 0.4.0. New features and bug fixes galore. See the ChangeLog for full details. I have to thank Strahinja Marković (the original creator) for leaving the 0.4.0 in a nearly finished state. Also, Charles King for being a bug fixing monster and helping make this release great.

One major change that is going to take place next week is, I am switching the source code management (SCM) system from Mercurial (hg) to Git. This will break the update checker in previous versions. Hence waiting a week before making the change. I have already converted FlightCrew (needed to test) so FlightCrew’s updater in previous version won’t inform you of an update. This is unfortunate but unavoidable.

Due to the change to Git the links for the manual in Sigil are not going to work for a week. This is because I’ve updated the locations in Sigil to point to the new locations that won’t be available until the switch to Git.

Tags: , .

    Comments Off


* Dealing With Copyright Infringement – Calibre Being Ripped Off

Posted on August 13th, 2011 by John. Filed under articles, calibre.


*** Update: HamsterSoft has fixed the issue and is now in compliance with the GPL. They are no longer in violation of my copyright in regard to calibre ***

Introduction

Copyright infringement is something many creators come face to face with. Over the past two months it has been something I’ve been dealing with. A third party is using portions of calibre in their proprietary application in violation of the GNU GPL version 3 (GPL v3) that calibre is licensed under. I have been helping deal with this violation.

In early July it was brought to my attention that a new ebook conversion utility, the Hamster Free eBook Converter (HFEC) made by HamsterSoft, was released. Since I work on calibre, looking at other ebook conversion tools is of interest to me. I’ve worked with other people on developing conversion tools and I’ve found that collaboration typically helps everyone.

About the Company

When I started looking into HFEC the fist thing I found was an announcement on the calibre Facebook page that the HFEC is using calibre for conversion in a non-compliant manner. Again, calibre is open source and licensed under the GPL v3. Using calibre’s source code in other programs is fine. We want people to do that and I’ve even helped people with doing so. However, the choice of license was deliberate. Kovid Goyal (the original creator of calibre) chose the GPL v3 because he believes in what the license stands for. Calibre using the GPL v3 is a major factor in why I started contributing to the project. All we ask is that if someone uses portions of calibre in their own project is that they abide by the copyright terms calibre is licensed under (GPL v3).

I looked at HamsterSoft’s website and they offer a variety of products; HFEC is their fourth application. What I noticed is two of their earlier products are very similar in design to HFEC. HamsterSoft use open source projects as the basis of these products. They create a custom interface around an open source base and release their program under a closed source, highly restrictive, proprietary license. In the case of the previous two products the open source projects they used are licensed under weak copyleft licenses. In the case of these two applications there is a good chance that they have not done anything wrong and have properly complied with those projects licenses.

Calibre however, uses a strong copyleft license. While investigating HamsterSoft I noticed that they had calibre listed as being licensed under the LGPL. The big difference between the LGPL and the GPL is the LGPL allows for incorporation in a proprietary application. The GPL does not. Under section 5 subsection C of the GPL v3 it states, “You must license the entire work, as a whole, under this License to anyone who comes into possession of a copy.” Meaning HamsterSoft must release their entire work that incorporates calibre under the GPL v3 and the GPL v3 also requires access to source code.

Initial Contact

The announcement about the GPL violation was made on July 7th. That same day HamsterSoft responded in a a comment. They said, “@Calibre Got it! . We will fix this issues and ask you for your own acception. Thank you! Seems we mess much. Thank you!” I believe that by acception they mean exception. Kovid responded to them asking for an exception with, “@Hamster: Fix your GPL compliance. That means you have to make your product open source or stop using calibre. That much is required by the law.” It’s clear that Kovid has denied granting HamsterSoft a copyright exception to use calibre in HFCE without complying with the GPL v3. Also, even if Kovid had wanted to grant them an exception he cannot. Calibre does not practice copyright assignment. Each contributor retains the copyright on the work they contribute. To grant a copyright exception every contributor would need to agree and I for one would not agree to granting one. I purposely and knowingly put my work on calibre under the GPL v3 because that’s how I want my work licensed.

So, as of July 7th HamsterSoft was contacted in regard to the GPL violation in their HFEC program. Also, on July 7th they responded saying they undertand the issue and will fix it. Under the GPL v3 section 8 HamsterSoft has 30 days from receiving a notice of violation to cure the violation.

On July 11th HamsterSoft responded to their GPL violation via a FaceBook post. In this post they said, “Guys … seems we are much closer to the end of misunderstanding.” Closer is not fixed. Kovid responded to them with what needed to be done to come into compliance with calibre’s licensing (the GPL v3). This was the last communication from HamsterSoft that I am aware of.

Analysis of Steps Taken Toward Compliance

HamsterSoft appeared to make some effort to comply with the GPL v3. I cannot comment on motivations as they could be considered libel so I am only going to state facts as to the action HamsterSoft took. They clarified their licensed (EULA) that GPL components are not subject to their added restrictions such as disassembly, decompilation and reverse engineering. They modified their installer, website and Facebook page to make it clear that their product uses calibre. They uploaded some source code to their web site.

The source code that HamsterSoft uploaded was far from complete. It contains two non-complete binary builds of calibre. No mention if there are or not modifications. It is not clear if they modified calibre because the binary builds are only part of calibre not the entire program as it is officially distributed. No calibre source code, which they must supply (it’s not enough to point to the calibre project’s download page), was present.

Only a small amount of wrapper code that interfaces between calibre and their program was present. I found the following reference in the visual studio project file included in their source archive:

<HintPath>..\..\..\Bin\HamsterEbookConverterUI.dll</HintPath>

This is a reference to a linked, binary component. I’m assuming from the name that this is the actual graphical user interface (GUI). I will note that the GUI portions of HFEC are missing from the source archive. This component is clearly part of their application and was not included. Only portions that directly interact with calibre had their source included in the archive. The majority of the program was not released in a way that complies with the GPL v3.

No Answer Messages

With no response from HamsterSoft after July 11th Kovid sent an email to HamsterSofts support email address. Their support email is their only non-social network contact information.

On July 20th I sent them the following email and received no response:

Your web site says that the Hamster ebook converter program is based
on calibre which is licensed under the GNU GPL v3. This is request for
the all source code for the hamster ebook converter application. As
stated by you “Hamster Free eBook Converter made by HamsterSoft and
based on Calibre-engine created by Kovid Goyal and inherits all GNU
GPL 3.0 restrictions.” Under the GPL using part of a GPL application
in another application that application must be released under the
GPL. As such section 6 of the GPL requires that the corresponding
source code of a conveyed GPL application must be conveyed.

John Schember

With no response I sent another email on July 28th and again I received no response:

Hello HamsterSoft,

I am one of the copyright holders of calibre.

I noticed that you released the source code to the Hamster ebook
converter. While you did release some source code you did not release
all of the source code that links to the project. Specifically the
HamsterEbookConverterUI in by the .csproj file referenced by:

<HintPath>..\..\..\Bin\HamsterEbookConverterUI.dll</HintPath>

As of July 7th you said you would fix this situation. The above does
not fix the GPL compliance of the Hamster ebook converter. Under the
GPL all parts that link or create effectively a single program must be
licensed under a compatible license. The Hamster ebook converter is
effectively a single program and uses calibre (licensed under GPL) you
have released source code but only part of the source code. Other
parts are linked and used the HamsterEbookConverterUI. This needs to
be released in source form as well. The GPL does not permit the use of
a “wrapper” module that intefaces between GPL and non-GPL components.

I want to point out that under the GPL you have 30 days from the first
time you have received notice of violation to fix the issue. As of now
you have approximately 10 days until the deadline where all rights
granted to you under the GPL to use calibre will be terminated. The
deadline is Sunday August 7th.

Also, I want to point out that calibre is developed primarily by Kovid
Goyal but he is supported by a number of other developers around the
world. Due to the way calibre is licensed each individual developer
retains their own copyright. As such each individual developer can
claim copyright infringement if this situation is not rectified in the
allotted time.

John Schember

After having been given 30 days (as required by the GPL v3) from notification HamsterSoft has not brought themselves into compliance with calibre’s licensing. So, on August 8th I sent them the following email informing them that I am, as a copyright holder, permanently terminating any all all rights granted to them under the GPL v3 in regard to my work in calibre due to non-compliance of copyright terms.

Dear HamsterSoft,

You are using a work that I own the copyright of. The name of the work
involved is “Hamster Free eBook Converter”. It appears on a site
operated by you at http://ebook.hamstersoft.com/en/home,
http://ebook.hamstersoft.com/en/download, and via direct download at

http://stuff.hamstersoft.com/software/hamsterfreeebookconverter.exe.

You have built your program on the open source ebook tool called
calibre. I am a copyright holder of portions of calibre. Specifically
I hold copyright on portions of calibre relating to ebook conversion
for the following formats: TXT, HTMLZ, PDB, PML, PDF, and FB2. This is
in addition to other components of calibre.

My work on these components is available at

http://bazaar.launchpad.net/~kovid/calibre/trunk/files/head:/src/calibre/ebooks/.

Many of the listed components first appeared as part of calibre as of
2009.

Your copying and or use of my work, which appear at the link above, is
unauthorized. You have not received permission to use the piece nor to
make or distribute copies of them in the manner you have. Calibre is
licensed under the GPL version 3 and you have failed to comply with
the terms of this license.

You cannot incorporate GPL-covered software in a proprietary system.
The GPL states that any extended version of a GPL covered work must
also be released under the GPL if it is released at all. By embedding
calibre in The Hamster Free eBook Converter you have effectively made
them a single program. Also, the GPL does not permit the use of a
“wrapper” module that interfaces between GPL and non-GPL components.

As of July 7th 2011 you said you would fix this situation. As of
August 8th 2011 you have not fixed. As of now any all all rights
afforded to you to use portions of calibre under the GPL v3 are
terminated due to non-compliance with the license. The following
issues remain:

1) The component
<HintPath>..\..\..\Bin\HamsterEbookConverterUI.dll</HintPath>
referenced by your application has not had it’s source code released
under the GPL.

2) The source code for calibre and any modifications you have made to
it are not available by you. By being a distributor of calibre in
binary form you are responsible for also distributing it in source
form including any changes you have made to calibre.

Therefore, I believe you have willfully infringed my rights under 17
USC §101, et seq. and could be liable for statutory damages as high as
$100,000. Further, such copyright infringement is a direct violation
of the Digital Millennium Copyright Act and International Copyright
Law.

I demand that you immediately cease the use and distribution of the
work and all copies of it, that you remove any further works you may
have stolen and that you desist from this or any other infringement of
my rights in the future. Furthermore, I demand that you post an
apology.

You have already been given 30 days as afforded by the GPL from the
time you were notified of infringement. At this time, I shall consider
taking the full legal remedies available to rectify this situation
including contacting my lawyer.

Sincerely,

John Schember

Termination of Rights

As of August 13th HamsterSoft has again not responded to any email I’ve sent them. They are also continuing illegally to distribute the application they have built (HFEC) using my copyrighted material. As of August 8th all rights to use my work were terminated by me per the terms of the license (GPL v3) I released my work under. Due to the way HamsterSoft handled this situation I have no intentions of reinstatement.

A Note About Copyright and the GPL

Copyright is copyright. It doesn’t matter if it’s software, a book, an article, or a magazine. The GPL is a copyright license granting rights under specific terms. Licensing a work under the GPL is not very different than an author giving a publisher distribution rights.

Just because calibre is open source does not mean it is freely available for everyone to abuse. As an author (including software) my work is still covered by copyright. The GPL is simply a way I have licensed certain works. If one does not comply with the license then they do not have the right to use or distribute my work.

Legal Research

Due to this entire situation being a copyright issue there are a number of legal options. These options apply to all authors (in the USA, I can’t speak for elsewhere) for any type of work that is covered by copyright.

Surprisingly I had an issue finding information on how to handle a GPL violation. The easy part is informing the party of the violation. I couldn’t find much information on what to do after. I tried reaching out to the Software Freedom Law Center for advice but I didn’t receive a response. Kovid reached out to GPL Violations and was told that our options are limited. Their research found that HamsterSoft is a Russian company and due to this there isn’t much they could do for us. They advised seeing about having HamserSoft delisted from Google.

The best resource I found is Plagiarism Today (PT). It is a website devoted to helping people deal with copyright issues. They provide some great resources including template letters. They have advice for all copyright issues not just ones dealing with software.

Really our options come down to filing a lawsuit or utilizing the takedown notice provisions of the Digital Millennium Copyright Act (DMCA). At this point I opted for using DMCA notices. They are easy and exercising your rights under the DMCA doesn’t cost anything. Filing a lawsuit would require hiring an attorney and paying potentially a large sum of money. If HamsterSoft really is in Russia there is a good chance that a lawsuit wouldn’t go anywhere. Utilizing the DMCA does not mean that a lawsuit cannot be filled; it is still an option.

Digital Millennium Copyright Act (DMCA) Takedown Provision

The DMCA has provisions for notifying hosts and having copyrighted material removed. Basically what happens is a host cannot be found liable for distributing infringing material posted by third parties or customers if they follow the notice and takedown process. I decided to target Google, Yahoo, Bing and Facebook. I think the GPL Violations advice of having the delisted will be the most successful route I can take. It’s also the most affordable first step to take.

When sending a DMCA takedown notice there are a number of requirements that must be met. What I found was not required is an account of what action was previously taken to stop the infringement. I included it anyway when possible because many hosts (and search engines) forward the notice to various parties. Google for instance sends the notice to Chilling Effects as well as the accused.

Google and Facebook both have a web form for submitting notices. Bing (Microsoft) has a number of ways to send them a notice. I chose email. I sent the notices on August 8th. Here is the email I sent to both Microsoft and Yahoo:

To Whom It May Concern,

I am writing to you to avail myself of my rights under the Digital
Millennium Copyright Act (DMCA). This letter is a Notice of
Infringement as authorized in § 512(c) of the U.S. Copyright Law. I
wish to report an instance of what I feel in good faith is an instance
or Copyright Infringement. The infringing material appears on the
Service for which you are the designated agent.

You are registered with the U.S. Copyright Office as the Designated
Service Provider Agent to receive notifications of alleged Copyright
infringement with respect to users of the Service for which you are
the Designated Agent.

1. The material which I contend belongs to me, and appears illegally
on the Service is the following:

Hamster Free eBook Converter

2. The infringing material appears at the website addresses:

URLs Redacted

3. The original material appears at these addresses:

https://launchpad.net/calibre

http://calibre-ebook.com

4. The infringing material is available through the following search results

“hamster ebook”

URL Redacted

5. calibre is licensed under the GPL version 3. The Hamster Free eBook
Converter program uses portions of calibre in a way that is
incompatible with the GPL. As of July 7th 2011 Hamster was notified
and responded asking for an copyright exception. An exception was
promptly denied. It has now been more than 30 days and HamsterSoft has
not made the necessary changes to comply with calibre’s license. By
embedding calibre in The Hamster Free eBook Converter HamsterSoft has
effectively made them a single program. HamsterSoft released partial
source code for their program but neglected to release all parts.
HamsterSoft released portions of their program that constitute a
wrapper module that interfaces between the GPL and non-GPL components.
This is prohibited under the terms of the GPL.

6. My contact information is as follows:

John Schember

Address redacted

Phone number redacted

john@nachtimwald.com

7. I have a good faith belief that the use of the material that
appears on the service is not authorized by the copyright owner, its
agent, or by operation of law.

8. The information in this notice is accurate, and I am either the
copyright owner or I am authorized to act on behalf of the copyright
owner.

I declare under the perjury laws of the United States of America that
this notification is true and correct.

Signed: John Schember

DMCA Response

Yahoo was the first to respond. They said they get all of their search results from Microsoft via Bing and referred me to Microsoft. So no luck there.

Microsoft responded with a request for more information. After a week I haven’t heard back from them.

Google responded on August 11th and said they would remove the urls listed in my takedown notice. However, as of August 13th some of the listed urls are still returned by Google. Only a portion of them have been removed from their index.

Facebook was the most troublesome. They asked for clarification three times. I had to explain that on the HFEC Facebook info page there is a big button that says “Free Download”. When clicked it downloads the program which illegally (rights were terminated by me due to non-compliance with the GPL v3) uses my copyrighted work. I ended up having to take a screen shot of the page and put big red arrows pointing to the button. After this Facebook responded saying that they’ve removed the user generated content I reported as a copyright violation.

Conclusion

Having your hard work ripped off is not any fun. It’s even more of a slap in the face when you put your work out under a license that encourages and allows reuse and remixing. The GPL v3 was chosen because it’s restrictions are designed to keep a work from being taken and locked down. If HamsterSoft doesn’t want to abide by these terms then they cannot use calibre as the basis of their program.

Fortunately, there are options for us to peruse. As of now we’ve started taking the easiest and cheapest. I don’t agree with certain parts of the DMCA, specifically the anti-circumvention clauses. However, the notice and takedown provision are very helpful when dealing with copyright violations.

I wish I could end this account with news of a crushing victory but I cannot. HamsterSoft is still distributing their proprietary application based on calibre and they are still able to market their program. I’ve been able to make some progress into stopping them and hopefully I will be able to make more once Microsoft gets back to me about the DMCA notice. At this point it looks like I’m going to have to explore other legal options.

Notes

  1. I am very much against Digital Rights Management (DRM) and it would not have helped in this case.
  2. I am not a lawyer and this is not intended to be legal advice. It is an account a specific situation of copyright infringement.
  3. I purposely did not include any links to HamsterSoft’s website.

*** Update: HamsterSoft has fixed the issue and is now in compliance with the GPL. They are no longer in violation of my copyright in regard to calibre ***

Tags: , , , , , .



* Formatting Tips: Scene Breaks

Posted on August 9th, 2011 by John. Filed under Formatting Tips.


About Formatting Tips.

There are two types of scene breaks: hard and soft. Hard scene breaks are denoted by a visual separator between paragraphs. Typical identifiers are lines and stars. Soft scene breaks are created by putting white space between paragraphs. They both serve the same purpose but some authors prefer one style over the other.

Lets start by setting a style to create print formatted paragraphs. This makes seeing the distinction in the scene breaks easier.

p {
    margin-bottom: 0;
    margin-top: 0;
    text-indent: 5%;
}

There are two ways to create hard scene breaks I’m going to cover but they are very similar. Using a hr tag with a width set to 25% will create a nice line between paragraphs. We also want to set the top and bottom margins to 2em to give some space around the line so it’s easily visible. Another method is, instead of an hr tag, we can put three *’s in a p tag. In this case we don’t touch the width; we set the text alignment to center. This gives the centered three dots many books use for scene breaks. I use a CSS class .hb for the * method.

hr {
    margin-top: 2em;
    margin-bottom: 2em;
    width: 25%;
}
 
.hb {
    margin-top: 2em;
    margin-bottom: 2em;
    text-align: center
}

As with hard scene breaks I’m going to cover two methods for soft scene breaks. The easiest way to create a soft scene break is to use three empty paragraphs.

<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>

Another method for soft scene breaks is to use a single empty paragraph or an existing paragraph and set the top margin to 3em. Following is an example CSS style. To have a scene break before a paragraph set it to use this style.

.sb {
    margin-top: 3em;
}

One consideration with scene breaks is converting to another format. Using the above scene break methods the scene breaks will convert from one format to another if you convert using calibre. It is difficult for a conversion tool to understand intent such as a blank paragraph representing a scene break. However, calibre understands and looks for scene breaks using the above method. So, if you plan to convert form EPUB to another format using calibre you shouldn’t have any problems if you create scene breaks using these methods.

The best way to illustrate this concept is with an example. Download ft-scene-breaks.epub. Opening the file with Sigil you will see the example chapters and the external CSS that is referenced by each XHTML file.

Tags: , , , , , , .

    Comments Off


* Sigil Donation Change

Posted on August 6th, 2011 by John. Filed under Sigil.


I’ve updated the donation links they now point to my PayPal account. Going forward donations will be directed toward me instead of Strahinja. This is something we had talked about and planned. I just want to warn people who have donated before because you will see a different email address than least time.

Tags: , .

    Comments Off


* Thinking of Changing Sigil’s SCM

Posted on August 2nd, 2011 by John. Filed under Sigil.


Right now Sigil is using the Mercurial SCM (source control management). I’m thinking of switching to Git. Since taking over Sigil I have had one person contributing and he is okay with the change.

I’m not looking to change simply for the sake of changing. Before Sigil I have never used Mercurial. I am not well versed with it and I have spend 50% of my time fighting with Mercurial. Charles (the person contributing bug fixes) has had the same experience.

My personal preference and favorit SCM is Bazaar. If I could I would switch to it in an instant. However, Google Code does not support Bazaar. Google Code is a good platform and I like it a lot. I think that Google Code does everything except for SCM right. If it supported Bazaar it would be perfect. That said I have no plans to move away from Google Code to Launchpad.

Since I can’t use Bazaar I’m left with Git. Git works well enough and I’m more familiar with it than Mercurial. One reason I’m thinking of switching is, Git is very popular. Using an SCM someone isn’t familiar with will prevent them from submitting patches. I’m hoping that by moving to Git it will make Charles and my lives easier. I’m also hoping it will encourage more people to hack on Sigil.

Tags: , , , , , .



* Windows Acquired

Posted on August 2nd, 2011 by John. Filed under Sigil.


Thanks to a Sigil user (Bryan) I now have in hand a copy of Windows 7 Ultimate. Thanks Bryan for sending me a copy of Windows! The plan is to get RC 2 builds out this weekend.

Tags: , , .

    Comments Off


* Formatting Tip: Big First Letter

Posted on August 2nd, 2011 by John. Filed under Formatting Tips.


About Formatting Tips.

A common embellishment used in print books is to have the first letter of the first paragraph in a chapter appear much larger then the others. In addition to the letter being larger than the rest it also falls below the baseline. The rest of the paragraph will wrap around this first letter.

To achieve this we will use a little bit of CSS and a span tag. Surround the letter with a span tag and set it to use the class “bfl”.

<p><span class="bfl">L</span>orem...</p>

Add the following class to your CSS file linked by the document.

span.bfl {
    font-size: 450%;
    font-weight: bold;
    float: left;
    margin-top: -10px;
    margin-bottom: -15px;
}

The best way to illustrate this concept is with an example. Download ft-big-first-letter.epub. Opening the file with Sigil you will see the example chapters and the external CSS that is referenced by each XHTML file.

Tags: , , , , , , .

    Comments Off


* Formatting Tips: Print Style Paragraphs

Posted on July 29th, 2011 by John. Filed under Formatting Tips.


About Formatting Tips.

When creating an ebook using EPUB paragraphs default to looking like they do on a web page. Each paragraph is separated by a blank line and there is tab indent. It’s relatively easy to format your ebook to look like a printed book. The first paragraph of a chapter should not have an indent but all subsequent ones should. Also, there should be no blank space between paragraphs. Paragraphs are broken up visually using the indent.

All of the paragraph formatting can be achieved using CSS. The first thing we want to worry about is the indent.

p {
    text-indent: 15px;
}

The above css sets the text indent for all p tags to 15 pixels. The first line of every paragraph will have an indent with that property set.

Next we want to remove the spacing between the paragraphs. Add the following to the p style block:

    margin-top: 0px;
    margin-bottom: 0px;

Now we need to worry about the first paragraph in every chapter. What we need to do is create a class that is applied to p tags and set it to leave the indentation alone on these paragraphs. The CSS block will look like this.

p.ni {
    text-indent: 0px;
}

Any p tags in the XHTML with the “ni” class set will have the indentation removed. You will need to change the opening p tag of the first paragraph of each chapter to the following:

<p class="ni">

The best way to illustrate this concept is with an example. Download ft-print-style-paragraphs.epub. Opening the file with Sigil you will see the example chapters and the external CSS that is referenced by each XHTML file.

Tags: , , , , , , .

    Comments Off


* Formatting Tips Series

Posted on July 29th, 2011 by John. Filed under Formatting Tips.


Formatting Tips is a series of articles focused on helping format an ebook to make it visually appealing. The major focus will be on EPUB. However, these articles will not always focus on that format. I plan to touch on ebook creation in general too.

EPUB internally uses of XHTML and CSS for formatting. I recommend using Sigil for formatting your EPUB ebooks. However, I will try to keep the information in these articles focused on generic so that the techniques can be applied using any editor, even a basic text editor like Notepad.

These articles are aimed at all audiences but a basic level XHTML and CSS knowledge is assumed. Also, many of the techniques I will be presenting can be handled in a number of different ways. I am going to focus on what I’ve found works for me.

I am a bit biased and prefer free and open source solutions. Many of the tools I will be talking about I help to develop. I am a developer for both Sigil and calibre for instance.

Feel free to contact me with any comments, questions, or concerns. Please realize I am not an expert on everything. I encourage people ask questions at MobileRead which is an excellent community devoted to everything ebook related.

Tags: , .

    Comments Off