]> git.ipfire.org Git - talks.git/commitdiff
Create scaffolding to render a LaTeX presentation
authorMichael Tremer <michael.tremer@ipfire.org>
Tue, 17 Feb 2026 17:23:39 +0000 (17:23 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Tue, 17 Feb 2026 17:23:39 +0000 (17:23 +0000)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
.gitignore [new file with mode: 0644]
Makefile.am [new file with mode: 0644]
autogen.sh [new file with mode: 0644]
configure.ac [new file with mode: 0644]
presentation.tex [new file with mode: 0644]

diff --git a/.gitignore b/.gitignore
new file mode 100644 (file)
index 0000000..9179d4c
--- /dev/null
@@ -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 (file)
index 0000000..4b2a4d8
--- /dev/null
@@ -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 (file)
index 0000000..6fb08cd
--- /dev/null
@@ -0,0 +1,7 @@
+#!/bin/bash
+
+autoreconf \
+       --force \
+       --install \
+       --verbose \
+       --warnings=all
diff --git a/configure.ac b/configure.ac
new file mode 100644 (file)
index 0000000..dc8f385
--- /dev/null
@@ -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 (file)
index 0000000..b3b5296
--- /dev/null
@@ -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}