I'm a fairly "nerdy" person who loves to spend time in text-editors, terminals and (if needed) browsers .. and I'm trying to understand the self-authoring tooling landscape suitable for me.
My work will not contain mathematical formulae, nor would it contain code snippets. But I would like to include images, or generate diagrams (flow charts, event sequence diagrams etc.)
A quick Google shows me mkbook and mkdocs. Both of these take in markdown files and generate HTMLs. I plan to evaluate these.
Any other authoring frameworks worth considering?
What are my options in terms of self-publishing? Amazon still king? What other stage of self-authoring would I need tooling for?
Ah, must mention I primarily use Fedora but I'd like to sync the repo on my MBP as well, and would like to work seamlessly on both machines.
Any direction would be helpful. Ty.
I know the following will get downvoted, but I hope you upload it to Z-Library too. Z-Library is a website that allows people to illegally download copyrighted books for free. If your book has even a tiny bit of success, it will end up there anyway.
Leanpub is easy and works.
I would consider Obsidian for my next venture as Scrivener has too many features for me that I don't need.
For my poem book I wrote some code that generated mazes for the cover [0]
We do go with Amazon for ebooks but not for printing, their quality is way below what we find acceptable (we're in Germany and found a printer in Poland after being let down by our German printer).
[0] https://www.amazon.de/Olavsweg-Gedichte-Gedanken-lyrische-In...
For selling books, try to do most of your sales via your own site. Gumroad is a good partner for selling PDFs. Lulu is pretty good for printed books. Amazon is a necessary evil due to their reach, but they will charge a much higher fee than doing it yourself and they are evil. If you don't self publish your royalty rate will be such that except for the few best selling books you won't make any significant money. It can be worth going with an established publisher if you want the prestige (and perhaps you can leverage that into $s) but in most cases I think self publishing is a better option.
Let me again emphasize writing the actual book is much more important than messing around with tools.
Pandoc can convert almost everything in everything and is great for terminal nerds. However, be aware that formatting pdfs for common self publishing distributors like KDP (Amazon) has some strict requirements.
For someone without the nerd dns, Vellum is a great software on the Mac that formats ePub and pdf as required for different vendors and print formats. The best feature is that you have one manuscript and export to ePub and pdf. Including graphics works quite well, but sometimes clever positioning for pdf is a bit tricky. Be aware that Vellum is a paid software and it is not suited for equations and docs that require very formal formatting (on the other hand, ePub ebooks are generally not a very good choice here).
But before you choose your toolchain, be aware that writing and formatting the manuscript is only a small part of self publishing. You need distribution and marketing, proof-reading and a business model.
Amazon can help with distribution, but you could publish via your own website, Gumroad and numerous other platforms. Do you want to only sell the ePub? Or sell add-ons, courses, bundles etc.? Amazon is okay for mass market topics, however there is a large competition and you have to have a marketing strategy. Selling via Gumroad allows for bundles and greater flexibility, but is better suited for niche topics. Again: You have to do the marketing.
Does your target group prefer printed books? Amazon/KDP can help here with print on demand. Beware anything where you print (and buy) hundreds or thousands of books in advance: You will have your garage filled with them and never sell them all because of logistics.
So, please don't only focus on the toolchain and the doc to ebook step. That is one of the easier parts in the equation.
The professionals use Microsoft Word.
I have a similar set of requirements, I wanted to write markdown and include images and diagrams. My output is PDF, EPUB and MOBI.
I started with honkit, I liked that it seemed mature. But in practice it didn’t work well for me. I was especially unhappy with its default .pdf output.
I switched to pandoc and I am happy happy with that. I’m using pandoc-plot for diagrams, it supports plumUML. I’mstill writing markdown, but the .pdf files are generated through LATeX and I like tgis result much better.
[1]: https://merelysounds.gumroad.com/l/seven-photo-challenges
Layouting is an entirely different job than writing. For long and very long textual content, I have yet to find automated results that give me control and look professional [0].
If you want to stay FOSS, learn Scribus. Becoming decent at typography and layouting is a bit of a journey, but I found it to be not too bad. If spending some money is okay, I'd go for Affinity Publisher.
None of those tools can do ePub. ePub is a format I've grown to hate; my pipeline currently consists of custom python -> pandoc -> custom python -> manual fixing.
For writing, don't worry too much. Use a program that you're familiar with and know how to use. If you don't write fiction with highly complex custom worldbuilding, a normal word processor is probably fine. I personally write urban fantasy novels, and I use a combination of Word and OneNote to manage everything as long as I am in the writing phase. It's more important to be easily able to change the layout than to have it finalized. For example, I like proof reading on Normseiten (A4, 30 Lines per page, less than 60 characters per line, monospaced font - I use Comic Mono) which is distinct from my usual writing format (Adobe Garamond, 12cm by 19cm pages with uniform 1.5cm borders).
> What are my options in terms of self-publishing?
Depends on the subject matter. If you're writing is any good, might as well try and score a distribution deal (at which point most of the layouting things will be out of your hands anyway).
All the best for your book project.
[0]: LaTeX sure looks nice, but gives me no control at all.
I wrote a longer novella using the same approach, the repo still private as it's in copyediting phase (but it could be opened if there's interest). Using this, I only need to use make to generate both pdf and epub versions (or more formats if needed) -- the makefile has been simply extended with `pandoc -o nl21.epub main.tex`.
Because you can simply split the "main" file and the content, you can just have a short file for different formats -- one for print with left/right margins, one for screens with uniform margins, one smaller for ebook readers, etc.
You can make subfolders to properly organize content, images on one side, chapters in individual subfolders (all depending on how long it's going to be).
In Latex it's trivial to define macros to shorten anything that either you might repeat often, or things like dialog environments. Latex is well integrated with Tikz or other vector formats for diagrams.
Technically Pandoc can go from anything to anything, but I went back to Latex as it's the solution that gives you the best control over your documents while also getting 'out of the way' in all cases where you just want to write down and let the layout be managed by your theme. The syntax has its quirks and the install is heavy, but I find it to be my favourite software stack.
Stupidly simple but it really helped my nerdy mind. I know it’s not really what you asked but as a technique it helped me take something big and scary and break it down into something paced and manageable.
Software: see comment below, Scrivener or maybe Obsidian?
And as others have said, the marketing/community for a book is a full extra job, separate from being a writer.
- Emacs org mode for writing
- Adobe Illustrator for the figures
- Adobe Indesign (text exported from org to IDML via pandoc) for the layout
- Amazon KDP + Ingram spark (aka lightning source) for publishing and distribution.
Be wary of you are or aren't able to do by yourself. Publishing a book requires a wide gamut of competences: writing, editing, typesetting, graphic design, etc.
I would just go with Google Docs as if you are working with an editor this will make your life a lot easier than trying to teach someone how to send you diff patches of changes and discussing them inline in on GitHub PRs.
On a more meta note, how you approach writing your book is probably more impactful than your toolchain. If you're working on a book that educates (rather than, say, entertains), I'd like to share the writing framework that my longtime collaborator, robfitz, describes in Write Useful Books (https://www.usefulbooks.com/). Basically, treat your book like a product, find your audience, and test your subject matter with them as your craft your prose.
* Disclaimer: Rob and I run Useful Books, a community and toolset for non-fiction authors.
[0] https://en.wikipedia.org/wiki/ConTeXt
It generates ePubs (and other e-formats), a website version, and a PDF.
If you just want a print book, I wouldn't bother with something like this.
KeenWrite is compatible with pandoc and knitr. In effect, it's a replacement for the shell scripts I wrote about in my Typesetting Markdown series. The series describes using pandoc and ConTeXt to typeset Markdown documents.
Typesetting to PDF is accomplished using ConTeXt, which is a typesetting system with a strong focus on separating content from presentation.
* https://dave.autonoma.ca/blog/2019/05/22/typesetting-markdow...
While you could go directly from markdown to EPUB/PDF/HTML+CSS, leaving LaTeX in the loop lets you benefit from the amazing typesetting knowledge that Don Knuth has embedded in the TeX suite of tools (PDF will look prittier).
Pandoc conversions: https://pandoc.org/demos.html
Pandoc Demo: https://pandoc.org/try/
Therefor I switched to AsciiDoc with AsciiDoctor and I found it to be great. It has support for both ePub and PDF, custom themes, fonts and etc. The syntax is similar to Markdown, so I can use similar tools (Neovim) for writing.
I liked it, and would do it again.
[1] https://www.yieldcode.blog/book/technical-writing-for-softwa...