
Learn to leverage LaTeX from Java by building a Java API that generates PDF documents through the typesetting system, using templates, auxiliary files, and the preview feature.
Explore how LaTeX math commands power scientific writing and how Microsoft Office tools translate them into inline and display equations, fractions, and structured math environments.
Learn how LaTeX functions as a typesetter, create a simple .tex document with document class, preamble and environment, and generate a PDF with pdfLaTeX for a Java API.
Learn how to implement LaTeX commands in Java by modeling a command with a name, options, and arguments. Use begin and end environments to generate a document and a PDF.
Explore how LaTeX packages extend math capabilities with AMS math and symbols, use equation environments for display equations, and handle document class, preamble, and automatic numbering.
Explore implementing LaTeX environments in Java by modeling begin and end blocks, options, and environment-specific content, with examples like equation and figure environments.
Learn to implement LaTeX environments in Java by building a low-level environment API, create an equation environment, manage in-line and display modes, and generate LaTeX documents and PDFs from Java.
Explore building a LaTeX renderer in Java, including handling packages, preamble, and new commands, and learn to run pdfLaTeX to generate PDFs from a .tex file.
Learn why LaTeX requires multiple runs: the typesetter creates an auxiliary file on the first pass and updates cross references, labels, and equation numbering in subsequent runs.
Learn to implement a Java LaTeX renderer that manages labels and references, using auxiliary files and multi-pass processing to generate correct cross-references.
Explore running pdflatex from Java by feeding a tex file to a latex renderer, executing multi-run builds, and managing auxiliary files with the runtime singleton.
Learn how to run pdflatex from Java by executing terminal commands, check its path with which, and set the command's working directory to save output beside the .tex file.
Implement a latex renderer in java by building a tex file with document class and environments, writing to a take file, executing pdf latex via runtime, and cleaning auxiliary files.
Learn how the latex renderer in Java drives pdflatex across multiple runs to produce a pdf from a take file, handling i/o, directories, and cross references.
Explore the LaTeX document class command, its syntax and options, and see how changing the class name: article, book, stand alone, or beamer alters the document layout.
Explore how to separate content creation from rendering in LaTeX for Java developers by introducing a LaTeX document builder, supporting document classes and custom templates, and rendering to PDF.
Explore building a LaTeX document class by adding packages with the use package command, configuring the preamble, and enabling color features like text color and color box.
Build a Java-based LaTeX document with a preamble and main document environment, add a title and author, and use labels, refs, and floating and math environments for rendering with pdfLaTeX.
Learn how to implement a title class in a Java-based LaTeX generator, including title, author, date commands, and placing make title after begin document to render a LaTeX title page.
Explore how LaTeX handles math environments, floating your equations with amsmath, and use labels to reference single or sub equations and nested environments within two-column documents.
Explore adding and formatting equations in a Java-based LaTeX renderer by using equation and subequations environments, enabling floating and numbering with AMS math package, and labeling for precise references.
Explore handling LaTeX equation environments in Java by ensuring AMS math is loaded, managing packages with a set, overriding hashCode and equals, and surfacing warnings and errors during rendering.
Learn to implement the sub equations environment in Java, supporting multiple equation environments, integrating the AMS math package, and enabling labeling and referencing in LaTeX documents.
Explore boxed equation environments in LaTeX for Java developers, learn to create boxed and floating equations, group subequations, add labels, and reference them in display or inline modes.
Master LaTeX text formatting with the xcolor package, using named colors or rgb/cmyk models. Color text or backgrounds with text color and color box, and define colors in the preamble.
Learn how to implement a Java formatted text class that handles LaTeX style color commands, foreground and background colors, and future formatting like italics, bold, and underline.
Learn to format text in LaTeX for Java developers by applying bold, italic, underline, and strikethrough, and to color text with color and text color commands.
Learn to insert figures in LaTeX using the figure environment and include graphics with the graphicx package, manage placement and size options, and address absolute path challenges.
Learn to customize the LaTeX figure environment in Java projects by integrating includegraphics with the graphics package, handling absolute paths, captions, labels, and placement options for precise rendering.
Develop Java classes to model LaTeX figures by building caption and graphic objects, using include graphics with absolute paths, centering, and proper label placement to enable references.
Add inline graphics and images in LaTeX for Java developers using include graphics, with or without a figure environment, and manage relative, absolute, and canonical paths.
Develop a Java-based graphics class that implements the LaTeX include graphics command with width, height, and keep aspect ratio options, using a fluent builder and key-value pairs.
This lecture demonstrates adjusting graphics in LaTeX with includegraphics, covering width, height, total height, scale, clipping with an asterisk, and keeping aspect ratio while rotating images.
Explore how includegraphics rotates images with angle and origin in LaTeX, using left, center, or baseline, and see how rotation affects the bounding box.
Learn to crop graphics with viewport and Treme, adjust the bounding box via box and trim, and use clip to render only the selected area.
Explore includegraphics options for pdf images, detailing how viewport, trim, and clip modify the bounding box and how to select a page and a box (media, crop, bleed, trim, art).
Explore how to manipulate images in LaTeX with include graphics, page selections, scaling, borders, and bounding box commands, including viewport, trim, clip, draft, and high-res options.
Add a list of figures to your LaTeX document with captions and labels, position it after the table of contents, and enable page breaks for clean layout.
Explore how the LaTeX hyperref package creates clickable hyperlinks for references and equations, including color options, preamble configuration, and PDF previews.
Explore how to customize hyperlinks in LaTeX using the hyper package, including color links, internal links, and the hyper set up command to control formatting and behavior.
Explore hyper setup in LaTeX for Java developers, enabling or disabling the hyper f package, configuring hyperlink options—like index, table of contents, and color links—in the PDF.
Learn to manage LaTeX bibliographies with BibTeX, export citations from Google Scholar, generate .bib entries, and compile with pdflatex and BibTeX for Java developers.
Develop a Java-based bibitem implementation for LaTeX, manage type and fields in a map, and generate the bibliography environment for BibTeX integration.
Implement an ArticleBib class in Java to model bib items with fields such as title, author, year, volume, and pages, and generate bib files for a LaTeX workflow.
Add author handling to the ArticleBib class by parsing each author into first, middle, and last names, validating the parts, and formatting as last name, first name using string join.
This course is aimed at LaTex and Java enthusiasts who are interested in systematically creating PDF documents in java by leveraging the power of LaTex. The intention was to cover all the aspects of Java and LaTeX from the very basics to the advanced. Things you will learn:
You will learn some of the deepest concepts of java programming, such as running command line application from within java
You will learn various Java design patterns, especially the builder and fluent builder design pattern
You will learn about some of the widely used software that uses LaTeX such as Texshop, LatexIt, Bibdesk.
You will learn how LaTeX works and how it handles various elements of a PDF document
You will learn how to handle graphics and images in LaTeX.
You will learn all of the options that LaTeX provides for manipulating figures.
You will learn about Bibliography and how to manage them using Java and LaTeX
Although Java was chosen as the programming language for this course, the ideas behind developing the object-oriented API can be easily translated into other programming languages such as C++ and Python.
The material presented in this course and the accompanying powerpoint slides are prepared with utmost quality. The powerpoints are very rich in contents and are freely available as a downloadable PDF file. You can use the slide numbering to follow along with the lectures.