Cosmin Deaconu is the person who helped produce my book. He formatted the book as a CreateSpace paperback and Kindle e-book. He also produced the book cover. He'll share the resources he developed to publish my book. Please feel free to contact me via my website with questions. We are very open to improving these articles and tools.
Table of Contents:
- Producing your novel with LaTeX
- How to use the code if you don't know how to code: Step-by-step instructions for formatting your book
- How to upload your book to CreateSpace
When using a self-publishing service such as CreateSpace, it is necessary not just to write a manuscript but also to produce a print-ready PDF. A common choice among self-publishers is to use a word processor such as Microsoft Word or LibreOffice. While those are relatively easy-to-use, powerful programs, and it is certainly possible to use those to produce a great-looking book, those are not very well-suited to the task, in my opinion. Because of the what-you-see-is-what-you-get nature, it is somewhat challenging to get consistently good-looking output. Moreover, the creative processes of writing and editing become intertwined with the rote task of layout, which I feel is an unnecessary mixture of roles.
I chose to typeset the book using LaTeX, which is commonly used in academic communities, but perhaps less so by novelists. LaTeX is free (both as in zero-cost and open-source), available for all operating systems, extremely flexible, produces beautiful output, and for the most part, allows for clean separation between creative content and formatting. Here is a (perhaps outdated?) comparison between the output of LaTeX, Microsoft Word 2008, and Adobe InDesign CS4.
The downside of LaTeX is that it is comparably difficult to learn. LaTeX reads in a specially formatted text file (usually with a .tex extension) and produces a print-ready output file (nowadays, usually a PDF file, although there are other possible outputs).
Producing your novel with LaTeX
Fortunately, you don't need to learn too much LaTeX to produce a great-looking book. Andrzej Giniewicz has even put together a CreateSpace LaTeX package that provides a convenient way to change several things about your book.
While it is beyond the scope of this article to provide a full introduction to LaTeX (and there are plenty of guides available online, for example here), I will go ahead and share the code I used, which is available here. The perceptive reader will find that this code also generates the e-book, which is covered in fully in this article. I won't go through how all of the code works here (perhaps I will cover some of it later).
The most important file for print production is NorthForSun.tex, which sets up the formatting of the book. For your own project, you can start with this as your template if you'd like (but be sure to change the name and title!). I've gone through and documented what most of the lines do (% is used for a comment in LaTeX). While LaTeX is not all that intuitive, it is well-used enough that it is easy to find answers to your questions online.
We decided to use a Garamond font, of which the free EBGaramond variant is available for LaTeX. The default LaTeX font is Computer Modern, which is a nice font but will make your book look like a journal article. After an iterative process involving looking at several prints, we decided on a 0.625" outer margin and 10.5 pt font with 110 percent line spacing.
Note that none of the actual content of the book is in that file; instead it includes a few files that make up the book:
dedication.tex: the dedication, in LaTeX format
manuscript.tex: the manuscript, in LaTeX format
acknowledgments.tex: the acknowledgments, in LaTeX format
author.tex: about the author, in LaTeX format
You can of course write those files directly in LaTeX format and include them. However, especially if you're also producing an e-book with the same content, that is probably not the best choice. It would be better to use an intermediate format that you can convert to LaTeX (for the print book) and HTML (for the e-book). One reasonable choice would be to write in a simple format like Markdown and use something like pandoc to convert from Markdown to either LaTeX or HTML.
I personally had some trouble getting
pandoc to do exactly what I wanted, and
moreover, Marie had already written much of her book using an ad hoc format with
minimal formatting. We agreed on a few formatting conventions (documented
I used basically a fancy find-and-replace to convert from our format to LaTeX format.
More concretely, I used the
sed text-processing utility to convert from our
custom format to LaTeX format.
sed is a command-line program (it has no
graphical user interface) that replaces text according to a set of rules called
regular expressions. My workflow was basically to receive new text files from
Marie, convert them to LaTeX files with
sed then process
produce the final PDF. Doing this all manually would be a bit tedious, so I
also wrote a
Makefile, a set of recipes that the
make program can
understand, to put it all together. Both of those tools are completely free,
and available for all major operating systems (they're included in Linux and
Mac OS X, and can easily be installed on Windows either through
Cygwin or the
new Windows Subsystems for Linux on Windows 10).
To use them, however, you'll have to get somewhat acquainted with the command line (or terminal) on your system. I recommend finding some tutorials for your operating system on basic command line skills and following them. It may seem opaque and arcane, but not so long ago, this was the only way to use a computer (and it still is the most efficient way to do many tasks!).
To try out the tools I used, grab them from GitHub, make sure you have
sed for your system, and also make sure you have either installed the
CreateSpace LaTeX package or at least downloaded
createspace.sty into the same
directory as NorthForSun.tex. Then, open a terminal and navigate to the
directory with NorthForSun.tex and type:
This will generate the provided excerpt of North for Sun into a PDF. Any time you make a change to any of the input files, rerunning that command is all you need to do to remake the PDF. This way, you can focus on writing your text and the text-substitution scripts and LaTeX will worry about the formatting.
LaTeX outputs a lot of things to the terminal, most of which you can probably ignore (assuming it's successful! If not, you probably wrote something that LaTeX doesn't understand). One thing to pay attention to are "overfull hbox" messages. LaTeX will try to justify your text to the page size as well as it can without violating some spacing constraints, but every once in a while, it can't find a solution and will leave some text dangling over the edge. There are a few options to address this:
- If LaTeX is not hyphenating things correctly (it usually does, but maybe you're using some words it doesn't recognize), you can add a soft-hyphen
- You can modify the value of emergencystretch, which controls the maximum amount of extra spacing LaTeX will tolerate in a line
- You can increase the width of the text area (make the page bigger or reduce the margins), which gives LaTeX more to work with.
- As a last resort, you can edit the text to break up sequences of long hard-to-hyphenate words that are likely to cause problems.
LaTeX will also do its best to avoid widows and orphans if it can, but it prioritizes relatively even spacing more. Fortunately, you can control the weights LaTeX gives to different kinds of "badness" if such things greatly concern you. In fact, with sufficient patience and willingness to learn the internals of LaTeX, you can control almost anything about the typography.
LaTeX has its warts, and it is not always the easiest to make it do exactly what you want it to do, but trolling the internet for solutions has a pretty high success rate. I find dealing with its frustrations much easier than dealing with problems that come up when using a more "advanced" word processing program, where you don't really have full control of what's going on behind the scenes. LaTeX may not be the best choice for everyone, but if you are willing to deal with its learning curve (or have a friend who knows LaTeX), you can produce a great-looking book for free.
How to use the code if you don't know how to code: Step-by-step instructions for formatting your book
I do not know how to code. I am giving step-by-step instructions on how to essentially copy-paste your book into the code. This is how I will use the code for my next book.
- Install LaTeX for your operating system. You can try here.
- Install Cygwin or the new Windows Subsystems for Linux on Windows 10. If you have a Mac or a Linux system, these tools are already included in your computer.
- Download the code from GitHub.
- Make the edits to the files. See the steps below for how to change the files to match your manuscript.
- Open the terminal. Type
cdand the name of the directory that you downloaded the code to (e.g.
- That's it! Open your PDF and check if it looks okay. You may want to consider renaming the file at this point, as well.
How to use the code if you don't know how to program:
dedication.txt: Insert your dedications here.
NorthForSun.tex: Edit copyright statement, book title, and author.
manuscript.txt: Insert your manuscript here, using the sample as a guide for how to format certain things. If you just have chapters, you just need to have e.g.
Chapter 1on a separate line. Use
#to italicize (e.g. #this will be italicized#.).
acknowledgements.txt: Insert your acknowledgments here.
author.txt: Insert your about the author here. This file has some lines with code in them that start
[latexonly]tags for more complicated formatting. If you like it the way it is, it's safe to just ignore those and change the
author.jpgimages accordingly. Note that things that start with
[htmlonly]are only used for the e-book.
How to upload your book to CreateSpace:
I'll give an overview of what you can expect with the CreateSpace process. I organize headings according to the sections that will pop up when you complete the CreateSpace steps on their website. If you are looking for more detailed instructions, I highly recommend CreateSpace and Kindle Self-Publishing Master Class by Rick Smith. I read this book many times; it was my main reference as I was filling out the CreateSpace steps.
If you are a visual person like me, you can watch this great video to walk you through the CreateSpace upload process.
- Create a CreateSpace account.
- ISBN: The ISBN number is irreversible. You will need to decide whether to use CreateSpace's free ISBN or pay for a universal ISBN. I used CreateSpace's free ISBN because I plan to sell my book exclusively through Amazon and in person at events. If you pay for a universal ISBN, you will be able to list your own imprint in the information on Amazon. For example, I could list "Deaconu-Baylon Inc." rather than "CreateSpace Independent Publishing." I've read that CreateSpace's imprint is judged by some people as inferior, but I decided I didn't care. With any ISBN you choose, you retain copyright over your book. For more information on ISBN, read here.
- Interior: Upload your interior file that you using the code. I chose cream for interior because I thought white may be a little harsh. For trim size, I chose 5x8 (which matches what we set in the code). At this point, CreateSpace will tell you how many pages your interior will be (it might be slightly different from what you upload since it has to be an even number). You will need the exact number of pages to compute the spine width for the cover. You can use CreateSpace's Interior Reviewer to see how your book will look, page by page.
- Cover: Upload your cover. See our article on cover design for help in creating your cover. My cover is matte.
- Complete setup: Submit your files for review. CreateSpace reviews your files and approves them within 24 hours. One time, my cover file was not approved because it had the wrong dimensions.
Review: You can proof your files using the Digital Proofer. In my experience, the digital proofer was accurate to the printed book. You can order a hard copy proof. CreateSpace will mail you a hard copy for you to review. We reviewed three different hard copies to test the interior and the cover design.
- Channels: I chose standard distribution. I plan to sell my book exclusively on Amazon and in person at events. I also selected to sell my book at the CreateSpace eStore as a back-up in case the Amazon site is down for some reason. You receive substantially more royalties if you sell through the CreateSpace eStore. However, only sales through your Amazon site count toward your Amazon sales rank. Amazon uses an algorithm (based largely on large spikes in sales, rather than cumulative sales over time) to promote your book.
- Pricing: You can calculate your royalties based on different list prices. Amazon sometimes changes your list prices. I'm not sure how they decide to do this, but my list price of $11.99 was changed to as low as $10.71 at times. You receive the same amount of royalties regardless of Amazon's discounts.
- Description: You can see my article on writing a synopsis to write your description.
- Keywords: There's a myth that entering keywords into the Amazon store and watching the words that come up next will determine good keywords for your book. I don't think this is true because those words are generated from Amazon based on your specific search history. I didn't have a great system for choosing keywords; I chose keywords that related to my target markets (mental health consumers and advocates; fantasy readers; people interested in Filipino and Asian-American identity). My keywords are: mental illness books, mental illness fiction, time travel, magical realism novel, filipino authors.
- Publish on Kindle: We didn't use the automatic publish to Kindle option. You can see our article on Kindle publishing process.