Utensil's Zettelkasten-style forest of evergreen notes on math and tech. utensil.tngl.sh/forest/
0

Configure Feed

Select the types of activity you want to include in your feed.

fix(render): iter 86 — diagnose kpsewhich lookups for cmcsc10 + rm-lmb10

Iter 85 confirmed every relevant file is on disk in BOTH the flat
FOREST_TEX_DIR AND the canonical FOREST_TEXMF tree (rm-*.tfm at
fonts/tfm/public/lm/, cmcsc10.pfb mirrored to fonts/type1/public/cm/,
ls-R indexed, psfonts.map has the direct mapping). But the SVG bytes
DID NOT CHANGE (48088 across iters 80-85), and the warnings about
'can't find rm-lmb10.tfm' persist.

Hypothesis: kpathsea at iter staging context AND at dvisvgm runtime
search different paths — TEXMFAUXTREES is only exported inside the
dvisvgm shim (per-call), so a sanity kpsewhich here wouldn't pick it
up unless we set it manually.

iter 86 runs kpsewhich in 3 contexts:
(a) bare environment (what build sees by default)
(b) with TEXMFAUXTREES explicitly set (what shim sees)
(c) dvisvgm --version + --list-fonts (any config hints)

Refs #2

[AGENT: kael]

+20 -12
+20 -12
.tangled/workflows/render.yml
··· 642 642 # build runs too?). Rebuild ls-R BEFORE the build step, and dump 643 643 # it to /tmp for inspection. 644 644 { 645 - echo "=== iter 85 staging verification ===" 645 + echo "=== iter 86 staging verification ===" 646 646 echo " FOREST_TEX_DIR: $FOREST_TEX_DIR" 647 647 echo " FOREST_TEXMF: $FOREST_TEXMF" 648 - echo "--- iter 85: where ARE the rm-*.tfm files? ---" 649 - echo " rm-lmb10.tfm (FOREST_TEX_DIR): $(ls -la "$FOREST_TEX_DIR/rm-lmb10.tfm" 2>/dev/null | head -1)" 650 - echo " rm-lmr10.tfm (FOREST_TEX_DIR): $(ls -la "$FOREST_TEX_DIR/rm-lmr10.tfm" 2>/dev/null | head -1)" 651 - echo " rm-lmb10.tfm (FOREST_TEXMF tree): $(find "$FOREST_TEXMF" -name rm-lmb10.tfm 2>/dev/null | head -1)" 652 - echo " rm-* total in FOREST_TEX_DIR: $(find "$FOREST_TEX_DIR" -maxdepth 1 -name 'rm-*.tfm' 2>/dev/null | wc -l)" 653 - echo " rm-* total in FOREST_TEXMF tree: $(find "$FOREST_TEXMF" -name 'rm-*.tfm' 2>/dev/null | wc -l)" 654 648 echo "--- iter 83 carryover: cm*.pfb mirror + ls-R ---" 655 649 if [ -d "$FOREST_TEXMF/fonts/type1/public/amsfonts/cm" ]; then 656 650 mkdir -p "$FOREST_TEXMF/fonts/type1/public/cm" 657 651 cp -n "$FOREST_TEXMF/fonts/type1/public/amsfonts/cm/"*.pfb \ 658 652 "$FOREST_TEXMF/fonts/type1/public/cm/" 2>/dev/null || true 659 - echo " /fonts/type1/public/cm/cmcsc10.pfb: $(ls -la "$FOREST_TEXMF/fonts/type1/public/cm/cmcsc10.pfb" 2>/dev/null | head -1)" 660 653 fi 661 - echo "--- iter 85 rebuild ls-R BEFORE build runs ---" 662 654 if command -v mktexlsr >/dev/null 2>&1; then 663 655 mktexlsr "$FOREST_TEXMF" 2>&1 | head -5 664 656 else 665 657 ( cd "$FOREST_TEXMF" && ls -R > ls-R ) 2>/dev/null 666 658 fi 667 - echo " ls-R: $(ls -la "$FOREST_TEXMF/ls-R" 2>/dev/null | head -1)" 668 - echo " ls-R rm-lmb10 hit: $(grep -c '^rm-lmb10' "$FOREST_TEXMF/ls-R" 2>/dev/null || echo 0)" 669 - echo " ls-R cmcsc10 hit: $(grep -c '^cmcsc10' "$FOREST_TEXMF/ls-R" 2>/dev/null || echo 0)" 659 + echo "--- iter 86: kpsewhich what dvisvgm runtime actually finds ---" 660 + echo " TEXMFAUXTREES exported in dvisvgm shim only — kpsewhich here may differ from shim runtime." 661 + echo " Test BOTH with and without TEXMFAUXTREES set explicitly here:" 662 + echo "--- (a) bare environment ---" 663 + echo " kpsewhich cmcsc10.pfb: $(kpsewhich cmcsc10.pfb 2>/dev/null || echo 'NOT FOUND')" 664 + echo " kpsewhich cmcsc10.tfm: $(kpsewhich cmcsc10.tfm 2>/dev/null || echo 'NOT FOUND')" 665 + echo " kpsewhich rm-lmb10.tfm: $(kpsewhich rm-lmb10.tfm 2>/dev/null || echo 'NOT FOUND')" 666 + echo " kpsewhich cmr10.pfb (sanity): $(kpsewhich cmr10.pfb 2>/dev/null || echo 'NOT FOUND')" 667 + echo "--- (b) with TEXMFAUXTREES set ---" 668 + export TEXMFAUXTREES="${FOREST_TEXMF}//" 669 + echo " TEXMFAUXTREES=$TEXMFAUXTREES" 670 + echo " kpsewhich cmcsc10.pfb: $(kpsewhich cmcsc10.pfb 2>/dev/null || echo 'NOT FOUND')" 671 + echo " kpsewhich cmcsc10.tfm: $(kpsewhich cmcsc10.tfm 2>/dev/null || echo 'NOT FOUND')" 672 + echo " kpsewhich rm-lmb10.tfm: $(kpsewhich rm-lmb10.tfm 2>/dev/null || echo 'NOT FOUND')" 673 + echo " kpsewhich cmr10.pfb: $(kpsewhich cmr10.pfb 2>/dev/null || echo 'NOT FOUND')" 674 + echo " kpsewhich lmr10.pfb (this one works in real renders): $(kpsewhich lmr10.pfb 2>/dev/null || echo 'NOT FOUND')" 675 + echo "--- (c) dvisvgm config (if it has one we can dump) ---" 676 + echo " dvisvgm --list-fonts | head: $(dvisvgm --list-fonts 2>/dev/null | head -3 || echo 'no --list-fonts support')" 677 + echo " dvisvgm --version: $(dvisvgm --version 2>/dev/null | head -2 || echo 'no version')" 670 678 } | tee /tmp/iter78-staging.log 671 679 672 680 # iter 52b — concatenate all staged .map files into a single