From 5c9f965fc792f959463c1ea6e7be5fb6f1b459d9 Mon Sep 17 00:00:00 2001 From: Benjamin Mako Hill Date: Wed, 19 Aug 2026 15:48:52 +0900 Subject: [PATCH] Add a slides type to new_tex_document Extraction now takes the whole tree and copies the template out with tar -h, so symlinks into resources/ arrive as real files rather than as links pointing outside the new document. new_beamer_presentation is superseded; cdsc_tex_aliases.sh keeps the name as an alias. Co-Authored-By: Claude Opus 5 (1M context) --- cdsc_tex_aliases.sh | 1 + new_tex_document | 16 +++++++-- slides_template/new_beamer_presentation | 43 ------------------------- 3 files changed, 15 insertions(+), 45 deletions(-) delete mode 100755 slides_template/new_beamer_presentation diff --git a/cdsc_tex_aliases.sh b/cdsc_tex_aliases.sh index b4a0785..c43833a 100644 --- a/cdsc_tex_aliases.sh +++ b/cdsc_tex_aliases.sh @@ -6,4 +6,5 @@ if command -v new_tex_document > /dev/null 2>&1; then alias new_tex_memo='new_tex_document memo' alias new_knitr_document='new_tex_document knitr' alias new_tex_letter='new_tex_document letter' + alias new_beamer_presentation='new_tex_document slides' fi diff --git a/new_tex_document b/new_tex_document index 0043e0c..c42d978 100755 --- a/new_tex_document +++ b/new_tex_document @@ -10,7 +10,7 @@ CURDIR=$(pwd) usage() { echo "Usage: $(basename "$0") " - echo "Types: paper, memo, knitr, letter" + echo "Types: paper, memo, knitr, letter, slides" exit 1 } @@ -44,6 +44,12 @@ case "$TYPE" in TEMPLATE="letter_template" EXT="tex" ;; + slides) + REPO="$HOME/tex/cdsc_tex" + BRANCH="master" + TEMPLATE="slides_template" + EXT="tex" + ;; *) echo "error: unknown type '$TYPE'" usage @@ -56,8 +62,14 @@ if [ -e "$DEST" ]; then fi WORK_DIR=$(mktemp -d) +TREE_DIR=$(mktemp -d) +trap 'rm -rf "$TREE_DIR"' EXIT + +# Extract the whole tree, then copy the template out with tar -h, so that +# symlinks into resources/ become real files in the new document. cd "$REPO" -git archive --format=tar "$BRANCH" "$TEMPLATE" | tar x --strip=1 -C "$WORK_DIR" +git archive --format=tar "$BRANCH" | tar x -C "$TREE_DIR" +tar -chf - -C "$TREE_DIR/$TEMPLATE" . | tar x -C "$WORK_DIR" cd "$CURDIR" mv "$WORK_DIR" "$DEST" cd "$DEST" diff --git a/slides_template/new_beamer_presentation b/slides_template/new_beamer_presentation deleted file mode 100755 index 911718d..0000000 --- a/slides_template/new_beamer_presentation +++ /dev/null @@ -1,43 +0,0 @@ -#!/bin/sh - -# Helper script to export LaTeX templates for new documents -# Copyright (c) 2009-2022 Benjamin Mako Hill -# Released under the GPLv3 or later. - -set -e - -SOURCEDIR="$HOME/tex/beamer-mako" -CURDIR=$(pwd) - -if [ -n "$1" ] -then - if [ -e "$1" ]; then - echo "error: '$1' already exists" - exit 1 - fi - - WORK_DIR=$(mktemp -d) - cd "$SOURCEDIR" - git archive --format=tar HEAD template | tar x --strip=1 -C "$WORK_DIR" - cd "$CURDIR" - mv "$WORK_DIR" "$1" - - mv "$1/example.tex" "$1/$(basename "$1").tex" - - # create a symlink farm for the fonts - cd "$1" - rm -rf ./fonts/* - - # first create the directories - for fontdir in "${SOURCEDIR}/template/fonts/"*; do - mkdir "./fonts/$(basename "${fontdir}")" - # then the files - for fontfile in "${fontdir}/"*; do - ln -s "${fontfile}" "./fonts/$(basename "${fontdir}")/$(basename "${fontfile}")" - done - done - - cd "$CURDIR" -else - echo "specify a directory where the template should go" -fi