# LaTeX Book Template A professional LaTeX book template with automated CI/CD pipeline for generating multiple output formats including PDF, ePub, ODT, and DOCX. This template provides a clean, modern layout with customizable styling and automatic release generation. ## Features - 📚 Multiple output formats: PDF (one-sided, two-sided, ebook), ePub, ODT, DOCX - 🎨 Professional typography using Libertine font with microtype improvements - 📄 Custom page layouts with headers, footers, and margins optimized for different formats - 🖼️ Cover page support with background images and work-in-progress watermarks - ⚡ Automated CI/CD pipeline with timestamped releases - 🔧 Easy customization through structured LaTeX files - 🐳 Docker-based build environment for consistent compilation ## Quick Start ### Prerequisites - **Local build**: LaTeX distribution (TeX Live, MiKTeX) with `pdflatex` and `pandoc` - **Docker build**: Docker (recommended for consistent results) - **CI/CD**: Gitea instance with Actions enabled ### Usage 1. **Clone this template:** ```bash git clone cd template ``` 2. **Customize your book:** - Edit `src/book.tex` to set author, title, and subtitle - Add/modify chapters in `src/chapters/` - Replace `src/graphics/cover.jpg` with your cover image - Remove `\workinprogress` command when ready for final version 3. **Build locally:** ```bash # Build all formats make book # Or build specific formats make oneside.pdf # One-sided PDF make twosides.pdf # Two-sided PDF make ebook.pdf # eBook PDF make book.epub # ePub format make book.odt # OpenDocument Text make book.docx # Microsoft Word ``` 4. **Clean build artifacts:** ```bash make clean ``` ## Project Structure ``` . ├── Makefile # Build automation ├── README.md # This file ├── src/ # LaTeX source files │ ├── book.tex # Main book file (edit this) │ ├── chapters/ # Individual chapters │ │ └── one.tex # Example chapter │ ├── graphics/ # Images and cover art │ │ └── cover.jpg # Book cover image │ └── .formats/ # LaTeX formatting templates │ ├── structure.tex # Core styling and layout │ ├── ebook.tex # eBook format template │ ├── oneside.tex # One-sided format template │ └── twosides.tex # Two-sided format template ├── out/ # Generated output files └── .github/ └── workflows/ └── ci.yaml # CI/CD pipeline ``` ## Customization ### Book Metadata Edit `src/book.tex`: ```latex \author{Your Name} \title{Your Book Title} \subtitle{Your Subtitle} ``` ### Removing Work-in-Progress Watermark Comment out or remove this line from `src/book.tex`: ```latex %\workinprogress ``` ### Removing Title Box from Cover Use the `\removetitlebox` command to remove the white semi-transparent title box overlay from the cover page, leaving only the background image. This creates a cleaner cover design where the background image is fully visible without any text overlay. Add this line to `src/book.tex`: ```latex \removetitlebox ``` **Note:** When `\removetitlebox` is active, only the work-in-progress watermark (if enabled) will be displayed on the cover. The book title, author, and subtitle will not appear on the cover page. ### Adding Chapters 1. Create new `.tex` files in `src/chapters/` 2. Include them in `src/book.tex`: ```latex \include{chapters/your-new-chapter} ``` ### Custom Styling Modify `src/.formats/structure.tex` to customize: - Fonts and typography - Page layouts and margins - Chapter and section formatting - Colors and styling ## CI/CD Pipeline The template includes automated building and releasing: - **Triggers:** Push to any branch, pull requests - **Build Environment:** Custom LaTeX Docker image (`git.arindy.de/arindy/latex-runner:1.0.1`) - **Output:** Automatic releases with timestamped names containing all formats - **Files Released:** All generated files from the `out/` directory ### Customizing CI/CD Edit `.github/workflows/ci.yaml` to: - Change the Docker image - Modify release naming - Add additional build steps - Configure different triggers ## Download Latest Release - [EBook as ePub](/../../../releases/download/latest/ebook.epub) - [EBook as PDF](/../../../releases/download/latest/ebook.pdf) - [Book as a one-sided PDF](/../../../releases/download/latest/oneside.pdf) - [Book as a two-sided PDF](/../../../releases/download/latest/twosides.pdf) - [Book as ODT](/../../../releases/download/latest/book.odt) - [Book as DOCX](/../../../releases/download/latest/book.docx) ## Contributing 1. Fork this repository 2. Create a feature branch 3. Make your changes 4. Test the build process 5. Submit a pull request ## License This LaTeX Book Template is licensed under the **Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License (CC BY-NC-SA 3.0)**. See the [LICENSE](LICENSE) file for the complete license text. ### What the License Covers The CC BY-NC-SA 3.0 license applies to **all template files**, including: - LaTeX source files (`src/` directory) - Build configuration (`Makefile`, CI/CD workflows) - Documentation and examples - Styling and formatting templates ### License Terms Summary **You are free to:** - ✅ **Share** — Copy and redistribute the template in any medium or format - ✅ **Adapt** — Modify, remix, and build upon the template for your own books **Under these conditions:** - 📝 **Attribution** — Credit the original creators (Vel from LaTeXTemplates.com and Arindy) - 🚫 **NonCommercial** — You may not use this template for commercial purposes - 🔄 **ShareAlike** — If you distribute modified versions, use the same CC BY-NC-SA 3.0 license ### Important Notes - **Your book content** (text, images you add) is **not covered** by this license - You retain full rights to your own written content - The license only applies to the template structure and code - For commercial use, please contact the maintainers This template is based on the eBook template from LaTeXTemplates.com, originally created by Vel, with modifications by Arindy. ## Troubleshooting ### Build Errors - Check LaTeX logs in `out/*.log` files - Ensure all required packages are installed - Verify image files exist and are accessible ### Missing Fonts The template uses Libertine font. Install it or modify `src/.formats/structure.tex` to use different fonts. ### Docker Issues If using the CI pipeline, ensure your Gitea instance has access to the specified Docker image or modify the workflow to use a public LaTeX image.