From da22f00c74b9b2d01e39f721fefbf5c84457bec0 Mon Sep 17 00:00:00 2001 From: Michael Tremer Date: Tue, 17 Feb 2026 17:23:39 +0000 Subject: [PATCH] Create scaffolding to render a LaTeX presentation Signed-off-by: Michael Tremer --- .gitignore | 10 ++++++++ Makefile.am | 62 ++++++++++++++++++++++++++++++++++++++++++++++++ autogen.sh | 7 ++++++ configure.ac | 43 +++++++++++++++++++++++++++++++++ presentation.tex | 39 ++++++++++++++++++++++++++++++ 5 files changed, 161 insertions(+) create mode 100644 .gitignore create mode 100644 Makefile.am create mode 100644 autogen.sh create mode 100644 configure.ac create mode 100644 presentation.tex diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..9179d4c --- /dev/null +++ b/.gitignore @@ -0,0 +1,10 @@ +/Makefile +/Makefile.in +/aclocal.m4 +/autom4te.cache/ +/build/ +/build-aux/ +/config.log +/config.status +/configure +/configure~ diff --git a/Makefile.am b/Makefile.am new file mode 100644 index 0000000..4b2a4d8 --- /dev/null +++ b/Makefile.am @@ -0,0 +1,62 @@ +# +# LaTex/Beamer Presentation Template for IPFire +# + +BUILD_DIR = build + +TEX_INPUT = presentation.tex +PDF_OUTPUT = presentation.pdf + +# --------------------------------------------------------------------------- +# xelatex flags +# +# -interaction=nonstopmode — never pause waiting for input +# -halt-on-error — exit non-zero on first error +# -output-directory — keep all auxiliary files out of src/ +# --------------------------------------------------------------------------- + +XELATEX_FLAGS = \ + -interaction=nonstopmode \ + -halt-on-error \ + -output-directory=$(BUILD_DIR) + +all-local: $(PDF_OUTPUT) + +$(PDF_OUTPUT): $(TEX_INPUT) $(THEME_STY) + @mkdir -p $(BUILD_DIR) + @echo " XELATEX [pass 1] $(TEX_INPUT)" + @$(XELATEX) $(XELATEX_FLAGS) -no-pdf $(TEX_INPUT) \ + || { echo " ERROR See $(BUILD_DIR)/presentation.log"; exit 1; } +if HAVE_BIBTEX + @echo " BIBTEX presentation" + @cd $(BUILD_DIR) && $(BIBTEX) presentation > /dev/null 2>&1 || true +endif + @echo " XELATEX [pass 2] $(TEX_INPUT)" + @$(XELATEX) $(XELATEX_FLAGS) $(TEX_INPUT) \ + || { echo " ERROR See $(BUILD_DIR)/presentation.log"; exit 1; } + @echo "" + @echo " OK $(PDF_OUTPUT)" + +LATEX_JUNK = \ + $(BUILD_DIR)/presentation.aux \ + $(BUILD_DIR)/presentation.bbl \ + $(BUILD_DIR)/presentation.bcf \ + $(BUILD_DIR)/presentation.blg \ + $(BUILD_DIR)/presentation.log \ + $(BUILD_DIR)/presentation.nav \ + $(BUILD_DIR)/presentation.out \ + $(BUILD_DIR)/presentation.run.xml \ + $(BUILD_DIR)/presentation.snm \ + $(BUILD_DIR)/presentation.toc \ + $(BUILD_DIR)/presentation.vrb + +clean-local: + @echo " CLEAN removing auxiliary files" + @rm -f $(LATEX_JUNK) + +distclean-local: clean-local + @echo " CLEAN removing PDF" + @rm -f $(PDF_OUTPUT) + +EXTRA_DIST = \ + images/ diff --git a/autogen.sh b/autogen.sh new file mode 100644 index 0000000..6fb08cd --- /dev/null +++ b/autogen.sh @@ -0,0 +1,7 @@ +#!/bin/bash + +autoreconf \ + --force \ + --install \ + --verbose \ + --warnings=all diff --git a/configure.ac b/configure.ac new file mode 100644 index 0000000..dc8f385 --- /dev/null +++ b/configure.ac @@ -0,0 +1,43 @@ +dnl +dnl LaTex/Beamer Presentation Template for IPFire +dnl + +AC_PREREQ([2.69]) + +AC_INIT( + [ipfire-talks], + [1.0.0], + [info@ipfire.org] +) + +AC_CONFIG_AUX_DIR([build-aux]) +AC_CONFIG_MACRO_DIR([m4]) + +AM_INIT_AUTOMAKE([foreign -Wall -Werror]) + +dnl --------------------------------------------------------------------------- +dnl Check for required tools +dnl --------------------------------------------------------------------------- + +AC_PATH_PROG([XELATEX], [xelatex], [no]) +AS_IF( + [test "x$XELATEX" = "xno"], + [AC_MSG_ERROR([xelatex is required. Install TeX Live or MiKTeX and ensure xelatex is in PATH.])] +) + +AC_PATH_PROG([BIBTEX], [bibtex], [no]) +AS_IF( + [test "x$BIBTEX" = "xno"], + [AC_MSG_WARN([bibtex not found — bibliography support disabled.])] +) +AM_CONDITIONAL([HAVE_BIBTEX], [test "x$BIBTEX" != "xno"]) + +dnl --------------------------------------------------------------------------- +dnl Output +dnl --------------------------------------------------------------------------- + +AC_CONFIG_FILES([ + Makefile +]) + +AC_OUTPUT diff --git a/presentation.tex b/presentation.tex new file mode 100644 index 0000000..b3b5296 --- /dev/null +++ b/presentation.tex @@ -0,0 +1,39 @@ +%% presentation.tex — IPFire Beamer Presentation Template + +\documentclass[ + aspectratio=169, % 16:9 widescreen; use 43 for 4:3 classic + t, % top-align frame content by default + 10pt, +]{beamer} + +% --------------------------------------------------------------------------- +% Metadata +% --------------------------------------------------------------------------- + +\title{Your Presentation Title} +\subtitle{An optional subtitle for more context} +\author{Your Name} +\institute{IPFire Project} +\date{\today} + +% --------------------------------------------------------------------------- +% Document +% --------------------------------------------------------------------------- + +\begin{document} + % Title slide — always use plain to suppress header/footer + \begin{frame}[plain, noframenumbering] + \titlepage + \end{frame} + + % Table of contents (optional — remove if your talk has no sections) + \begin{frame}{Agenda} + \tableofcontents[hideallsubsections] + \end{frame} + + % --------------------------------------------------------------------------- + % Appendix (optional) + % --------------------------------------------------------------------------- + % \appendix + % \input{appendix} +\end{document} -- 2.47.3