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 97 — verify forest-texlive texmf-dist + try kpsewhich + OSFONTDIR

iter 96 successfully built + uploaded forest-texlive (277MB NAR, in
manifest under .assets.texlive), but ag-0018 / e62c50c SVGs are
byte-identical to iter 94 (no texlive) — nf-fallbacks for cmcsc10/cmti10/
lmroman10-italic etc. unchanged. Warnings about lm-mathit/lm-rm CMaps
also unchanged. So either:
(a) The texmf-dist tree isn't where my hardcoded path expects;
(b) kpathsea isn't actually honoring TEXMFAUXTREES for OTF lookup.

iter 97 probes multiple candidate locations for the texmf-dist tree
under /share/ (and fallbacks), prints a diagnostic
when none match, sets OSFONTDIR explicitly, and runs kpsewhich
against forest-texlive's own bin to see if it can resolve
lmroman10-italic.otf via standard kpathsea lookup. This narrows
between (a) and (b).

Refs #2

[AGENT: kael]

+27 -4
+27 -4
.tangled/workflows/render.yml
··· 146 146 # (a symlink to the texCombo's share dir). kpathsea picks it up 147 147 # via TEXMF env var or texmf.cnf; we just add it to TEXMFAUXTREES 148 148 # for ADDITIVE search. 149 - if [ -d "$TEXLIVE_PATH/share/texmf-dist" ]; then 150 - export TEXLIVE_TEXMF="$TEXLIVE_PATH/share/texmf-dist" 151 - echo "✓ forest-texlive texmf-dist at $TEXLIVE_TEXMF" 152 - ls -la "$TEXLIVE_TEXMF/fonts/opentype/public/lm/" 2>/dev/null | head -5 || echo " (no LM OTFs)" 149 + # iter 97 — verify the actual texmf-dist location since iter 96 150 + # showed forest-texlive loaded but dvisvgm STILL nf-fallbacks. 151 + # texlive.combine output structure differs from naive expectation. 152 + for cand in "$TEXLIVE_PATH/share/texmf-dist" \ 153 + "$TEXLIVE_PATH/share/texmf" \ 154 + "$TEXLIVE_PATH/texmf-dist" \ 155 + "$TEXLIVE_PATH/share"; do 156 + if [ -d "$cand/fonts/opentype/public/lm" ]; then 157 + export TEXLIVE_TEXMF="$cand" 158 + echo "✓ forest-texlive: TEXLIVE_TEXMF=$TEXLIVE_TEXMF" 159 + ls -la "$TEXLIVE_TEXMF/fonts/opentype/public/lm/" 2>/dev/null | head -5 160 + break 161 + fi 162 + done 163 + if [ -z "${TEXLIVE_TEXMF:-}" ]; then 164 + echo "::warning::forest-texlive loaded but no texmf-dist tree found under $TEXLIVE_PATH/share/" 165 + ls -la "$TEXLIVE_PATH/share/" 2>/dev/null | head -10 166 + fi 167 + # Also tell kpsewhich to use this as the primary TEXMF (more 168 + # aggressive than TEXMFAUXTREES). 169 + if [ -n "${TEXLIVE_TEXMF:-}" ]; then 170 + export OSFONTDIR="$TEXLIVE_TEXMF/fonts/opentype:$TEXLIVE_TEXMF/fonts/truetype:${OSFONTDIR:-}" 171 + # iter 97 — try kpsewhich from forest-texlive's bin to see 172 + # if it can find LM fonts now. 173 + echo " kpsewhich lmroman10-italic.otf: $(kpsewhich lmroman10-italic.otf 2>/dev/null || echo 'NOT FOUND')" 174 + echo " kpsewhich lmromancaps10-regular.otf: $(kpsewhich lmromancaps10-regular.otf 2>/dev/null || echo 'NOT FOUND')" 175 + echo " kpsewhich --format='opentype fonts' lmroman10-italic.otf: $(kpsewhich --format='opentype fonts' lmroman10-italic.otf 2>/dev/null || echo 'NOT FOUND')" 153 176 fi 154 177 fi 155 178 # forest-tectonic stages dvips .pro headers (tex.pro, texps.pro,