Episode: 2952 Title: HPR2952: Publishing your book using open source tools Source: https://hub.hackerpublicradio.org/ccdn.php?filename=/eps/hpr2952/hpr2952.mp3 Transcribed: 2025-10-24 13:48:34 --- This is HPR2952 for Tuesday the 26th of November 2019. Today's show is entitled Publishing Your Book Using Open Source Tools. It's hosted by your rune button and is about 26 minutes long. It carries a clean flag. The summary is how I evolved from writing with a publisher to self-publishing using open source tools. This episode of HPR is brought to you by An Honesthost.com. Get 15% discount on all shared hosting with the offer code HPR15. That's HPR15. Better web hosting that's Honest and Fair at An Honesthost.com. HPR15. That's HPR1552 for Tuesday the 26th of November 2019. HPR15. That's HPR15. That's HPR15. That's HPR15. That's HPR15. That's HPR15. That's HPR15. That's HPR15. That's HPR15. That's HPR15. That's HPR15. That's HPR15. HPR15. That's HPR15. That's HPR15. Hello everybody, here's Jerome Betten again with another podcast. This time I decided to record sort of re-record the talk I did at last orcamp in one of the, in one of the unconference sessions. I did a talk on writing your own books using open source tools and I decided, well, I have some knowledge there. Let's share it with the larger community or the community at large. I don't know, which one you would choose. Anyway, so I'll go to tell you how I evolved in my writing and yeah, let's take it from there. So the first book I wrote was 20 years ago, well, about 20 years ago, in 2000. I wrote a book. Well, sorry, there was this project that was halted and I was a little frustrated and I wanted to disseminate the knowledge I get into society at large. So I decided to write a book, my first one. So I contacted a publisher and because it was an IT book in the Netherlands, it's pretty easy. You just submit a title and well, most of the time you say, yeah, I should go right ahead and just send us the table of contents. So we have sort of a the line in which the contents will, the story will progress. So I wrote a table of contents and got a contract with the standard fees. I come to that later and I started writing and in two months of writing in the evening hours, I had about 200 pages. I submitted the text. They started to make the layout for that, just of publishing and all. And after that, I get a correction example to look for any errors that they made in the DTP department. And since everything was okay, after that, they sent it to the publisher, to the printing press, sorry, and they printed it and it became available in the store. So the first time you have an actual physical copy of your books in your hands, that's pretty amazing. That's something I can recommend to anybody. Just don't overdo it, keep it to one book and you'll be happy. Trust me, all the other books is well, it's something to become or to be an author. The thing is, when you start writing a book, you sort of mentally commit to writing and telling a story and at least on my part. As soon as you start, you want to finish it as quickly as possible. You want to finish it. There's a flow going on and you're sort of channeling, not to sound too weird, but it becomes sort of, my second book, for instance, I came back to work and one of my managers said, well, you just wrote a book. Do you want to write another one? And you can do it as a day job. So I said, yeah, sure, I'll go home and start writing and I wrote a 600 page book. And then you get up in the morning and you're into this book. So everything is an obstacle in finishing that book. So you start writing as early as possible. You finish as late as possible, even sleeping is just a hurdle that you need to take. And then you want to just keep on writing. So it consumes you. And it's something that some people can switch it off easily and for some, that's harder. Anyway, so back to my first publisher, I got a standard deal which meant that I got a royalty fee. So they have, you have your author rights and your copyrights. And author rights is always with the author and the copyrights. As an author, you can sell your copyright. So you sell that to the publisher in exchange for fee or percentage. And the percentage for I got from the publisher. And as far as I can tell, that's pretty average is about 15%. One five percent. And that's from their sales price. So after that, it goes into the shops, the shopkeeper also need to make a profit. There's always the value and the tax. So all in all, it's about 15% of half of the price. So you get maybe 7% of a price of a book which in practice is one or one and a half euros book, which is fine. If it's a best seller, I mean 60, 70,000 copies sold. That's something that you can live on. But if it's an IT book in a small country like the Netherlands, you're looking at 600, 1500 copies sold. So I mean, it's not some change, but you can't live on it either. Either. Anyway, I wrote a couple of books that way because, well, just because. And at some point, I got to see the actual financial figures for the book. So for instance, I would get 600 euros for writing the book. And the publisher would get 20,000 euros for selling the book. And that felt a little off. You know, the balance is wrong. It feels wrong. So from that point on, I decided, well, if I'm going to write a book, I'm going to do differently. And I start looking around. And there's something called printing on demand. And with printing on demand, you upload to a website PDF. You can do the marketing yourself or you can hire somebody to do the marketing. But if you do the marketing yourself, you can even decide what price you want to put on this book. So let's say you don't want to make one euro per book, but maybe 10 or 15. And maybe you sell less. And maybe you earn less. But it does feel a lot better. At least that's what I thought and still think. So I wrote a couple of books using a printing on demand service. I found a website called lulu.com. And the next challenges to realize your own book are technical. For instance, if you upload a PDF, you need to have the fonts that you use in your book to have included in the PDF. Now, on Linux is just a simple command. Just look Google it and you'll find it. No biggie. But if you don't include the fonts in the file, then lulu will say, well, sorry, but no joy. You need to add the fonts. How to generate the fonts? How to generate a PDF? We'll come to that in a few minutes. The other thing is the cover. And the cover is also a story in and by itself. So that one we also going to talk about a little later. So first, let's focus on the contents. There are a couple of ways that you can write the contents for your book and have the layout correctly. One is easy, usually rough. It's got this great functionality to generate a table of contents. You can, I guess, even make index terms. You can see how it looks. That's all very fine and it can even save as a PDF. But what do you do about version management? How do you manage the changes in your content? So for version management, you can use a git repository. But LibroFus file usually is a digital zip file containing XML files. Now, you can also save LibroFus as an XML file and then you can do version management. But it's still for the layout part. It leaves a few things to be desired. So I found one of my other books that I wrote. I wrote in Docbook. Docbook is an XML-based file format in the sgml kind of way. And sure enough, with Docbook, you can generate HTML. You can generate PDF and you can even generate ebooks. But writing XML can be a hassle. It's not really user-friendly to write an XML. And Docbook editors that are user-friendly, if you were far between. So it works, but only once. I mean, it works several times, of course. But after one exercise, you're going to look for a better solution. So that's when I stumbled across ExyDoc. ExyDoc is an Eski file format. And it resembles a lot the Wiki syntax. I like two equal signs. It had a one-level, three equal signs. It had a two-level, etc., etc. So you get really clean Eski files that you can very easily store in your Git repository, where you can do diffs and you can do, you can see your changes and everything is fine and dandy. It's just how do you get from Eski, Doc to Docbook? Well, the fun thing is EskiDoc can generate Docbook file. So you make your own script where you enter a build command to sort of compile from EskiDoc to XML, Docbook XML, and from Docbook XML to PDF, often using the FO that stands for Formatting Objects, the FO tool to go from Docbook to XML to PDF. It works. And then somebody made a new tool called EskiDocter, and EskiDoc is written in Python. EskiDocter is written in Ruby. And it's compared to EskiDoc, it's blazingly fast. It does have some syntax changes, not big ones, small ones, and some of these changes are actually very nice to have. So my latest book, and we're now talking about my ninth book, is written using EskiDocter. And EskiDocter has an incarnation called EskiDocter-PDF, which goes from EskiDoc format, or EskiDocter format, if you want to, immediately directly over to PDF. And then you, again, use a command to embed your PDF fonts, and you can upload this to Lulu. And this works very, very, very nice. So my advice would be, use EskiDocter-PDF, look for that you embed your fonts into the PDF, that that's all settled, and start doing your thing. In EskiDoc, you can also include other EskiDoc files, so you can make one master file that includes every file per chapter, which I would recommend to do. Yes, you can also include images. You can tell them how, if the image should be left-aligned, right-aligned, or center-aligned, how much, what percentage of the width the image should take. But, and that's unfortunate, I think, is that EskiDoc, and EskiDocter, is not capable of doing text flow around an image. So, usually that's not really a big problem, because if you do an IT book, you have screenshots and screenshots on average are approximately the size of your text, the width of your text. So it doesn't really bother me a lot, but sometimes, you know, for instance, if you have a logon screen, which is relatively small, and you want to write a little text to the side of that, because only a small logon screen in a full page setting, that's pretty, pretty overdone. Well, the way to sort of a workaround, and I'm not saying it's it's a perfect solution, but it works, is to make a table with two columns on and one row, on the left side, for instance, you do your text on the right side, you include your image, and then it doesn't disturb the flow of your text too much. So, you have your Git repository, you have your EskiDoctor-PDF executable, you can write EskiDoctor, there are enough things on the internet to help you how to do that, you write your own build script or whatever script to compile, at some point you want to do that, maybe you want to build counter, maybe I don't know what you want, but it's in a way it's book source code, so you can build it, whatever you like, you can even import attributes from the command line into your text, so if you describe certain application, you can make the version number a variable outside in your build script, for instance, or you can define a variable in the header of your book in EskiDoctor as well, EskiDoctor Source. Okay, so you have your PDF, you have uploaded your PDF to lulu.com or another sideably Amazon has Kindle, which is also a self-publishing platform, but Amazon does make a bundle, and if they make a bundle, you don't, just saying, but you know, your mileage may vary, maybe you find Kindle development platform better than lulu, I don't know, it's a free country, you know, at least over here it is. Okay, then there is the matter of the book cover, now the book cover, when you first encounter it starts to discuss the spread, now what is the spread? Well the spread is the width of the front page plus the width of the back cover page, and of course the width of the spine of the book, and the width of the spine of the book depends on the number of pages, so what happens if you upload this again as an example to lulu.com your PDF, it will say it's so many pages and the next page will say, the next page on lulu site will tell you, okay, then you need a spread of so many pixels or points, and yeah, then they have their own cover wizard, where you can make a modest attempt to build a cover, it's not fancy, but it works, but probably you want to change that into something fancy, I mean, it is the cover of your book, and the cover of your book should look the part, right? So you have the spread, the width of your, of your cover, lulu will tell you at what coordinates the spine will start and how what the width of the spine will be, and that's all you need, so what you do is you fire up inkscape, you tell inkscape the properties that you see in on the lulu page, and you have a blank canvas where you can design your cover, and you slide one of the, what's the word for it, the assistance lines, I would call them, you know, they're not lines that are visible in the printout, but the lines that are visible on the GUI, so they help you, you can draw assistance lines, horizontal vertical, but in this time, this case horizontal, sorry, vertical line, but you draw it from a horizontal ruler, you draw that to the correct coordinates, and then you see your spine, and you can go right ahead and enter some graphics and some coloring, some some colored boxes, some some text, to to design your own cover, and when you think your cover is looks nice, you just upload, you again, you save it as SVG, that's a standard inkscape format, but you also save as PDF, you upload PDF to lulu site, and it will use that cover design, and well, oh yeah, the next thing is that lulu will tell you how much money it will cost to print one copy, for instance, and this is sort of randomish, say it's a book of 200 pages, printing that, including the cover, will cost you either five euros, five dollars, five pounds, exchange rate today are very limited functionality over here, and the next question is how much money, what do you want to make, what do you want to set as the price of the book, so let's say it's five euro pound dollar, and you say well yeah, but this book I think is worth 25, so you enter the price of the book as being 25 euro pound dollars, and lulu will tell you how much you will earn because of this profit, they also want 20%, which is I think fair, instead of that you get paid 15%, you pay them 20%, but the rest of it is a pretty healthy profit, and then your book is published, and you can order one copy for yourself, and you can put it online or tweet about it, or there are several reasons why you want a printed book, maybe for instance you do training, and if you do training with your own training material, a book just looks good, and it looks better than a couple of staples together, a letter or a four paper size sheets, right, or you think yeah, well I can bind them using some sort of binding material, yeah that was fancy in the 80s, yeah I'm sorry to be a little harsh about this, but it's 2019, the way better options, and even it still looks better than the competition, because not everybody does it, right, so you can do training, maybe you want to have a book that's thin, it's not a big book, but it's a book nonetheless, and it tells your potential clients what makes you in your business unique, so you tell a few stories, people love stories, and you give it to your potential client, now there is this little trick, because if you give a book to a client, there is a chance he feels uncomfortable, because he feels obligated that he needs to give you the job, because well you just gave him a book, right, and well what you can do is say well this is one of the lending pieces, so I lend them, and when you're finished just return the book to me and I'll give it to somebody else, in practice you'll never see it back, but it takes the sting out of this commitment issue, and that has always also worked in the past for me, and what other, why you can, maybe you want a book for your workplace, a nice manual about this new software that you've rolled out in your company, of which you are the application manager for instance, and you use the screenshots as this application is customized for your company, it just looks good, even with internal courses, it can be a little addictive to start writing, just saying I've for several reasons I haven't written in about a decade I believe, but like I said I'm recently starting working on my ninth book, and it's still a lot of fun, so yeah that's about it, if there are any questions about the subject, just please put them in the comments, and I will maybe make a follow up episode, if you want to contact me, because you think that I can write a good book for your project, which is also an option, yeah it's not that I started this podcast thinking let's make a sales pitch, but no I think about it, well you know, Giron and Giron Baton.nl or well you'll find me some way, that's the internet for you, nobody's invisible these days, okay anyway, yeah that's I think about all I wanted to share with you, I hope you find it informative, like I said please leave a comment in a note in the comments or whatever, I put if you don't know how to spell lulu.com, I put it in the show notes, and I would say I wish you a lot of success and happiness, writing your own books, bye bye, you've been listening to Hacker Public Radio at Hacker Public Radio dot org, we are a community podcast network that releases shows every weekday Monday through Friday, today's show, like all our shows, was contributed by an HBR listener like yourself, if you ever thought of recording a podcast and click on our contributing to find out how easy it really is, Hacker Public Radio was found by the digital dot pound and the infonomican computer club, and it's part of the binary revolution at binrev.com, if you have comments on today's show please email the host directly, leave a comment on the website or record a follow up episode yourself, unless otherwise status, today's show is released on the creative comments, attribution, share a like, 3.0 license.