I am often asked how I build textbooks. I am a little weird in that I am radically open and refuse to use a commercial service or any non-open software. I prefer a line-oriented format in github,using open software and a process that I run myself.
The best example of how I write open books is here:
https://github.com/csev/net-intro/blob/master/book/README.md
I write my books in Pandoc Markdown
https://github.com/csev/net-intro/blob/master/book/01-packets.mkd
I do pay for and use OmniGraffle for figures (InkScape is free – but super hard to use):
https://github.com/csev/net-intro/tree/master/figures
I export the figures export them to SVG and EPS:
https://github.com/csev/net-intro/tree/master/images
Then I use pandoc (which uses LaTeX) to produce PDF and epub
https://github.com/csev/net-intro/blob/master/book/book.sh
Then I upload the PDF to CreateSpace and the epub to Amazon and it is auto-converted to mobi:
This is perhaps a more complex process that using Word, pressbooks or gitbook but I prefer a pipeline that I completely own and control and can adjust. Other methods are easier – I prefer control ownership and introspection over ease of use.