Fix font package detection for fonts with spaces in names #479
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
When R Markdown documents use fonts with spaces in their names (e.g., "Noto Emoji", "DejaVu Sans"), automatic package installation via
tinytex::parse_install()fails becausetlmgr searchcannot find the packages.Root Cause
The
font_ext()function generates search patterns that preserve spaces from the font name reported in LaTeX errors. When LaTeX reports "Font 'Noto Emoji' not found", the generated pattern is:Font files never have spaces in their names (
NotoEmoji-Regular.ttf,DejaVuSans-Bold.ttf), sotlmgr search --filefails to find matching packages.Fix
Spaces in font names are replaced with
\s*regex pattern inR/latex.R:665:This generates patterns like
Noto\s*Emoji(-(Bold|Italic|Regular).*)?[.](tfm|afm|mf|otf|ttf)that match actual font files.Tests were added in
tests/test-cran/test-latex.Rto verify both thefont_ext()function directly and the fulldetect_files()workflow for fonts with spaces.Fixes #478