From a5ed05380ce3122184f0a4d18a2dfea3f0ef7577 Mon Sep 17 00:00:00 2001 From: Gordon Woodhull Date: Fri, 9 Jan 2026 23:28:41 -0500 Subject: [PATCH 1/7] Add pdf-standard option with verapdf validation Adds `pdf-standard` option for LaTeX and Typst PDF output supporting: - PDF versions: 1.4, 1.5, 1.6, 1.7, 2.0 - PDF/A: a-1b, a-2a, a-2b, a-2u, a-3a, a-3b, a-3u, a-4, a-4e, a-4f - PDF/UA: ua-1, ua-2 (LaTeX only) - PDF/X: x-4, x-4p, x-5g, x-5n, x-5pg, x-6, x-6n, x-6p (LaTeX only) Features: - Automatic PDF version inference from standard requirements - LaTeX image alt text propagation for PDF/UA compliance - Tagging enabled only for standards that require it - `quarto install verapdf` for PDF/A and PDF/UA validation - Automatic validation when verapdf is available Closes #4426, #13782, #13248 Co-Authored-By: Claude Opus 4.5 --- .github/workflows/test-smokes.yml | 9 +- news/changelog-1.9.md | 6 + src/command/render/latexmk/parse-error.ts | 62 +++- src/command/render/latexmk/pdf.ts | 20 ++ src/command/render/latexmk/texlive.ts | 7 +- src/command/render/output-tex.ts | 13 + src/command/render/output-typst.ts | 71 ++++- src/config/constants.ts | 3 + src/config/types.ts | 2 + src/core/typst.ts | 4 + src/core/verapdf.ts | 276 +++++++++++++++++ src/format/pdf/format-pdf.ts | 140 ++++++++- src/resources/filters/layout/latex.lua | 14 +- src/resources/filters/quarto-pre/figures.lua | 11 + .../pdf/pandoc/document-metadata.latex | 20 ++ .../formats/pdf/pandoc/hypersetup.latex | 4 + src/resources/formats/pdf/pandoc/template.tex | 1 + src/resources/schema/document-pdfa.yml | 61 ++++ src/tools/impl/verapdf.ts | 282 ++++++++++++++++++ src/tools/tools.ts | 86 +++++- tests/docs/smoke-all/pdf-standard/.gitignore | 5 + .../smoke-all/pdf-standard/latex-combined.qmd | 17 ++ .../pdf-standard/latex-multi-standard.qmd | 17 ++ .../pdf-standard/latex-pdfa-accessible.qmd | 18 ++ .../smoke-all/pdf-standard/latex-pdfa1b.qmd | 24 ++ .../smoke-all/pdf-standard/latex-pdfa3b.qmd | 24 ++ .../pdf-standard/latex-pdfversion.qmd | 18 ++ .../latex-unsupported-warning.qmd | 17 ++ tests/docs/smoke-all/pdf-standard/pdfa-2b.qmd | 28 ++ .../pdf-standard/pdfversion-numeric.qmd | 24 ++ .../smoke-all/pdf-standard/test-image.png | Bin 0 -> 139465 bytes .../typst-unsupported-warning.qmd | 17 ++ .../typst-version-and-standard.qmd | 14 + .../smoke-all/pdf-standard/ua-compliant.qmd | 28 ++ .../pdf-standard/ua-definition-list.qmd | 28 ++ .../pdf-standard/ua-figure-missing-alt.qmd | 39 +++ .../pdf-standard/ua-image-alt-text.qmd | 35 +++ .../smoke-all/pdf-standard/ua-math-test.qmd | 41 +++ .../pdf-standard/ua-math-with-alt.qmd | 34 +++ .../smoke-all/pdf-standard/ua-missing-alt.qmd | 39 +++ .../pdf-standard/ua-missing-title.qmd | 34 +++ tests/docs/smoke-all/typst/.gitignore | 3 + 42 files changed, 1584 insertions(+), 12 deletions(-) create mode 100644 src/core/verapdf.ts create mode 100644 src/resources/formats/pdf/pandoc/document-metadata.latex create mode 100644 src/tools/impl/verapdf.ts create mode 100644 tests/docs/smoke-all/pdf-standard/.gitignore create mode 100644 tests/docs/smoke-all/pdf-standard/latex-combined.qmd create mode 100644 tests/docs/smoke-all/pdf-standard/latex-multi-standard.qmd create mode 100644 tests/docs/smoke-all/pdf-standard/latex-pdfa-accessible.qmd create mode 100644 tests/docs/smoke-all/pdf-standard/latex-pdfa1b.qmd create mode 100644 tests/docs/smoke-all/pdf-standard/latex-pdfa3b.qmd create mode 100644 tests/docs/smoke-all/pdf-standard/latex-pdfversion.qmd create mode 100644 tests/docs/smoke-all/pdf-standard/latex-unsupported-warning.qmd create mode 100644 tests/docs/smoke-all/pdf-standard/pdfa-2b.qmd create mode 100644 tests/docs/smoke-all/pdf-standard/pdfversion-numeric.qmd create mode 100644 tests/docs/smoke-all/pdf-standard/test-image.png create mode 100644 tests/docs/smoke-all/pdf-standard/typst-unsupported-warning.qmd create mode 100644 tests/docs/smoke-all/pdf-standard/typst-version-and-standard.qmd create mode 100644 tests/docs/smoke-all/pdf-standard/ua-compliant.qmd create mode 100644 tests/docs/smoke-all/pdf-standard/ua-definition-list.qmd create mode 100644 tests/docs/smoke-all/pdf-standard/ua-figure-missing-alt.qmd create mode 100644 tests/docs/smoke-all/pdf-standard/ua-image-alt-text.qmd create mode 100644 tests/docs/smoke-all/pdf-standard/ua-math-test.qmd create mode 100644 tests/docs/smoke-all/pdf-standard/ua-math-with-alt.qmd create mode 100644 tests/docs/smoke-all/pdf-standard/ua-missing-alt.qmd create mode 100644 tests/docs/smoke-all/pdf-standard/ua-missing-title.qmd create mode 100644 tests/docs/smoke-all/typst/.gitignore diff --git a/.github/workflows/test-smokes.yml b/.github/workflows/test-smokes.yml index 5cfc7acdb95..989e36bad75 100644 --- a/.github/workflows/test-smokes.yml +++ b/.github/workflows/test-smokes.yml @@ -141,7 +141,7 @@ jobs: - name: Install rsvg-convert for SVG conversion tests # Only do it on linux runner, and only if we are running the relevant tests - if: runner.os == 'Linux' && contains(inputs.buckets, 'render-pdf-svg-conversion') + if: runner.os == 'Linux' && (contains(inputs.buckets, 'render-pdf-svg-conversion') || contains(inputs.buckets, 'pdf-standard')) run: | sudo apt-get update -y sudo apt-get install -y librsvg2-bin @@ -201,6 +201,13 @@ jobs: run: | quarto install tinytex + - name: Install veraPDF for PDF standard validation + if: runner.os == 'Linux' && contains(inputs.buckets, 'pdf-standard') + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: | + quarto install verapdf + - name: Cache Typst packages id: cache-typst uses: ./.github/actions/cache-typst diff --git a/news/changelog-1.9.md b/news/changelog-1.9.md index 5996e470f2e..503ec995e5c 100644 --- a/news/changelog-1.9.md +++ b/news/changelog-1.9.md @@ -55,7 +55,9 @@ All changes included in 1.9: ### `pdf` +- ([#4426](https://github.com/quarto-dev/quarto-cli/issues/4426)): Add `pdf-standard` option for PDF/A, PDF/UA, and PDF version control. Supports standards like `a-2b`, `ua-1`, and versions `1.7`, `2.0`. Works with both LaTeX and Typst formats. - ([#10291](https://github.com/quarto-dev/quarto-cli/issues/10291)): Fix detection of babel hyphenation warnings with straight-quote format instead of backtick-quote format. +- ([#13248](https://github.com/quarto-dev/quarto-cli/issues/13248)): Fix image alt text not being passed to LaTeX `\includegraphics[alt={...}]` for PDF accessibility. Markdown image captions and `fig-alt` attributes are now preserved for PDF/UA compliance. - ([#13661](https://github.com/quarto-dev/quarto-cli/issues/13661)): Fix LaTeX compilation errors when using `mermaid-format: svg` with PDF/LaTeX output. SVG diagrams are now written directly without HTML script tags. Note: `mermaid-format: png` is recommended for best compatibility. SVG format requires `rsvg-convert` (or Inkscape with `use-rsvg-convert: false`) in PATH for conversion to PDF, and may experience text clipping in diagrams with multi-line labels. - ([rstudio/tinytex-releases#49](https://github.com/rstudio/tinytex-releases/issues/49)): Fix detection of LuaTeX-ja missing file errors by matching both "File" and "file" in error messages. - ([#13667](https://github.com/quarto-dev/quarto-cli/issues/13667)): Fix LaTeX compilation error with Python error output containing caret characters. @@ -113,6 +115,10 @@ All changes included in 1.9: - (): New `quarto call build-ts-extension` command builds a TypeScript extension, such as an engine extension, and places the artifacts in the `_extensions` directory. See the [engine extension pre-release documentation](https://prerelease.quarto.org/docs/extensions/engine.html) for details. +### `install verapdf` + +- ([#4426](https://github.com/quarto-dev/quarto-cli/issues/4426)): New `quarto install verapdf` command installs [veraPDF](https://verapdf.org/) for PDF/A and PDF/UA validation. When verapdf is available, PDFs created with the `pdf-standard` option are automatically validated for compliance. Also supports `quarto uninstall verapdf`, `quarto update verapdf`, and `quarto tools`. + ## Extensions - Metadata and brand extensions now work without a `_quarto.yml` project. (Engine extensions do too.) A temporary default project is created in memory. diff --git a/src/command/render/latexmk/parse-error.ts b/src/command/render/latexmk/parse-error.ts index 22ff6d18570..94459309674 100644 --- a/src/command/render/latexmk/parse-error.ts +++ b/src/command/render/latexmk/parse-error.ts @@ -107,6 +107,53 @@ const resolvingMatchers = [ }, ]; +// Finds PDF/UA accessibility warnings from tagpdf and DocumentMetadata +export interface PdfAccessibilityWarnings { + missingAltText: string[]; // filenames of images missing alt text + missingLanguage: boolean; // document language not set + otherWarnings: string[]; // other tagpdf warnings +} + +export function findPdfAccessibilityWarnings( + logText: string, +): PdfAccessibilityWarnings { + const result: PdfAccessibilityWarnings = { + missingAltText: [], + missingLanguage: false, + otherWarnings: [], + }; + + // Match: Package tagpdf Warning: Alternative text for graphic is missing. + // (tagpdf) Using 'filename' instead. + const altTextRegex = + /Package tagpdf Warning: Alternative text for graphic is missing\.\s*\n\(tagpdf\)\s*Using ['`]([^'`]+)['`] instead\./g; + let match; + while ((match = altTextRegex.exec(logText)) !== null) { + result.missingAltText.push(match[1]); + } + + // Match: LaTeX DocumentMetadata Warning: The language has not been set in + if ( + /LaTeX DocumentMetadata Warning: The language has not been set in/.test( + logText, + ) + ) { + result.missingLanguage = true; + } + + // Capture any other tagpdf warnings we haven't specifically handled + const otherTagpdfRegex = /Package tagpdf Warning: ([^\n]+)/g; + while ((match = otherTagpdfRegex.exec(logText)) !== null) { + const warning = match[1]; + // Skip the alt text warning we already handle specifically + if (!warning.startsWith("Alternative text for graphic is missing")) { + result.otherWarnings.push(warning); + } + } + + return result; +} + // Finds missing hyphenation files (these appear as warnings in the log file) export function findMissingHyphenationFiles(logText: string) { //ngerman gets special cased @@ -273,6 +320,19 @@ const packageMatchers = [ return "colorprofiles.sty"; }, }, + { + regex: /.*No support files for \\DocumentMetadata found.*/g, + filter: (_match: string, _text: string) => { + return "latex-lab"; + }, + }, + { + // PDF/A requires embedded color profiles - pdfmanagement-testphase needs colorprofiles + regex: /.*\(pdf backend\): cannot open file for embedding.*/g, + filter: (_match: string, _text: string) => { + return "colorprofiles"; + }, + }, { regex: /.*No file ([^`'. ]+[.]fd)[.].*/g, filter: (match: string, _text: string) => { @@ -297,7 +357,7 @@ const packageMatchers = [ ]; function fontSearchTerm(font: string): string { - const fontPattern = font.replace(/\s+/g, '\\s*'); + const fontPattern = font.replace(/\s+/g, "\\s*"); return `${fontPattern}(-(Bold|Italic|Regular).*)?[.](tfm|afm|mf|otf|ttf)`; } diff --git a/src/command/render/latexmk/pdf.ts b/src/command/render/latexmk/pdf.ts index 7aa66aa942a..9af74e170f7 100644 --- a/src/command/render/latexmk/pdf.ts +++ b/src/command/render/latexmk/pdf.ts @@ -21,6 +21,7 @@ import { findLatexError, findMissingFontsAndPackages, findMissingHyphenationFiles, + findPdfAccessibilityWarnings, kMissingFontLog, needsRecompilation, } from "./parse-error.ts"; @@ -197,6 +198,25 @@ async function initialCompileLatex( `Possibly missing hyphenation file: '${missingHyphenationFile}'. See more in logfile (by setting 'latex-clean: false').\n`, ); } + + // Check for accessibility warnings (e.g., missing alt text, language with PDF/UA) + const accessibilityWarnings = findPdfAccessibilityWarnings(logText); + if (accessibilityWarnings.missingAltText.length > 0) { + const fileList = accessibilityWarnings.missingAltText.join(", "); + warning( + `PDF accessibility: Missing alt text for image(s): ${fileList}. Add alt text using ![alt text](image.png) syntax for PDF/UA compliance.\n`, + ); + } + if (accessibilityWarnings.missingLanguage) { + warning( + `PDF accessibility: Document language not set. Add 'lang: en' (or appropriate language) to document metadata for PDF/UA compliance.\n`, + ); + } + if (accessibilityWarnings.otherWarnings.length > 0) { + for (const warn of accessibilityWarnings.otherWarnings) { + warning(`PDF accessibility: ${warn}\n`); + } + } } else if (pkgMgr.autoInstall) { // try autoinstalling // First be sure all packages are up to date diff --git a/src/command/render/latexmk/texlive.ts b/src/command/render/latexmk/texlive.ts index 2a1884155a8..923e6421966 100644 --- a/src/command/render/latexmk/texlive.ts +++ b/src/command/render/latexmk/texlive.ts @@ -86,10 +86,11 @@ export async function findPackages( `finding package for ${searchTerm}`, ); } - // Special case for a known package + // Special cases for known packages where tlmgr file search doesn't work // https://github.com/rstudio/tinytex/blob/33cbe601ff671fae47c594250de1d22bbf293b27/R/latex.R#L470 - if (searchTerm === "fandol") { - results.push("fandol"); + const knownPackages = ["fandol", "latex-lab", "colorprofiles"]; + if (knownPackages.includes(searchTerm)) { + results.push(searchTerm); } else { const result = await tlmgrCommand( "search", diff --git a/src/command/render/output-tex.ts b/src/command/render/output-tex.ts index c93b22b9d50..bb54154caf3 100644 --- a/src/command/render/output-tex.ts +++ b/src/command/render/output-tex.ts @@ -15,9 +15,12 @@ import { kKeepTex, kOutputExt, kOutputFile, + kPdfStandard, kTargetFormat, } from "../../config/constants.ts"; import { Format } from "../../config/types.ts"; +import { asArray } from "../../core/array.ts"; +import { validatePdfStandards } from "../../core/verapdf.ts"; import { PandocOptions, RenderFlags, RenderOptions } from "./types.ts"; import { kStdOut, replacePandocOutputArg } from "./flags.ts"; @@ -80,6 +83,16 @@ export function texToPdfOutputRecipe( const input = join(inputDir, output); const pdfOutput = await pdfGenerator.generate(input, format, pandocOptions); + // Validate PDF against specified standards using verapdf (if available) + const pdfStandards = asArray( + format.render?.[kPdfStandard] ?? format.metadata?.[kPdfStandard], + ) as string[]; + if (pdfStandards.length > 0) { + await validatePdfStandards(pdfOutput, pdfStandards, { + quiet: pandocOptions.flags?.quiet, + }); + } + // keep tex if requested const compileTex = join(inputDir, output); if (!format.render[kKeepTex]) { diff --git a/src/command/render/output-typst.ts b/src/command/render/output-typst.ts index 7f11880185b..695a144a8f9 100644 --- a/src/command/render/output-typst.ts +++ b/src/command/render/output-typst.ts @@ -23,8 +23,10 @@ import { kKeepTyp, kOutputExt, kOutputFile, + kPdfStandard, kVariant, } from "../../config/constants.ts"; +import { error, warning } from "../../deno_ral/log.ts"; import { Format } from "../../config/types.ts"; import { writeFileToStdout } from "../../core/console.ts"; import { dirAndStem, expandPath } from "../../core/path.ts"; @@ -38,6 +40,7 @@ import { } from "../../core/typst.ts"; import { asArray } from "../../core/array.ts"; import { ProjectContext } from "../../project/types.ts"; +import { validatePdfStandards } from "../../core/verapdf.ts"; // Stage typst packages to .quarto/typst-packages/ // First stages built-in packages, then extension packages (which can override) @@ -137,6 +140,11 @@ export function typstPdfOutputRecipe( const typstOptions: TypstCompileOptions = { quiet: options.flags?.quiet, fontPaths: asArray(format.metadata?.[kFontPaths]) as string[], + pdfStandard: normalizePdfStandardForTypst( + asArray( + format.render?.[kPdfStandard] ?? format.metadata?.[kPdfStandard], + ), + ), }; if (project?.dir) { typstOptions.rootDir = project.dir; @@ -153,7 +161,21 @@ export function typstPdfOutputRecipe( typstOptions, ); if (!result.success) { - throw new Error(); + // Log the error so test framework can detect it via shouldError + if (result.stderr) { + error(result.stderr); + } + throw new Error("Typst compilation failed"); + } + + // Validate PDF against specified standards using verapdf (if available) + const pdfStandards = asArray( + format.render?.[kPdfStandard] ?? format.metadata?.[kPdfStandard], + ) as string[]; + if (pdfStandards.length > 0) { + await validatePdfStandards(pdfOutput, pdfStandards, { + quiet: options.flags?.quiet, + }); } // keep typ if requested @@ -217,3 +239,50 @@ export function typstPdfOutputRecipe( return recipe; } + +// Typst-supported PDF standards +const kTypstSupportedStandards = new Set([ + "1.4", + "1.5", + "1.6", + "1.7", + "2.0", + "a-1b", + "a-1a", + "a-2b", + "a-2u", + "a-2a", + "a-3b", + "a-3u", + "a-3a", + "a-4", + "a-4f", + "a-4e", + "ua-1", +]); + +function normalizePdfStandardForTypst(standards: unknown[]): string[] { + const result: string[] = []; + for (const s of standards) { + // Convert to string - YAML may parse versions like 2.0 as integer 2 + let str: string; + if (typeof s === "number") { + // Handle YAML numeric parsing: integer 2 -> "2.0", float 1.4 -> "1.4" + str = Number.isInteger(s) ? `${s}.0` : String(s); + } else if (typeof s === "string") { + str = s; + } else { + continue; + } + // Normalize: lowercase, remove any "pdf" prefix + const normalized = str.toLowerCase().replace(/^pdf[/-]?/, ""); + if (kTypstSupportedStandards.has(normalized)) { + result.push(normalized); + } else { + warning( + `PDF standard '${s}' is not supported by Typst and will be ignored`, + ); + } + } + return result; +} diff --git a/src/config/constants.ts b/src/config/constants.ts index 56e75b1d823..2a64c4193f9 100644 --- a/src/config/constants.ts +++ b/src/config/constants.ts @@ -86,6 +86,7 @@ export const kShortcodes = "shortcodes"; export const kKeepMd = "keep-md"; export const kKeepTex = "keep-tex"; export const kKeepTyp = "keep-typ"; +export const kPdfStandard = "pdf-standard"; export const kKeepIpynb = "keep-ipynb"; export const kKeepSource = "keep-source"; export const kVariant = "variant"; @@ -219,6 +220,7 @@ export const kRenderDefaultsKeys = [ kLatexTlmgrOpts, kLatexOutputDir, kLatexTinyTex, + kPdfStandard, kLinkExternalIcon, kLinkExternalNewwindow, kLinkExternalFilter, @@ -686,6 +688,7 @@ export const kPandocDefaultsKeys = [ kPdfEngine, kPdfEngineOpts, kPdfEngineOpt, + kPdfStandard, kWrap, kColumns, "dpi", diff --git a/src/config/types.ts b/src/config/types.ts index 09daafe951d..1f7c3132a9d 100644 --- a/src/config/types.ts +++ b/src/config/types.ts @@ -176,6 +176,7 @@ import { kPdfEngine, kPdfEngineOpt, kPdfEngineOpts, + kPdfStandard, kPlotlyConnected, kPreferHtml, kPreserveYaml, @@ -492,6 +493,7 @@ export interface FormatRender { [kLatexMinRuns]?: number; [kLatexMaxRuns]?: number; [kLatexClean]?: boolean; + [kPdfStandard]?: string | string[]; [kLatexInputPaths]?: string[]; [kLatexMakeIndex]?: string; [kLatexMakeIndexOpts]?: string[]; diff --git a/src/core/typst.ts b/src/core/typst.ts index 42d9ea97876..0653f207012 100644 --- a/src/core/typst.ts +++ b/src/core/typst.ts @@ -41,6 +41,7 @@ export type TypstCompileOptions = { fontPaths?: string[]; rootDir?: string; packagePath?: string; + pdfStandard?: string[]; }; export async function typstCompile( @@ -72,6 +73,9 @@ export async function typstCompile( cmd.push("--package-cache-path", options.packagePath); } } + if (options.pdfStandard && options.pdfStandard.length > 0) { + cmd.push("--pdf-standard", options.pdfStandard.join(",")); + } cmd.push( input, ...fontPathsArgs(fontPaths), diff --git a/src/core/verapdf.ts b/src/core/verapdf.ts new file mode 100644 index 00000000000..7de98d35b97 --- /dev/null +++ b/src/core/verapdf.ts @@ -0,0 +1,276 @@ +/* + * verapdf.ts + * + * Copyright (C) 2020-2022 Posit Software, PBC + */ + +import { info, warning } from "../deno_ral/log.ts"; +import { basename, join } from "../deno_ral/path.ts"; +import * as colors from "fmt/colors"; + +import { execProcess } from "./process.ts"; +import { which } from "./path.ts"; +import { quartoDataDir } from "./appdirs.ts"; +import { existsSync } from "../deno_ral/fs.ts"; +import { isWindows } from "../deno_ral/platform.ts"; + +// verapdf flavours (profiles) supported for validation +// Maps quarto pdf-standard values to verapdf --flavour values +const kVerapdfFlavours: Record = { + // PDF/A standards + "a-1a": "1a", + "a-1b": "1b", + "a-2a": "2a", + "a-2b": "2b", + "a-2u": "2u", + "a-3a": "3a", + "a-3b": "3b", + "a-3u": "3u", + "a-4": "4", + "a-4e": "4e", + "a-4f": "4f", + // PDF/UA standards + "ua-1": "ua1", + "ua-2": "ua2", +}; + +// Standards that verapdf can validate (keys of the above map) +const kVerapdfSupportedStandards = new Set(Object.keys(kVerapdfFlavours)); + +/** + * Check if a pdf-standard value can be validated by verapdf + */ +export function isVerapdfSupportedStandard(standard: string): boolean { + const normalized = standard.toLowerCase().replace(/^pdf[/-]?/, ""); + return kVerapdfSupportedStandards.has(normalized); +} + +/** + * Get verapdf flavour for a pdf-standard value, or undefined if not supported + */ +export function getVerapdfFlavour(standard: string): string | undefined { + const normalized = standard.toLowerCase().replace(/^pdf[/-]?/, ""); + return kVerapdfFlavours[normalized]; +} + +/** + * Find verapdf binary path - checks PATH and quarto install location + */ +export async function findVerapdfPath(): Promise { + // First check PATH + const pathResult = await which("verapdf"); + if (pathResult) { + return pathResult; + } + + // Check quarto install location + const quartoVerapdfDir = quartoDataDir("verapdf"); + const quartoVerapdfBin = isWindows + ? join(quartoVerapdfDir, "verapdf.bat") + : join(quartoVerapdfDir, "verapdf"); + + if (existsSync(quartoVerapdfBin)) { + return quartoVerapdfBin; + } + + return undefined; +} + +export interface VerapdfValidationResult { + valid: boolean; + flavour: string; + errors: string[]; + output: string; +} + +/** + * Run verapdf validation on a PDF file + */ +export async function validatePdf( + pdfPath: string, + flavour: string, + quiet = false, +): Promise { + const verapdfPath = await findVerapdfPath(); + if (!verapdfPath) { + throw new Error("verapdf not found"); + } + + if (!quiet) { + info( + `[verapdf]: Validating ${ + basename(pdfPath) + } against PDF/${flavour.toUpperCase()}...`, + { newline: false }, + ); + } + + const result = await execProcess({ + cmd: verapdfPath, + args: ["-f", flavour, pdfPath], + stdout: "piped", + stderr: "piped", + }); + + const output = result.stdout || ""; + + // Parse verapdf XML output to determine compliance + // Look for isCompliant="true" in validationReport or compliant count in batchSummary + const isCompliantMatch = output.match(/isCompliant="(true|false)"/); + const batchSummaryMatch = output.match( + /validationReports[^>]*compliant="(\d+)"[^>]*nonCompliant="(\d+)"/, + ); + + let valid = false; + if (isCompliantMatch) { + valid = isCompliantMatch[1] === "true"; + } else if (batchSummaryMatch) { + const compliant = parseInt(batchSummaryMatch[1]); + const nonCompliant = parseInt(batchSummaryMatch[2]); + valid = nonCompliant === 0 && compliant > 0; + } else { + // Fallback: assume valid if exit code is 0 and no obvious failure indicators + valid = result.success; + } + + // Extract error messages from output when validation fails + const errors: string[] = []; + if (!valid) { + // Look for failed rules with descriptions + // Pattern: ... + const ruleDescMatches = output.matchAll( + /]*>[\s\S]*?([^<]+)<\/description>/g, + ); + for (const match of ruleDescMatches) { + const desc = match[1].trim(); + if (desc && !errors.includes(desc)) { + errors.push(desc); + } + } + + // Also look for clause violations in ruleId + if (errors.length === 0) { + const clauseMatches = output.matchAll( + /]*clause="([^"]*)"[^>]*specification="([^"]*)"/g, + ); + for (const match of clauseMatches) { + errors.push(`${match[2]} clause ${match[1]} violation`); + } + } + + // Extract failedChecks count for summary + const failedChecksMatch = output.match(/failedChecks="(\d+)"/); + if (failedChecksMatch && parseInt(failedChecksMatch[1]) > 0) { + const count = failedChecksMatch[1]; + if (errors.length === 0) { + errors.push(`${count} compliance check(s) failed`); + } + } + } + + if (!quiet) { + if (valid) { + info(colors.green("PASSED\n")); + } else { + info(colors.red("FAILED\n")); + } + } + + return { + valid, + flavour, + errors, + output, + }; +} + +export interface PdfValidationOptions { + quiet?: boolean; + warnOnMissingVerapdf?: boolean; +} + +/** + * Validate a PDF against specified standards using verapdf + * Returns true if all validations pass (or if no validatable standards specified) + */ +export async function validatePdfStandards( + pdfPath: string, + standards: string[], + options: PdfValidationOptions = {}, +): Promise { + const quiet = options.quiet ?? false; + const warnOnMissingVerapdf = options.warnOnMissingVerapdf ?? true; + + // Filter to standards that verapdf can validate + const validatableStandards: { standard: string; flavour: string }[] = []; + const nonValidatableStandards: string[] = []; + + for (const standard of standards) { + // Convert to string in case YAML parsed a version number (e.g., 2.0) as a number + const standardStr = String(standard); + const normalized = standardStr.toLowerCase().replace(/^pdf[/-]?/, ""); + // Skip version numbers (1.4, 1.5, etc.) + if (/^\d+\.\d+$/.test(normalized)) { + continue; + } + const flavour = getVerapdfFlavour(normalized); + if (flavour) { + validatableStandards.push({ standard: normalized, flavour }); + } else { + nonValidatableStandards.push(standardStr); + } + } + + // Nothing to validate + if (validatableStandards.length === 0) { + return true; + } + + // Check if verapdf is available + const verapdfPath = await findVerapdfPath(); + if (!verapdfPath) { + if (warnOnMissingVerapdf) { + warning( + `PDF standard validation requested but verapdf is not installed.\n` + + `Install with: quarto install verapdf\n` + + `Standards requested: ${ + validatableStandards.map((s) => s.standard).join(", ") + }`, + ); + } + return true; // Don't fail the build, just warn + } + + // Warn about standards we can't validate + if (nonValidatableStandards.length > 0) { + warning( + `The following PDF standards cannot be validated by verapdf and will be skipped: ` + + nonValidatableStandards.join(", "), + ); + } + + // Run validation for each standard + let allValid = true; + for (const { standard, flavour } of validatableStandards) { + try { + const result = await validatePdf(pdfPath, flavour, quiet); + if (!result.valid) { + allValid = false; + if (!quiet) { + warning( + `PDF validation failed for ${standard}:\n` + + (result.errors.length > 0 + ? result.errors.slice(0, 5).join("\n") + : "See verapdf output for details"), + ); + } + } + } catch (error) { + if (!quiet) { + warning(`Failed to run verapdf validation: ${error}`); + } + } + } + + return allValid; +} diff --git a/src/format/pdf/format-pdf.ts b/src/format/pdf/format-pdf.ts index 16142cab7cc..027b8448593 100644 --- a/src/format/pdf/format-pdf.ts +++ b/src/format/pdf/format-pdf.ts @@ -31,12 +31,15 @@ import { kNumberSections, kPaperSize, kPdfEngine, + kPdfStandard, kReferenceLocation, kShiftHeadingLevelBy, kTblCapLoc, kTopLevelDivision, kWarning, } from "../../config/constants.ts"; +import { warning } from "../../deno_ral/log.ts"; +import { asArray } from "../../core/array.ts"; import { Format, FormatExtras, PandocFlags } from "../../config/types.ts"; import { createFormat } from "../formats-shared.ts"; @@ -254,6 +257,7 @@ function createPdfFormat( const partialNamesPandoc: string[] = [ "after-header-includes", "common", + "document-metadata", "font-settings", "fonts", "hypersetup", @@ -277,10 +281,16 @@ function createPdfFormat( ], }; }; + // Beamer doesn't use document-metadata partial (its template doesn't include it) + const beamerPartialNamesPandoc = partialNamesPandoc.filter( + (name) => name !== "document-metadata", + ); extras.templateContext = createTemplateContext( displayName === "Beamer" ? "beamer" : "pdf", partialNamesQuarto, - partialNamesPandoc, + displayName === "Beamer" + ? beamerPartialNamesPandoc + : partialNamesPandoc, ); // Don't shift the headings if we see any H1s (we can't shift up any longer) @@ -313,6 +323,30 @@ function createPdfFormat( extras.pandoc[kNumberSections] = true; } + // Handle pdf-standard option for PDF/A, PDF/UA, PDF/X conformance + const pdfStandard = asArray( + format.render?.[kPdfStandard] ?? format.metadata?.[kPdfStandard], + ); + if (pdfStandard.length > 0) { + const { version, standards, needsTagging } = + normalizePdfStandardForLatex(pdfStandard); + // Set pdfstandard as a map if there are standards or a version + if (standards.length > 0 || version) { + extras.pandoc.variables = extras.pandoc.variables || {}; + const pdfstandardMap: Record = {}; + if (standards.length > 0) { + pdfstandardMap.standards = standards; + } + if (version) { + pdfstandardMap.version = version; + } + if (needsTagging) { + pdfstandardMap.tagging = true; + } + extras.pandoc.variables["pdfstandard"] = pdfstandardMap; + } + } + return extras; }, }, @@ -1239,3 +1273,107 @@ const kbeginLongTablesideCap = `{ \\makeatother`; const kEndLongTableSideCap = "}"; + +// LaTeX-supported PDF standards (from latex3/latex2e DocumentMetadata) +// See: https://github.com/latex3/latex2e - documentmetadata-support.dtx +const kLatexSupportedStandards = new Set([ + // PDF/A standards (note: a-1a is NOT supported, only a-1b) + "a-1b", + "a-2a", + "a-2b", + "a-2u", + "a-3a", + "a-3b", + "a-3u", + "a-4", + "a-4e", + "a-4f", + // PDF/X standards + "x-4", + "x-4p", + "x-5g", + "x-5n", + "x-5pg", + "x-6", + "x-6n", + "x-6p", + // PDF/UA standards (only ua-2 is supported by LaTeX) + "ua-2", +]); + +// Standards that require PDF tagging (document structure) +// - PDF/A level "a" variants require tagged structure per PDF/A spec +// - PDF/UA standards require tagging for universal accessibility +// (LaTeX does NOT automatically enable tagging for UA standards) +const kTaggingRequiredStandards = new Set([ + "a-2a", + "a-3a", + "ua-1", + "ua-2", +]); + +const kVersionPattern = /^(1\.[4-7]|2\.0)$/; + +// PDF version required by each standard (maximum version limits) +// LaTeX defaults to PDF 2.0 with \DocumentMetadata, but some standards +// have maximum version requirements that are incompatible with 2.0 +// Note: a-1a is intentionally omitted as LaTeX doesn't support it +const kStandardRequiredVersion: Record = { + // PDF/A-1 requires exactly PDF 1.4 (only a-1b supported by LaTeX) + "a-1b": "1.4", + // PDF/A-2 and PDF/A-3 have maximum version of 1.7 + "a-2a": "1.7", + "a-2b": "1.7", + "a-2u": "1.7", + "a-3a": "1.7", + "a-3b": "1.7", + "a-3u": "1.7", + // PDF/A-4, PDF/UA-1, PDF/UA-2 all work with PDF 2.0 (the default) +}; + +function normalizePdfStandardForLatex( + standards: unknown[], +): { version?: string; standards: string[]; needsTagging: boolean } { + let version: string | undefined; + const result: string[] = []; + let needsTagging = false; + + for (const s of standards) { + // Convert to string - YAML may parse versions like 2.0 as integer 2 + let str: string; + if (typeof s === "number") { + // Handle YAML numeric parsing: integer 2 -> "2.0", float 1.4 -> "1.4" + str = Number.isInteger(s) ? `${s}.0` : String(s); + } else if (typeof s === "string") { + str = s; + } else { + continue; + } + // Normalize: lowercase, remove any "pdf" prefix + const normalized = str.toLowerCase().replace(/^pdf[/-]?/, ""); + + if (kVersionPattern.test(normalized)) { + // Use first explicit version (ignore subsequent ones) + if (!version) { + version = normalized; + } + } else if (kLatexSupportedStandards.has(normalized)) { + // LaTeX is case-insensitive, pass through lowercase + result.push(normalized); + // Check if this standard requires tagging + if (kTaggingRequiredStandards.has(normalized)) { + needsTagging = true; + } + // Infer required PDF version from standard (if not explicitly set) + if (!version && kStandardRequiredVersion[normalized]) { + version = kStandardRequiredVersion[normalized]; + } + } else { + warning( + `PDF standard '${s}' is not supported by LaTeX and will be ignored`, + ); + } + } + + return { version, standards: result, needsTagging }; +} diff --git a/src/resources/filters/layout/latex.lua b/src/resources/filters/layout/latex.lua index e5bce66ba45..df5619e8c12 100644 --- a/src/resources/filters/layout/latex.lua +++ b/src/resources/filters/layout/latex.lua @@ -332,6 +332,10 @@ function latexCell(cell, vAlign, endOfRow, endOfTable) -- see if it's a captioned figure if image and #image.caption > 0 then caption = image.caption:clone() + -- preserve caption as alt attribute for PDF accessibility before clearing + if not image.attributes["alt"] then + image.attributes["alt"] = pandoc.utils.stringify(image.caption) + end tclear(image.caption) elseif tbl then caption = pandoc.utils.blocks_to_inlines(tbl.caption.long) @@ -380,6 +384,10 @@ function latexCell(cell, vAlign, endOfRow, endOfTable) if image and #image.caption > 0 then local caption = image.caption:clone() markupLatexCaption(cell, caption) + -- preserve caption as alt attribute for PDF accessibility before clearing + if not image.attributes["alt"] then + image.attributes["alt"] = pandoc.utils.stringify(image.caption) + end tclear(image.caption) content:insert(pandoc.RawBlock("latex", "\\raisebox{-\\height}{")) content:insert(pandoc.Para(image)) @@ -658,9 +666,13 @@ end function latexImageFigure(image) return renderLatexFigure(image, function(figure) - + -- make a copy of the caption and clear it local caption = image.caption:clone() + -- preserve caption as alt attribute for PDF accessibility before clearing + if #image.caption > 0 and not image.attributes["alt"] then + image.attributes["alt"] = pandoc.utils.stringify(image.caption) + end tclear(image.caption) -- get align diff --git a/src/resources/filters/quarto-pre/figures.lua b/src/resources/filters/quarto-pre/figures.lua index 20d61f116e6..9992644b2f9 100644 --- a/src/resources/filters/quarto-pre/figures.lua +++ b/src/resources/filters/quarto-pre/figures.lua @@ -38,6 +38,17 @@ end return float end elseif _quarto.format.isLatexOutput() then + -- propagate fig-alt to Image elements for LaTeX (enables \includegraphics[alt={...}]) + local altText = attribute(float, kFigAlt, nil) + if altText ~= nil then + float.content = _quarto.ast.walk(float.content, { + Image = function(image) + image.attributes["alt"] = altText + return image + end + }) + float.attributes[kFigAlt] = nil + end return forward_pos_and_env(float) end end, diff --git a/src/resources/formats/pdf/pandoc/document-metadata.latex b/src/resources/formats/pdf/pandoc/document-metadata.latex new file mode 100644 index 00000000000..33bab5f93b7 --- /dev/null +++ b/src/resources/formats/pdf/pandoc/document-metadata.latex @@ -0,0 +1,20 @@ +$-- +$-- PDF standard support (PDF/A, PDF/UA, PDF/X) +$-- Requires LuaLaTeX and recent LaTeX (2023+) +$-- +$if(pdfstandard)$ +\DocumentMetadata{ +$if(pdfstandard.version)$ + pdfversion=$pdfstandard.version$, +$endif$ +$if(pdfstandard.standards)$ + pdfstandard={$for(pdfstandard.standards)$$it$$sep$,$endfor$}, +$endif$ +$if(pdfstandard.tagging)$ + tagging=on, +$endif$ +$if(lang)$ + lang=$lang$, +$endif$ + xmp=true} +$endif$ diff --git a/src/resources/formats/pdf/pandoc/hypersetup.latex b/src/resources/formats/pdf/pandoc/hypersetup.latex index ff67655576e..25eff3205e9 100644 --- a/src/resources/formats/pdf/pandoc/hypersetup.latex +++ b/src/resources/formats/pdf/pandoc/hypersetup.latex @@ -6,8 +6,12 @@ $if(author-meta)$ pdfauthor={$author-meta$}, $endif$ $if(lang)$ +$if(pdfstandard)$ +$-- lang is set in DocumentMetadata instead +$else$ pdflang={$lang$}, $endif$ +$endif$ $if(subject)$ pdfsubject={$subject$}, $endif$ diff --git a/src/resources/formats/pdf/pandoc/template.tex b/src/resources/formats/pdf/pandoc/template.tex index a2d09433608..5ce3e586c35 100644 --- a/src/resources/formats/pdf/pandoc/template.tex +++ b/src/resources/formats/pdf/pandoc/template.tex @@ -1,3 +1,4 @@ +$document-metadata.latex()$ % Options for packages loaded elsewhere $passoptions.latex()$ % diff --git a/src/resources/schema/document-pdfa.yml b/src/resources/schema/document-pdfa.yml index 1faed1f95fb..93fac92ac52 100644 --- a/src/resources/schema/document-pdfa.yml +++ b/src/resources/schema/document-pdfa.yml @@ -48,3 +48,64 @@ the colors, for example `ISO coated v2 300\letterpercent\space (ECI)` If left unspecified, `sRGB IEC61966-2.1` is used as default. + +- name: pdf-standard + schema: + maybeArrayOf: + enum: + # PDF versions + - "1.4" + - "1.5" + - "1.6" + - "1.7" + - "2.0" + # PDF/A standards (supported by both Typst and LaTeX) + - a-1b + - a-2a + - a-2b + - a-2u + - a-3a + - a-3b + - a-3u + - a-4 + - a-4f + # PDF/A standards (Typst only) + - a-1a + - a-4e + # PDF/UA standards + - ua-1 + - ua-2 + # PDF/X standards (LaTeX only) + - x-4 + - x-4p + - x-5g + - x-5n + - x-5pg + - x-6 + - x-6n + - x-6p + tags: + formats: [$pdf-all, typst] + description: + short: PDF conformance standard (e.g., a-2b, ua-1, 1.7) + long: | + Specifies PDF conformance standards and/or version for the output. + + Accepts a single value or array of values: + + **PDF versions** (both Typst and LaTeX): + `1.4`, `1.5`, `1.6`, `1.7`, `2.0` + + **PDF/A standards** (both engines): + `a-1b`, `a-2a`, `a-2b`, `a-2u`, `a-3a`, `a-3b`, `a-3u`, `a-4`, `a-4f` + + **PDF/A standards** (Typst only): + `a-1a`, `a-4e` + + **PDF/UA standards**: + `ua-1` (both), `ua-2` (LaTeX only) + + **PDF/X standards** (LaTeX only): + `x-4`, `x-4p`, `x-5g`, `x-5n`, `x-5pg`, `x-6`, `x-6n`, `x-6p` + + Example: `pdf-standard: [a-2b, ua-1]` for accessible archival PDF. diff --git a/src/tools/impl/verapdf.ts b/src/tools/impl/verapdf.ts new file mode 100644 index 00000000000..cd265ad576e --- /dev/null +++ b/src/tools/impl/verapdf.ts @@ -0,0 +1,282 @@ +/* + * verapdf.ts + * + * Copyright (C) 2020-2022 Posit Software, PBC + */ + +import { existsSync, safeRemoveSync } from "../../deno_ral/fs.ts"; +import { basename, join } from "../../deno_ral/path.ts"; + +import { unzip } from "../../core/zip.ts"; +import { execProcess } from "../../core/process.ts"; +import { quartoDataDir } from "../../core/appdirs.ts"; + +import { + InstallableTool, + InstallContext, + kUpdatePath, + PackageInfo, + RemotePackageInfo, +} from "../types.ts"; +import { createToolSymlink, removeToolSymlink } from "../tools.ts"; +import { isWindows } from "../../deno_ral/platform.ts"; + +// veraPDF version API +const kVersionApiUrl = "https://software.verapdf.org/get-latest-version.php"; + +// Supported Java versions for veraPDF +const kSupportedJavaVersions = [8, 11, 17, 21]; + +// The name of the file that we use to store the installed version +const kVersionFileName = "version"; + +export const verapdfInstallable: InstallableTool = { + name: "VeraPDF", + prereqs: [{ + check: async () => { + const javaVersion = await getJavaVersion(); + return javaVersion !== undefined && + kSupportedJavaVersions.includes(javaVersion); + }, + os: ["darwin", "linux", "windows"], + message: + `Java is not installed or version is not supported. veraPDF requires Java 8, 11, 17, or 21.`, + }], + installed, + installDir, + binDir, + installedVersion, + latestRelease, + preparePackage, + install, + afterInstall, + uninstall, +}; + +async function getJavaVersion(): Promise { + try { + const result = await execProcess({ + cmd: "java", + args: ["-version"], + stderr: "piped", + }); + if (!result.success) { + return undefined; + } + // Java outputs version to stderr + // Parse: openjdk version "17.0.1" or java version "1.8.0_301" + const match = result.stderr?.match(/version "(\d+)(?:\.(\d+))?/); + if (match) { + const major = parseInt(match[1]); + // Java 8 reports as "1.8", newer versions report as "11", "17", etc. + return major === 1 ? parseInt(match[2]) : major; + } + } catch { + return undefined; + } + return undefined; +} + +function verapdfInstallDir(): string { + return quartoDataDir("verapdf"); +} + +async function installed(): Promise { + const dir = verapdfInstallDir(); + const verapdfBin = isWindows + ? join(dir, "verapdf.bat") + : join(dir, "verapdf"); + return existsSync(verapdfBin); +} + +async function installDir(): Promise { + if (await installed()) { + return verapdfInstallDir(); + } + return undefined; +} + +async function binDir(): Promise { + if (await installed()) { + return verapdfInstallDir(); + } + return undefined; +} + +async function installedVersion(): Promise { + const dir = verapdfInstallDir(); + const versionFile = join(dir, kVersionFileName); + if (existsSync(versionFile)) { + return await Deno.readTextFile(versionFile); + } + return undefined; +} + +function noteInstalledVersion(version: string): void { + const dir = verapdfInstallDir(); + const versionFile = join(dir, kVersionFileName); + Deno.writeTextFileSync(versionFile, version); +} + +async function latestRelease(): Promise { + const response = await fetch(kVersionApiUrl); + if (!response.ok) { + throw new Error( + `Failed to fetch veraPDF version info: ${response.statusText}`, + ); + } + + const data = await response.json(); + if (!data.success) { + throw new Error("Failed to fetch veraPDF version info from API"); + } + + const greenfield = data.releases.greenfield; + const versionMatch = greenfield.filename.match(/(\d+\.\d+\.\d+)/); + const version = versionMatch ? versionMatch[1] : "unknown"; + const downloadUrl = `https://software.verapdf.org${greenfield.path}`; + + return { + url: downloadUrl, + version, + assets: [{ name: greenfield.filename, url: downloadUrl }], + }; +} + +async function preparePackage(context: InstallContext): Promise { + const pkgInfo = await latestRelease(); + const version = pkgInfo.version; + const asset = pkgInfo.assets[0]; + const filePath = join(context.workingDir, asset.name); + + await context.download(`VeraPDF ${version}`, asset.url, filePath); + return { filePath, version }; +} + +async function install( + pkgInfo: PackageInfo, + context: InstallContext, +): Promise { + const targetDir = verapdfInstallDir(); + + // Extract the downloaded ZIP + await context.withSpinner( + { message: `Extracting ${basename(pkgInfo.filePath)}` }, + async () => { + await unzip(pkgInfo.filePath); + }, + ); + + // Find the installer JAR in the extracted files + // The ZIP extracts to a subdirectory like "verapdf-greenfield-1.28.2/" + const extractedDir = context.workingDir; + let installerJar: string | undefined; + + for await (const entry of Deno.readDir(extractedDir)) { + if (entry.isDirectory && entry.name.startsWith("verapdf-")) { + // Look inside the extracted subdirectory for the JAR + const subDir = join(extractedDir, entry.name); + for await (const subEntry of Deno.readDir(subDir)) { + if (subEntry.isFile && subEntry.name.endsWith(".jar")) { + installerJar = join(subDir, subEntry.name); + break; + } + } + if (installerJar) break; + } else if (entry.isFile && entry.name.endsWith(".jar")) { + // JAR might be at the root level + installerJar = join(extractedDir, entry.name); + break; + } + } + + if (!installerJar) { + context.error( + "Could not find veraPDF installer JAR in the downloaded package", + ); + return Promise.reject(); + } + + // Create auto-install.xml for headless installation + // Panel IDs and pack names must match the IzPack installer configuration + const autoInstallXml = ` + + + + ${targetDir} + + + + + + + + + + + +`; + + const autoInstallPath = join(extractedDir, "auto-install.xml"); + await Deno.writeTextFile(autoInstallPath, autoInstallXml); + + // Run the installer in headless mode + // Pass the auto-install XML path directly to the installer + await context.withSpinner( + { message: "Installing veraPDF" }, + async () => { + const result = await execProcess({ + cmd: "java", + args: ["-jar", installerJar!, autoInstallPath], + stdout: "piped", + stderr: "piped", + }); + + if (!result.success) { + const errorMsg = result.stderr || "Unknown error"; + throw new Error(`veraPDF installation failed: ${errorMsg}`); + } + }, + ); + + // Note the installed version + noteInstalledVersion(pkgInfo.version); +} + +async function afterInstall(context: InstallContext): Promise { + if (context.flags[kUpdatePath]) { + const dir = verapdfInstallDir(); + const verapdfBin = isWindows + ? join(dir, "verapdf.bat") + : join(dir, "verapdf"); + + await context.withSpinner( + { message: "Updating PATH" }, + async () => { + await createToolSymlink(verapdfBin, "verapdf", context); + }, + ); + + // On Windows, a restart may be needed + return isWindows; + } + + return false; +} + +async function uninstall(context: InstallContext): Promise { + // Remove symlinks if they exist + if (context.flags[kUpdatePath]) { + await removeToolSymlink("verapdf"); + } + + await context.withSpinner( + { message: "Removing veraPDF" }, + async () => { + const dir = verapdfInstallDir(); + if (existsSync(dir)) { + safeRemoveSync(dir, { recursive: true }); + } + }, + ); +} diff --git a/src/tools/tools.ts b/src/tools/tools.ts index 01e0422ace0..b8c59d6abed 100644 --- a/src/tools/tools.ts +++ b/src/tools/tools.ts @@ -18,16 +18,21 @@ import { } from "./types.ts"; import { tinyTexInstallable } from "./impl/tinytex.ts"; import { chromiumInstallable } from "./impl/chromium.ts"; +import { verapdfInstallable } from "./impl/verapdf.ts"; import { downloadWithProgress } from "../core/download.ts"; import { Confirm } from "cliffy/prompt/mod.ts"; import { isWSL } from "../core/platform.ts"; -import { safeRemoveSync } from "../deno_ral/fs.ts"; +import { ensureDirSync, existsSync, safeRemoveSync } from "../deno_ral/fs.ts"; +import { join } from "../deno_ral/path.ts"; +import { expandPath, suggestUserBinPaths } from "../core/path.ts"; +import { isWindows } from "../deno_ral/platform.ts"; // The tools that are available to install const kInstallableTools: { [key: string]: InstallableTool } = { tinytex: tinyTexInstallable, // temporarily disabled until deno 1.28.* gets puppeteer support chromium: chromiumInstallable, + verapdf: verapdfInstallable, }; export async function allTools(): Promise<{ @@ -120,7 +125,7 @@ export async function installTool(name: string, updatePath?: boolean) { if (alreadyInstalled) { // Already installed, do nothing context.error(`Install canceled - ${name} is already installed.`); - return Promise.reject(); + Deno.exit(1); } else { // Prereqs for this platform const platformPrereqs = tool.prereqs.filter((prereq) => @@ -132,7 +137,7 @@ export async function installTool(name: string, updatePath?: boolean) { const met = await prereq.check(context); if (!met) { context.error(prereq.message); - return Promise.reject(); + Deno.exit(1); } } @@ -304,7 +309,7 @@ const installContext = ( installMessaging.error( error.message, ); - return Promise.reject(); + Deno.exit(1); } }, workingDir, @@ -315,3 +320,76 @@ const installContext = ( }, }; }; + +// Shared utility functions for --update-path functionality + +/** + * Creates a symlink for a tool binary in a user bin directory. + * Returns true if successful, false otherwise. + */ +export async function createToolSymlink( + binaryPath: string, + symlinkName: string, + context: InstallContext, +): Promise { + if (isWindows) { + context.info( + `Add the tool's directory to your PATH to use ${symlinkName} from anywhere.`, + ); + return false; + } + + const binPaths = suggestUserBinPaths(); + if (binPaths.length === 0) { + context.info( + `No suitable bin directory found in PATH. Add the tool's directory to your PATH manually.`, + ); + return false; + } + + for (const binPath of binPaths) { + const expandedBinPath = expandPath(binPath); + ensureDirSync(expandedBinPath); + const symlinkPath = join(expandedBinPath, symlinkName); + + try { + // Remove existing symlink if present + if (existsSync(symlinkPath)) { + await Deno.remove(symlinkPath); + } + // Create new symlink + await Deno.symlink(binaryPath, symlinkPath); + return true; + } catch { + // Try next path + continue; + } + } + + context.info( + `Could not create symlink. Add the tool's directory to your PATH manually.`, + ); + return false; +} + +/** + * Removes a tool's symlink from user bin directories. + */ +export async function removeToolSymlink(symlinkName: string): Promise { + if (isWindows) { + return; + } + + const binPaths = suggestUserBinPaths(); + for (const binPath of binPaths) { + const symlinkPath = join(expandPath(binPath), symlinkName); + try { + const stat = await Deno.lstat(symlinkPath); + if (stat.isSymlink) { + await Deno.remove(symlinkPath); + } + } catch { + // Symlink doesn't exist, continue + } + } +} diff --git a/tests/docs/smoke-all/pdf-standard/.gitignore b/tests/docs/smoke-all/pdf-standard/.gitignore new file mode 100644 index 00000000000..5e7556938fc --- /dev/null +++ b/tests/docs/smoke-all/pdf-standard/.gitignore @@ -0,0 +1,5 @@ +# Generated test outputs (from keep-tex, keep-typ options) +*.typ +*.tex +*.pdf +*-luamml-mathml.html diff --git a/tests/docs/smoke-all/pdf-standard/latex-combined.qmd b/tests/docs/smoke-all/pdf-standard/latex-combined.qmd new file mode 100644 index 00000000000..9a7f139410e --- /dev/null +++ b/tests/docs/smoke-all/pdf-standard/latex-combined.qmd @@ -0,0 +1,17 @@ +--- +title: "LaTeX version + standards combined" +format: pdf +pdf-standard: ["1.7", a-2b, ua-1] +keep-tex: true +_quarto: + tests: + pdf: + noErrors: default + ensureLatexFileRegexMatches: + - ['\\DocumentMetadata\{', 'pdfversion=1\.7', 'pdfstandard=\{a-2b,ua-1\}', 'tagging=on'] + - [] +--- + +# Test Document + +This tests PDF 1.7 with PDF/A-2b + PDF/UA-1. diff --git a/tests/docs/smoke-all/pdf-standard/latex-multi-standard.qmd b/tests/docs/smoke-all/pdf-standard/latex-multi-standard.qmd new file mode 100644 index 00000000000..ad76943c42d --- /dev/null +++ b/tests/docs/smoke-all/pdf-standard/latex-multi-standard.qmd @@ -0,0 +1,17 @@ +--- +title: "LaTeX multiple PDF standards" +format: pdf +pdf-standard: [a-2b, ua-1] +keep-tex: true +_quarto: + tests: + pdf: + noErrors: default + ensureLatexFileRegexMatches: + - ['\\DocumentMetadata\{', 'pdfstandard=\{a-2b,ua-1\}', 'tagging=on'] + - [] +--- + +# Test Document + +This tests combined PDF/A-2b + PDF/UA-1 output. diff --git a/tests/docs/smoke-all/pdf-standard/latex-pdfa-accessible.qmd b/tests/docs/smoke-all/pdf-standard/latex-pdfa-accessible.qmd new file mode 100644 index 00000000000..cc891b98df3 --- /dev/null +++ b/tests/docs/smoke-all/pdf-standard/latex-pdfa-accessible.qmd @@ -0,0 +1,18 @@ +--- +title: "LaTeX PDF/A-2a standard (accessible)" +format: pdf +pdf-standard: a-2a +keep-tex: true +_quarto: + tests: + pdf: + noErrors: default + ensureLatexFileRegexMatches: + # a-2a is "accessible" level - REQUIRES tagging + - ['\\DocumentMetadata\{', 'pdfstandard=\{a-2a\}', 'tagging=on'] + - [] +--- + +# Test Document + +This tests PDF/A-2a output with LaTeX. The "a" (accessible) level requires tagging. diff --git a/tests/docs/smoke-all/pdf-standard/latex-pdfa1b.qmd b/tests/docs/smoke-all/pdf-standard/latex-pdfa1b.qmd new file mode 100644 index 00000000000..0390105bff4 --- /dev/null +++ b/tests/docs/smoke-all/pdf-standard/latex-pdfa1b.qmd @@ -0,0 +1,24 @@ +--- +title: "PDF/A-1b compliance test" +lang: en +pdf-standard: a-1b +keep-tex: true +_quarto: + tests: + pdf: + # PDF/A-1b requires PDF 1.4 - this is automatically set for LaTeX + noErrors: default + ensureLatexFileRegexMatches: + - ['\\DocumentMetadata\{', 'pdfversion=1\.4', 'pdfstandard=\{a-1b\}'] + - [] + typst: + # Typst automatically uses PDF 1.4 for PDF/A-1b + noErrors: default +--- + +# PDF/A-1b Test + +PDF/A-1b is based on ISO 19005-1 and requires PDF 1.4. + +Both LaTeX and Typst automatically use PDF 1.4 when `pdf-standard: a-1b` +is specified, since PDF/A-1 is not compatible with higher PDF versions. diff --git a/tests/docs/smoke-all/pdf-standard/latex-pdfa3b.qmd b/tests/docs/smoke-all/pdf-standard/latex-pdfa3b.qmd new file mode 100644 index 00000000000..98a93e3793f --- /dev/null +++ b/tests/docs/smoke-all/pdf-standard/latex-pdfa3b.qmd @@ -0,0 +1,24 @@ +--- +title: "PDF/A-3b compliance test" +lang: en +pdf-standard: a-3b +keep-tex: true +keep-typ: true +_quarto: + tests: + pdf: + # PDF/A-3b requires PDF 1.7 - this is automatically set for LaTeX + noErrors: default + ensureLatexFileRegexMatches: + - ['\\DocumentMetadata\{', 'pdfversion=1\.7', 'pdfstandard=\{a-3b\}'] + - [] + typst: + noErrors: default +--- + +# PDF/A-3b Test + +PDF/A-3b is based on ISO 19005-3 which extends PDF/A-2 with embedded file support. + +Like PDF/A-2, PDF/A-3 has a maximum PDF version requirement of 1.7. +Both LaTeX and Typst automatically set PDF version 1.7 when `pdf-standard: a-3b` is specified. diff --git a/tests/docs/smoke-all/pdf-standard/latex-pdfversion.qmd b/tests/docs/smoke-all/pdf-standard/latex-pdfversion.qmd new file mode 100644 index 00000000000..4e0ba58d8fc --- /dev/null +++ b/tests/docs/smoke-all/pdf-standard/latex-pdfversion.qmd @@ -0,0 +1,18 @@ +--- +title: "LaTeX PDF version" +format: pdf +pdf-standard: "1.7" +keep-tex: true +_quarto: + tests: + pdf: + noErrors: default + ensureLatexFileRegexMatches: + # Version-only should NOT enable tagging (tagging is independent of version) + - ['\\DocumentMetadata\{', 'pdfversion=1\.7'] + - ['tagging=on'] +--- + +# Test Document + +This tests explicit PDF version 1.7 without any standard requiring tagging. diff --git a/tests/docs/smoke-all/pdf-standard/latex-unsupported-warning.qmd b/tests/docs/smoke-all/pdf-standard/latex-unsupported-warning.qmd new file mode 100644 index 00000000000..3e24f2650dc --- /dev/null +++ b/tests/docs/smoke-all/pdf-standard/latex-unsupported-warning.qmd @@ -0,0 +1,17 @@ +--- +title: "LaTeX unsupported standard warning" +format: pdf +pdf-standard: a-1a +keep-tex: true +_quarto: + tests: + pdf: + noErrors: default + printsMessage: + level: WARN + regex: "PDF standard 'a-1a' is not supported by LaTeX" +--- + +# Test Document + +This tests that PDF/A-1a (Typst-only) produces a warning with LaTeX. diff --git a/tests/docs/smoke-all/pdf-standard/pdfa-2b.qmd b/tests/docs/smoke-all/pdf-standard/pdfa-2b.qmd new file mode 100644 index 00000000000..507403d89bf --- /dev/null +++ b/tests/docs/smoke-all/pdf-standard/pdfa-2b.qmd @@ -0,0 +1,28 @@ +--- +title: "PDF/A-2b standard" +lang: en +pdf-standard: a-2b +keep-tex: true +keep-typ: true +_quarto: + tests: + run: + # verapdf validation not available on Windows CI + not_os: windows + pdf: + noErrors: default + ensureLatexFileRegexMatches: + # a-2b is "basic" level - does NOT require tagging + # PDF/A-2 requires maximum PDF version 1.7 + - ['\\DocumentMetadata\{', 'pdfversion=1\.7', 'pdfstandard=\{a-2b\}'] + - ['tagging=on'] + typst: + noErrors: default +--- + +# Test Document + +This tests PDF/A-2b output with both LaTeX and Typst. + +PDF/A-2 is based on ISO 32000-1 (PDF 1.7) and has a maximum PDF version of 1.7. +Both LaTeX and Typst automatically use PDF 1.7 when `pdf-standard: a-2b` is specified. diff --git a/tests/docs/smoke-all/pdf-standard/pdfversion-numeric.qmd b/tests/docs/smoke-all/pdf-standard/pdfversion-numeric.qmd new file mode 100644 index 00000000000..8226dc51f46 --- /dev/null +++ b/tests/docs/smoke-all/pdf-standard/pdfversion-numeric.qmd @@ -0,0 +1,24 @@ +--- +title: "PDF version (numeric YAML)" +lang: en +pdf-standard: 2.0 +keep-tex: true +keep-typ: true +_quarto: + tests: + pdf: + # Test that YAML-parsed numeric version (2.0 -> 2) is handled correctly + noErrors: default + ensureLatexFileRegexMatches: + - ['\\DocumentMetadata\{', 'pdfversion=2\.0'] + - [] + typst: + # Test that YAML-parsed numeric version (2.0 -> 2) is handled correctly + # pdf-version is passed to typst CLI as --pdf-standard, not in .typ file + noErrors: default +--- + +# Test Document + +This tests that numeric PDF versions in YAML (like `2.0` which YAML parses as integer `2`) +are correctly handled and converted to the proper version string for both LaTeX and Typst. diff --git a/tests/docs/smoke-all/pdf-standard/test-image.png b/tests/docs/smoke-all/pdf-standard/test-image.png new file mode 100644 index 0000000000000000000000000000000000000000..bcbbad08b78a5ed2cc7c6bc65ed0ecc8aa1fe39b GIT binary patch literal 139465 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%0Aw(F&#$8&sw6amaGpox?x| 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 z zi29+0gY~R;thJv0oJKjo^dxiH5s|e(qmqCf6bc6Nys%7T!3|U_f$ln&qPy8-a*(+8 z5FlMjc}rjAJAl_e_7y()!?^i|FVab)P$uc@W8d_y@Bhh23gJ=;A!5;yfp&QEB4db( zoRAh-SjEYzc&orES1%Q!!>~KgGrQ^zV?L4?mTC9&)j2n_AltK zGxt1+n4z*MXmVZ+J^8?J7E>3^fHbzU?##{Ghvxc=hvx9OFq_;l%XKAR2lmz2q@x{~ zc2d&-QjkM&CEe`NVr7n(8&fqNUB=XIQ{$-MjJJ_Vh!OW?_9I&_gwJS6A0~#(nm<=C$tke*fC1 zs=Etl?5V2QOUhGyYM;IL+3Wwm{~O)`ifO@pObPD81f2!t%QNGx%h1Jmcjy1wT0dn0 zUKGxEB}0_Hu4V4E1}rH-i#@L@v>z~R(xAvx0;}qX1fLQpuj#;s8nj^(AS=ylA#UYH zQS6E1$j}2=Sp-}>mIH8BW_wFEuU}Wjaxfy~4K?8`1?UM;v#OM@m|%dBZP(Oe!!T|Vz=jhhgZbp#S5!leLRZu@o0<1v$Q4K-qj6a4b9n<{6G6$l8xETY*0iA}J zv*%L!^tK#s=*0r>3+YH*AZL6CxlLIIVv;InZXuBhxazWuIAh+*-DX#w2P$K&x%oZY z`z%dA><6uX4i7x&R)GEuVINd7pf=;Zq7}Bg-4g-yiofp%p6UaqiY#FOPG-4cJ%pJu zbdLMmV=DOI4jPU?&0}7ZZe=K;A!N-Qc%wm&`au&vABOFvUn#QeRd7RgyvBtOTvU== zVQ8=%(v|xMFzG@%@@?5~X!W3aMDdk~^GR8^4rYP(G5|1WXb)6ew!dy?>+BUKmul^$ z6=lU!DhWl~^izZmSC@Y>yWCTS6qINZ?YST;%X)C;s8n&Z}C{I1utMR^?Se)az6iNZT zXXP59*g$)MChn~1~`pbVVj?8E+fD#PZOANm}-xjtPEPiax-V#xLv&eSwxqD(xiK+wCRWf`D zJXJQLJkg}00#px!RJ4!Kwvu_iVhxD083JBD;!4c#K7HTgUg+lF@uE-8X)1^h$hJ+( zxwX4;u+H=ges85bH&pF_a47hFkA`E4ha(Y%*G0IgRO_fH>p`#~J={_W-P52S@$Xe| z&}|5V4RbxntlL&DEfih!C4f+jX|%I0M1^QLdPz~1|CJAuznRWA9;lByh4W|^$ZBiH zXz5E^LfkPOTV`tsA7r^maOz6O#Fz!%OYMRVUCw1vUS#oNe`o6_Qof-p`wj~BwGdA) zl_iRGIVnjl~wq!Wko^l!9hqN8)IRS#~-25U1-8I_SJWfHYsi>vUZ_ufJElVK=4CUS; z8Y9TC!R!$>TB&3zb!Bsd_XDIvCCHA1T#zMnm7$M;7v_?)(_IqX2iX->N{#u0w`^~o z8H)qML(EOX(4%qn(07s;NAhP5ifVuS;4<-M7`*SMXFcb)%(=NQKkxb9_tS3Jz3t}D z{4MR@zf3FLHnp2gnhbZ|UY6+(;d8RBHe@l$(i}mhxPC+6dW0S-XK@n_5a{)aW&t0X zs9bP=;mF|my8L$qdaHQJRq`2|raBNI$tk9lK$AG=tq;iOz^8Kn+&O;B59d|2zewY+ z;vRPv_EBf`3MF#nc)csHf8t+%qS<7z3Fg&l(l-D$dV0w*T1btbM7|7tI zjis!pps#=m2!@#GqM-*3?GW^d6ZEG^2|Ah59&r@Kn1Anb#E*#+ejgj58@Ar>H5cB! zyK(BnUZXkY!-#*i@+f~oC+k$@K_AQ0#02K6CRd{_9F`r6hJ1jax2znXXMy+PY)b3r zm{OR|7FA(tWfBj!&tgFJvhi+je=xTs5G(1?fsQEEWLamXn*5yVn{sw&)jGTAmO8eS zf`He+b_X4BLs!OvC}jb6fm5;c{e*(6i|UoUCp>R$&w?yhmtlrt@Te94Y%7LD1SE-z<%XKjLT~;)BK?u-vq~5)zf}RrH5?n$>}rnP#`}T zEVkQCT3K%GWlj$=@R!R64*te-m)8DM5cqwFv|yNYVBZ>b=bDNMn7JPpPdl^bKUK;J z8rdwQAR#vy=dl`^!g+VHOYNY=--|>uR@zQ^F7CmGXf~+#i$m71Ls=(suP~GYc?FV* zRgZ#ZTkMCh`Ua5H2F2s1881u#{4ore+z2VA_>7H2==74Vg$B$|@62 zvY{O6KEG!SBZr)sTZ4YP5m&GEnysIT(k%BHRcSl!G2S>|;)Clb-{SRl<(!{XC9nE&yt{ddqW;dc9vHTpeOzUs6!S=&+k1Fbf&O_;1$mVlh<(~#U*>9oUvD0aH{#}a$6)GRN*dUtS z^ZCD^+s_`A-qf;J-CqD^@T^CjYK}ciG@W#4v0RY3ub> zWnYg0a9-}lNfw{VhNH+#^(8N-6NY2GnD@y&T1~5eFqIAV82-3Egys`zr%2U6+AQ#1 zOgIJvUC!{Tc(_|7lkrNHB>y>2;?>sDni8F^+W~NW5V#>iF31jLSyOyTG8%<8P(uP( zr3fTzlE`!${#nYQS51Dw5-V!?zH-_>t$n`E*@~+GtLQ!o0f9}R+6CwAbrd2(;Yg8% zG`lUj`U%gVJO1|{^84)wzrKJDDhF|ay&*GoeFZD4g=$p44IA2#_ic!Xb)qa=0Dr^# zMaDK7i=DR@bObc-x)yn@hA3b8-6PwLxz*QI5O94M2OiqPuwSOm&fjW>LI#+5-Dl^D z<%*>yHTZz+be^Vqt(GUqgX5n)PIg(lTL9))*>Zmie1;|jaFh*^ZMG;%w)yk2mF7UL zqil+>O`#6yJeKSh)bOf^WJm{1TiZeQyenF{FxRw1;2m;DV;XPV_1&H2gL|UvcF^GG ziDaGRdAfPSQ@-mzp1AY&H~-~(-$`S>hox_cFP@HaovR@9lC|mZ7lT~fA(Elz&7X_q=9Cy2Ei7G0os|P}P)M&@%LG1F zWQyESWw476TwQM-5tOY42aw$b8tZ@MxDIE;g`pYdukqSP7Tnug7}eLwgh@d(8!caE z8L4E!${X==i@%p#;8n1q%HZ|ZC7(KC>d+Fqk(Bx%a_rc%1A;=&76 zu~G#}S=^A>ixQEkg9S_2+^<>?Wl^I9RM3<@TCFKMT{}}Mus(GiHmG(Bu0j81&9b6u zFH4`AU`|ze%2Ji^5tF=|aSobMr0}|$fi>hS z(QhyWp_}1aLJP*>4f`kvj_aC&6+%EA+%qVWVHN;1iHO*XZZeEG`Elb-ZEk5zFQu2H zNwt)W6ro2%(i@$(JnMU3{M~om`K6bA;pWeZ{;#DQwY|NroH>Ntqds#mB1Peg%G$0+ z;eJuqA(M3dx;+JcF6J7QGW^US5VtgTS1)fLG{ASGmskxbuf^Aqz4}T) z3-~9fSn7_TF{sv0Krh$w910pu5zeu^Ci$Gfbmmr09en&VpKW-?7DQSux2vk#QXO95 z&itBW|8hT+2u*qCC;nJIGttb=V@0Zw?AH@=0s@?6@F57XbAC(~aiyViCTThnq)Sby zyCEtUHCs^RAxqU@g&?^S#4lucE%w$=-caW0m#6O;vjiy7kyL02 zE$-j{rf0qI2cG}6JHI-wm&)cnli@5M!mgv-qmxY59oD780atp>M(r&Kwj%#GEa1gj z2xO706#I8zo;6FCOx+8+> zx*HB3WZt}mx$UuO#MBlcYwi%Sw3x-~h zOawPSh0=a&PF!jASkZfpT6GLlSn2&0N=^|$a7tTM{P|LXAo_h;UFeo#Af-?Y(?v9O zr+~-`L|BCCndJgwQ+{bWZ}@?<9?)i}d{69V6t8$Huv66;GvG}j=lz^{nM$<`ur`Ai zDD+h!35h;2oQoakKR7;x?e2~nhM)I>@LtCZzSNp)f2=CvEr`ZE602E%nA!~w={@j0 zZ!Yeq_R8VCUlCa7Xt?!sh@HbN7=k(_2U@<-f@O6QR~U+7T8Uwmt|SRdP>h{Q#O$+4 z!htza?F6_@z%Osylh%!nK^iKOngxd#Y4Q3%dj~GVWGj1m2o>eStxmjk&yRcaD{nxb zReJx0t|UFhC{-M)Z+qN#JnNlLzUec+c9$ODsJ zrG@M*v^Xr^6agX=LpvNxoc#)`lKny1(lwm;e1RYPr&$)g z%_vKcBme)BBxH{=e4!w$6#Zazg=d~Rnkh?2;RTA!l;s~avD+&mrx+%AZ@sT1Y6e&CDSlm;BjEtLW08YNo9fc;#y5*+Q|Pdm~FnNoY+aPJ}V}*idreb z+W{mIh>2`0NdVeiumZyC=93}y*YA3Hu(0+!c4O|;UY3Xd%T*PEY_>hW^c&B7!4H4` z`pFYl4*GY1&IlJ_RYk+6v z`KfHUn`5ZPYwG1#ESU86w@y>Evq3(}Fa%5hv`vL^EQOs_iNLt%FzQON3T2|#UZ6~9 znTeE-g^1Z0${BUq%dJ7`T0KM%usK>9x>3uAX#&x)YQHt*ZlHQ?N?pIK*-=WHLFlPd z8*WmI5}Q&K&3GZ>wRKmCLWuF9=_n~b{#pvXHIShPj3Hg#C@}1FIM8|=06gFC@#g*u z$9CVx@8jb|S)AT?@Q6G&+9r4paWqx|MZ5f_#wcUstrIlaxc32of00>C#s@JxL*LxR z;0Wb94&-_;iu>cj5^1!<0ZtQ97+E`lis1tpJ$PO_82(8AHtP%Q5L&&ZreI}gTNs)x z<-aZiHyp@g=`Vvm%ugoEuz&p4mH7it_<8r>>aUc0BJ`CaCDehq(v8h)ZoKJ@PkZ+F z{g>WO&)wKKO9sC$1jL|a2;LZ_zHO-kUDg?A<2FoAp~#mef(5oP4CF2EHWz6B71wcv zxI|!gI$Rw>Qv}2ti2va5_QEE`5f*?Fk5vY%S`aeXp@-y~qrjpWSQSJ*cC77I+`k z%l7;UZ-X(|HM}T(mW%a$l?5v7F4s2+tsJ^h%mJhRu3!UOi%T5HblF_!~5*r5~iU( zW??g#x`LLG@^a%)D+3V-oSP13Qm}FH8`9oDaDZwSvRB>aY{m)2THBM1ER+T92f+qs z;I}xQcPnQnsi|AXIm`GQ2Y}C_KkaemHn+6G8z$5;&Tb8*FI*+@s7Sy~6Mn0To|mMo^WtM)HIY_9oxAZRvSJ ze-{#@Xl*!dSCq(rE`dCwh|N_ZCBtjWmB3gDaS`0t4|n|0kdp{A{B zFgSJNMJ8-J?jL{0cfH^hJH4G3ef+Q9M*~hUa`c}0H9cM%ViSdABGvYsO7 ze6}yc!X{_9ODl&dY;|S*czj@^ou*sL{THZ3$FL>HMuUNT51B2V5*TL@gEDQ&V#N#q zCY+|ye9&sN4>D+XZh=zqX3OR95h+ztkWLY*w_U+hkNVr~pgI2@({H|zA8-eKn_QP% z;595;8?T?Nq9|I`E$5XosDeMN#sL!4O#{G6JxnNVx-B z%`T-}GNQL->B^K+ve~NG6ZkOdtVw7VrhI~mEF*03pC$)c&Nh7Sl;`?qIFl(Y$N3*= zGI_UYSZ5ZNS0|#N#+!ZA+foAEQUZINy);NXs_KE>r2$aaL~8(_0jzc&{7;csB?WW) z=|VIp+_Q8tczdZ^Plx@v?kd`_%|SXIY%6LjG?U?xCLU)>Fuk%$rA}sg$e1a&B00#j z5-M*^j+3AshjOp8IF&#KatyNXTqv{3gmO695Slj393g04CL`*fysgt*yY`pb%ZFZH z73Y3e9LVJ~>*cGnvi90%z34~&x29WHedez}NSkL)Q6>WS8hMto{>cr+T0<~&uqO~q zE2W|qHs=X0Bdw(+vNWaj47xOC7tj~RA&=@y@ZZf2_1D)GEYq`OV62PAu?qIK=}YFS znF`h@njzC_kw5mi!`IM>&wY}{gI#KRil89^P&gO?ue3eUK#sEl8pZqVG``6;8+WKV z#w_q&bXOKf<@TA=5UqZNt6Td`lsLS=TwquYUJ$-bqwP)F;YHbMv?=A_i(V5J7fBY& z#Uhv4$Uz$Wj!3x&NRWf_Ue{|gNVCTOYLdMGz>gAr3LR6xF-;a*sVSjmAQ}XUG}UOR z`@2fftQKM6vJBHSz=p7Bft>_UTo_LL@14a}@>@&fx0k5Bu%Cl%NUb)kxSNpV8*#?; zdzx0hgAbV#rsbBLl?)U9T@YLa5n(8GExpsB?ag>ETdK-S4Tqz=@3wCL2$dV1Z`oQ% z0%Bf#os3upt$)H5%$qA@tF9$-mSv`3CsGkurjR8Nh>+z1DS}`r5{;!PL>V9(#F?72 z;{tFkw;=~8S{BHVZ6gpBF<3N-3L3=bv!Mh*^zeZa5IcFTq;#}Sz2mpMGH5UScg`el znPR=gVx6pMVTAyDV)f9KFL=QZ{gXHPVe6+p`!|0^{oanW2W(C_Qhu$_4P=%9l!MEe zu&Jr_>NY~^tR0g6D~4|_G?>wjt1<3LJcf9X^77+l>V|<3kv2}=!)p~SDVNvygadUT zj@21(&m|{1K*AZNBsJnQhv6~@)&^HursvaO>okS)^XG(}N-=tuiooZ?&T`rmClLjC z_7dJ_@2K_^;b(#OqPo^cd?GJhqZfmX7x69pT$v}gxTfiqmN{>_`I9S6pC5B@9YO#a zfrqo%(bf)u@`Jt`aket(k7@q#PbTsm%7$Y;{f$~|Mi-G2p#dX!nzcZVru?6z{LEF4 zN^qAF5Y$)TeS!V0D%B%It3U*=btTG!p991#112)fYL^32SwbniPilACbl}i6w79ZL zouxI-aKo|Zhi~O_@PBf^IK{7XTf!LTXM4S-LSI_f zRDKXjR>kfy+UOns*1_{t^>usKn(Dt>VnzymTrz5BV~CY294ZbSkF&juG zG~T+qlMFUq)mppub<-Au5-rz+-AH>ZMLHg|o3DQQ3;*Hg+w*h3`NdCvyfN55BVzY@ z8i{^1GI$UsJijB=AkLJ={4%Xwc`dmPuVdhG;S}xq0!hUD0~Beaa44`WCF*3^qGLVW z-k@Z-#fN*7l8OVmU5P8R_UWK9+0%;uomT01~z?!1L2!vWb1t~?!1 zVvy-*AYml(`84L1DH`wMzJEX8ha>#+cg_OuMR?`F4>r4|>)Jn3rsJKcKj7dxAx*4M ztnbV!{r?Tyi{DussHnHyBd;2XP)X7o$Vt4pahkeUTtf?2KT#;5B3e`9d(GO8he|a- z6IPf&ft+({W1@ec7&cSbkbvqnMc1{&b)fc6tdyLi5HIk*Orv-bf%B=HEsz20YA}M5 z4!zsOwKbaK%(uO;d@n!ut2hJsh*C(a_IU2Cb_WN6hF+}<4bN*GTsp0U3y(}NNSy05 zC=7gh{!jn*Bl0@Xo&CW7^J)&Bq2ReOFaza#JQ~pa!UEr?NFA5}Vevh-grri#2gNFi z4_{A7gDP8_s`lIiJTa&%vzUV>S6du-&A=5)o~mA7uoTiAPlz%Qr9l9Td#9;)>h@QJ zO9$Un7TF$mTUt_;T~mLnJ>pNJ(R}lbH$D6FZnOKA+rN18lhWZfXU;oH)Thy^jZZxh z{xA45UEFsCHJcq#1Vc48)yx$eAsxKGkYnsJFC?GS3{)mz~&7@!4o?8@j zMv>;4Zsxzi3C2sSS>U}Gi%{vWrdn0(h@%9btPqjLNt#B(Pp9$Z#ctSqUu8K@jqD~3 zc6kk>*rOeX!_BSI6c;bb>~0jLzm)S`+oT!q!W^qv%H1~4rg zs>1Suesi8G`yS{XR0$|A;xeL_g_O=V7;$21ITT86Q5X_zOC0bV1WS-A1epSDNCe*o zAJo27SXe5ftrM+D@9ay%u>1Q;tVrErv z%n3|ya@ByjH4kh+<-T^D~koLvyf&2#WLrGiJq_W zdYWQ+6>CWPz_odw!rz`7!YLshWmP?GMIcbCjWVSUD;6ET4b5PPR)TU_D6l-WI$i#~ z!VhwQ_)9R8Fg33(N3#0;j#H7-9NbL_2ZQJljqe(=%zpxr8xEx+i8$HqQ35uXsY$QX z5vHOcif|wgKn;w88wbaU_^e@wW{TxfDQ$y-5=sYSseUZ0!H=o9GK<8e*dSl#2vEdB z4;X_&T?BM;X+Z(DH5?5j0CC2ujnCfmYUe=X?Ye1=(FUMeF#kgB6v5Kk=G|9Zecc;4 zeSGhU25a*Ajq zv>p6_TB~cce)3LrIPz1#K)~kL$FNcP%2f&?iJzz1ksB;IBpV#0(P~Jz((`;zW!Tnv zC?5<4gMdc;U4BoKuHUj>%g^yyQo3=oz62>hp} z?Yx!i`5!jz;OxTE>g~2`e`I-S>1~rZy1@stt;ATw7KuMVCJ50^b3^{Bw&T5D z<)aV`A6PqZ_!YdK-nMbNr6(LzE6%R%Jd`Zn@mpeZj{&nO%)Nn#zUP&aXh$ZB$`4sA zhKGQ9$;<*R6|174$$Q1|BujN09n!^NMA;k(^b%3BR>cDwv{cVVzUvBIeR6i2tI zY(O&Lv4Ss_y<^J&8+i0Qj-a9OD%%Txoj1(!S>U}mckcPqZYKu9FrS*K{QMVKIQ!AnsRi56@jVm6I8ai;V6 zX_8~qxZleu;GzU>1uiv=m?m5IP*dBX)PpFIOOLb>0b-X?mXol(#0OoUHh0I=+Z~A$ zFM`u_DP-B0Mx&l&t+0I;dmzXlLdU_-VaF zy;LTlTi{gq*`f|a5HxaHQgLNbkA|mj|K(tQ|3_WN`-}78WmF>+_S#|fCGauBc<0L6 zzAOkDuj%bq zXc=P`0bFlkKtU~3PTH7JXj3*OCqn!?<}p8CU<&2B5_wdU+KY$j-aC$p;cJowN*)u! zKE6RlRuh{fJGLkrM`B!1TKVtrgMM%pcrTImgC+san6?aE$Ffo_@JlF@1-x*0(fy=M zv}+v&;h~kvmL#K8>FMHYrIfYuiZg-2lptHyK{-p56dz7&g&|gs6opVSReM6T7{C>R zWJ9e+Cg=#f172Wf20P?TdSqs6G}%5&BZ&Fv;N1teIkx+I+WGJ)B;AsMj4$ciQ`W2{ zZ1k%Su29D;1gM|w9GAYU(^!1;rUYg2sk9M4uK?-5+~#a9;Db4=T}m{eZe!Ap9=^ln zc@z(7RXm6iwfQL$$?OoA&~|`$eF5Fzatt{~AsB!KX^MiF!|TA7VJaYKIG6z;tbp0# z3@>@+qI@7wwG(|lK! z75^hiBiC`9@0*N=zmY`o5gD3^J_rd5&F4c8EikxD2woinMoqc0$o>Jz0~HAzmO(Bl zQo)fUO9v?fj>gziQqhsZ8^bCKly(d2A2@Xp=GSQDs%z+;FWfAoCDH!n&!;RbX(YH@ z0ibW5;`f&75ZcuI*=t&8g$=E`j1|!@E3?b{I+{`fKmkO*9a!8D&6QR8T79bC!i%DS z(*yckX)d~|7@|lk0RxjgpEEV|K|iV>MG-}|3|N?GEnra>N}qKqb_1bwX@BITl*B}c zU00HQcmqy@2J5G&rHN?|mt!GtU|--c{FZ5wS$hLYP7<>D#kEYUia*)fJp0K!DBlo8 zNh1k(@O5udf*?-ubr}oN%%qn!S{`mPIP;VuPWX;o_43I@=*+tQi%pzaq zo3dP0<(XOFz4$r}54gk~qQ>6lywap(LcoN5x32vvuNfN{M~FtFe}*0|`c3K-Rv8%* zBAmV$TquE&ver`2YR6y&>%q_f`VQ#pX0YAHAdG4kSxjreSgKUVQbEG2T6dQheWODW zXHL+F^*f!?(!F0xvivQ1o^4+^4plTY8=RKwm(*d%?{{fof!d)V8+81T58SxFVhL`y}$dj4BYUZtMk?af5os_I$gXz7nfE}^m@IYvux{wS(g7nk|t}R z-=HYrfEpznXgz^wOsAJ^}81reduw)aYOr;@(7fF*(Ztueg$ zcu0khYxl-SAC1YELJC^$hop}@`7ekMB|{4kyaGB{r zlzerK?4Y$9?&m@Z&-ditCgZTSL%H~aFBpIOS667Yfekz1O{RSl zqxMHD>D7kK#r^+sduR6@DOqj5HAjKTS?TVCG>fxFKUCI8{6^DkD2FU4z8I#)_&Yzx zc--gUdQjvRcLqBmABnO#n&i?3Fdc>QwhBY+;0+_7n1fPQ^h9pbapuYMn?m{31q+@E zO&O#HlfTc2E5++~9Gom&@djh@$UjrQLig`iE9Z#^4BYtAxHNN3Pg^uCPDaZ=9}WjU z6i1Uk<~4XEblSAr+a!$xzH2GLbnJ^HjbvzTaT1XXVv0uta`_~Je~ed!;vWct4Zr>nH9eV3zrlsOHf}5 ze4$2SEej>IP|m|z9ds4nL5VJ-bd>gjU@a?gq(ufhwSyN20`#~H6@Y~fj9#&(7G_op ztw^S&DU(5L$j01KVR_!GE1f>1Do3$Izi>p=XwQ2pK(Fmm$$IPeXc#qM|6(~T3bbL} zKi7iA4-8ZDmH%p z;0k86Bd|a-(4^;^SC$CVB+#)f5R4*nuE{ex|6YF7+c|N# zDF|CM+8xkn$Qfn@@{Ss;rP_qo7-#4Zg@Rqw{1WL-Nxjosq1I1vqlmY{R0+5^xO za)%)hwSo_%{OmpA4DEIoDdIp3_MhKgkd{uRtIRmrIYT=qkBUgWyYFfdUxy6kvD0U0 zX?aoGANq6B_L&9Vi{lFHbD8fq7_>nrr!Y*Tm6zooC-HbW;su8C-{nn~V*%F~Lg~v2 z%}i4hZGPSqm`g|j3iDSNtYZP@QJRaCqrpM8DwG5y7Kiw3)jc-l;-WNmWkPJ~Vmhdc zPK1)CMCR*g=I`=@-mBFMv8u!mz5M2}?3`xn#oc4z&y9o8)=*8!FTxf`$-(C%njgO0 z@!-yzk<%*321F190lOt6m+^3&59+RX=-Lev0z2f`ZIRzhL52zEsoPxOpwXvn6p>$a zX#&IwPE)H*xfxLzYeMCATrkQ&PabmR(i2EmsgL=2212n#W|&R-6!Ra01GGNpP|-i- zjn}{W#$e@|PjWC$M7MTN{HOk0OBp6yXxyA?D7iQ*X||fQyR-9E%d%d;>+&afeIDj> z{;7k0^_+AvrfheNnIJh)%!dO9!Gzy8zfN=I5FuebddD#uWfArILt1Li(ca^jQV1riQyc~U&Y@}w`nv^skL?kEnM?>>W?QP>~!ae zd&oNUw9(SxrMC}9(FdlK{8`|=NLmdKEV(M_Kb@B$qVQ?(cmHReM9)ld5=RMH-8qqg zOaTcpl(H0T!G?!B6|n+6iWwv|m<$aTz#@?&`(cd$u)g^YD>tsm;MpPqw6=AMc(O z)|tm8@~FQ_gJD8C+(2xDCLEy5V2(=5Cx7J%P6AxcSeqO$J;|8UVV`!--bDfbY&6)A z(UW7iWH=3lMNcr|*o+`FFR&8_`gau)vi zv;v~@{~|UfbfMr&%ANB*gXf{|`)?5%Je5t|v|pYF$hMpQ|)ZxA()H!qwjV3!Z;D8$P z=ivoyF=NGJ#0A4^P-A(On)9o4{Mg^nsYylM!#DleRgZh}Z$-yG^S4geP($acoCV&C z`O?ig2dpHx^e0N%E|$IEd*RiDWT1&5Sv{mR zIo+L~UmT3b(eFl+$saks^HM))zbua9XQ%OqvV1~DqszaaNxiL2vYTy6#?T%P$!rjv zo^X{goKOgH{WK#t50u=g&Hs*I4V5=h_j4&|`SN!lgQ_&9nD->-)s)xY%iSh*!`AQa zzw+wWwL-U8x&A58OOuLXmhoOHTi(z$K2dq?CqGwYQI+)vT3%`t&MojpF~x5UJvCVA zh|-v@N@2Z(jSdG>&R7#sZ&K7?Y579b1h`Ffe)Cdowo0j&DP28Hsy_qDWQ9^ND@EwM zRMTKXN#-eSRRGAfFYyodMbp~B&sag{Q`H6fy|psa*KJYh=ecpzba=hlY?NUbY>!66-;bi?Kf6Kr`l{^yo5^rw zhoLR{)o}`8rezv=lbyqj&XBYA1+L+It|lqsELL}TZR^T~+h}wsn46aZF3&l!vD7dw zQ=s><3A_Rj z$J$G?Do>Ih=0Crc3e`5DaB+=XE|n^9%f$*vp${ZsEd{(O3l>UFQJP6G#e^1Sfq)BP zy4z?kNbrQXG$y~;jAC?YC}tU`#%BF@1l_4FgX&Wi0Vo>R<%&vKRZ~HoOk@c!WBr9o zVfY7lEHK4h*gBeY7hk{|Uo+haRnV&CfAqOZQX)y14REzo^4c+SkzT}MD#GAE14I)c zOrV8T$v~(QM+#WHdm*oz#VdJ?G3F>b1R29)4Y+k zmk!ghPrZwZVV?@nX^AVgXh{9-Q>&Wa_<3dqRVr4OoCj!n zqtU2r+s+1q{{I~`nzw|F=C50pW|vty2|6n+Kd(O5ER)~Mvg|D9C^uGF@eg#f7G!>qcsK+V}9@8&@1v9Y^QW#X_o`^Ji1p8d&(cIq%_p@JX%+ ziq(!M(9X2bO@1=XvdqhNe_Vn+UhV#y2PKZir(*>s4&Q!<|Ne6sFZ43z)00o%V4h1l z4ydJgQ5i~@8b}-ne1PUyy9#4a2J=2-v{@8W!9Txy=5EepxinimC_xrIVBx1D$U+EO zR}@a6uGg(vy;8&sWWP#3!c| zcR14{p@9SPWqGJ@3K6*}3a)CnP__UsgA`4XQ8pR!y-qn{j!EN;cDQ*r?ee3EezGD5!@ZN9M4qNP?FlB!ysC(4e%&@zo?%(aVYuiU??MVbk~E|3NQ z!oD|+qvz$Et?Hgn&AA1!*Ul_t6=rSls7uclP%)ALStUVI?0XPM3qzzNVY%Hqag6-A zCGwk1>G^`r3nYRLT%yd=R3I;e5?k&$(F%B~tbH&mW%nZjJYW~uR(Rj$?&X#FY8WU^ zMwifn(k8CodZX9Q|7~8GoP_cH<@Mx{62M1mN>D5oY<(ip(1n&W|BT2V0)>EHWilR9 z8V_mfEaY?@YVv`fa(Wnzhr}_88m%Q72J6&6eK!HlWw*N`j1C)|%C^)2j&;mg-_nsQ z>1jXm3-slWyqmU%o8&Lxu@L*qv0}f~O zx$H3*aHKwOzYizkAK{WgBysm zS1=%5#}kJNw28=)Ai}|xv(8bUhP#_Yi-pKZ7MUiv@OU`jrD)K;>z+MOi`s;GQ|gQZT~@XzyB3<+sFQddYhYKK?Lg_ zOc&xf`W+`|+{zEX{Q?~X(zCI`%o+}T3$xp=E03TwNJ>pron`&F>Vm@iQvk)+(UE?@ zx-Dx{*!%nfv%q`t23`(mIoMceVQF9EYWVY(Y2F}mIJPb# z^)6>=$lMTEL23Zh5KhmhzV;;v!dB3vw2FjcYgkQQD;;VtFOeqNw54);fNpMH$)FDU zyIW^AsTnSb%p`6bG=G(%9Us$j>Fzria79kbITMitg8NRp$rkF zMFDuEOo>+f*{vc0D-n-;qQL8wC@-miT*{zKQ^TNK{8?x+7>LjZU_>QvBuuoy!N;&pM5RHE zv?_7*Lsl!|=AZ+M2}Q2N&`X8uB~$75mYf9}R18PM_zw*}9Q=b}b-Bh~;9D=@U+q>n zF50%K?jxw+=s!{_&@qucMEk(h<=^kU`)hRYiO(V%I9&dNj9A$PnNkfIrm}|z91VZh z#Bo@g#l2bJ{d=}~c?}m8m+svxiT}?C6Le5|;RWRe zQo@OCl7++++sG*9O$0MdbSsk47(fTk zq&@zzls8r()W@o3x9PR6DBN8|U|ZV7xu7GoGJ)yeR?z93#-J@4O&;b%vr@spd~6B2 z!a}MpX<-wNk%oxq3b{oD>8ji$WW>o7MXwvC5f^$ z;mwrALrR7_gz!cb^PHCDEiX6?fmAaVgO6EH0_i6Lg zy)?hH%m;K+f-GhM$c{@n?A3vY8A6#QHRG`)K7h$vSf<|kNzP{Xi?}*a6PC*va-5Lq zRCQn3RMtUppAKC0IO?6fn|3!(Qs6bHuyS#G-~<0AzVq+m`~EVn;=U;i%jX>*aq!LZ zbLfNF^%$J+mtG$ceu9%K9`={UgZ|GH2#}DJgYbsq(P*$syZ3&DhNtfq#+jI5W~EG{ zl@Ph2?Mev=UEQjxdE|v;Ca&*_`>!aJVIo{=w0`Us8f+Y+bkLXQ)as88%44F}P}br% zn(~1Yo0ys%r^_s^`Vep04+1@ri(^Ipu>L`ifTW%{64wwPO?z~`+604I50Eb5KbVaE zSYG6}B7ml8Bn~4GMZ$qSy?20zA>%~*X|%OY8Lzn_is z7yNjzL*uW0g)@mm6wa?w28(Mr`4)L?TX5INa8 zbByxM(`1zndCLdM^BamXYUqOVB*;LDtfb1WWe5imY}19|=5gJye#~{;!6TiCieFWo zP0zLFsbBRZ^LkV&5e^*UR(px3QM@v~%1h$2e0<%2R#D37As~kU{Cm*sEmYgeYc#3h zH#z&{!+v*59E1h;tEo0cS*o&ss&ZEe+fftdC4^!Y_8%dy)1OZy_{bq6F) zo&a)_kYV#xrSzk&>mA~s{9azhJKv}}!Un?Y z7kva{qL=+k54iGxti_M6ihF%`qNqQqT@*`KqUh@>8_CEy#vK zda*U(p?1j@_5RwPx|&X&HD$$(&0}GJ!5M9m3~BM;^`!F#igr#)mIFgWu?I4gO9etM z%>UqhrS17+Dc>#Ld=R4^Jo@Fo_Ndj8W$nsgNQSRn+J6kq=HFu#)esg7gk5C)6lEHJYTG{FrsgYGJrnKsVJ^zp7=S?^_5U9LyFlPDStX|VoP&UP9UG#8`|K~rJ zMS@?ivRU+<1>SGCHy|lx|EFN(@O8bN_3s??w#hLa8V=X#s;jOf-)~SaKTB>Sr17{% zfyu#{7cW{0&}z_4-V}va8wJ)>Ve~_5@VNxgT(u$$I0Enna-D$8))M8z0S&mUT+}hB zOH?m+Dtv=YhMpjAtc){_H0KqqyC^Mxl^!EyJCvzY8tNm{*M%*TC8mX!gA+H_R+eRl zrqzF1T+6Y7`d^ z-IA==#CIYN=3$ps4_{9wzxXK{Y;RG}S>)#lRe(nY1vVrgWAN}xQt|6Et%^K;OtH31 z@o3D??$G*OchL>c{XuFk&W(oKXA_;*olq;k*)6I69rS1<7-e$;C;Ym=dAM6 zoaw%Zvx&Fz@_Okc8u4Pc#kDnp6r^p?_U5)^w@m}Y31}?va(4_tMO3D;U`HvJfz+uf zksR3}z?Jbviqb754^l$7JQhSlapo9>jYZ1hgiF0m324YV@Pm_R!lmYbvLd0}^2qNl zk2Ftzy{1(s9@AiAT94G7kZc!XL3w#uF-aGIL`i9^XwMvtCgUNcTX*yA&Zx0^4TVcr zPy)6Y3`k*$$rTkS#?W@rOx3;;jJT$TuSL$mQ}k+0ihEm}Vn)24miXsv+IRhT(7l}X z>U`kmSi6+gF7NzkUcZyg4Js|r)EyyOR9-1g$R>Qzp#9Nm(CQPPL+htb)5^}-tm&GZ zDTF}tXeu*!aBV3--=+aKwM?2#-DZLJLeUq)vO&;j{#>ikh&k~7gEFhULN~cKvv$%- z%hS@ll0&TvE0et37WNOye?{X}eO&a_FmZ+?9-Lq^{;4#}cM=Y)gV6-0K8+~R+~H(Q z?d8K{o;^X9mP+{v2}%)r))VRDO~zwN(o*QAmfL_+?cJPl{=s9tfDt^9c_ElQ+&yHA ze^>2t!XzpE3j?ho6BbXrMxr>P(fYkKK6{+JR+9`4!p?*b*d!9$bBik>(18tUWtj@g zi$F#=#Eu-zW)p7EB-%rAJX*C!+!t>8|xCB z&wl;S3OCdEDr7(9pwdc;#u`ofJCuz^bmZCJ$JJ9oy^T%EQm%r!tK>Gi3c+GI%7d>y zhlCjkluXW*0S8CJ32AWpC~e;QceHcjEZGM*Lml?WZgyzjwNIeI#tBifLt9D*_8Xb@ z&N@Yd9jV45KJ>|Nl3BE*D6>6Ftl)t!H#wn*`G6fxqL5egV!3tpu1Thl5@TGEiK|{q1E&^OCzCTN1gM;#7qup6;c2}0sX4VXt1y!Qy z42W=5m9|!C{j#dQTu`~Kk#=!7OlT_Wl``_-emj>Z66xa{bAFran%4oMXxM@Lu{x_X zfA~t;y!&p7Cp{{4i(C$xoMH;DS2UV|wuOj}<4F*PkUDy@Xi=aQRwNuidpmUHvwxJX z{YNhmJrK)qskORaEOwy2UX-b{%z&R5Zk{Bsy+YSM`XAm&=SN2mG!|*hvA!olFS^3t-WLQ?6C@aN#c(S1lh2FOf z_8J(KKzHk=8nE$!?k=oQ*v8==2tp#s#^m`e3L0&Jj0wIRt*{KU438?b!pejiYx}wU zFSyD8n+`IS{BHPXOVEdXk6N9Dtkvzl!!nEy$=aM8m#a1Cvmz_7YQp!}!NTXJ0Q#f&j znt`RezsNz{@ulx>`E4pVI6EAqJr2A{JQ4aiLE$Y=h?;Zco277kgM}`Y{g@oX=YX$K z47ZE4q|V|h`F<0KiJ!47^S@9Hf16#izvv1q= zjnI@A1@(u$%aZd146f$7xlz$CRl4PBNousa3tt|Oc5gQP?pL%t?W9)q%UY@Z6t4q) zJQ)gl3(z{DkfXiBf!Gox1GITbsK*v(rroQbELrQY4^)gVy1#I)GJ=qUZ7xGO_^}y| zNsfr;91s!^6$u5cW-WIbgO(h7e)DM4_Wqh*@LiKh^a(}qm|e5Ldl~LY`ZmpOFZ4kG z)^xdt1e;k@~OaihEVDu;t2kT69&qPevz$Z^cAyN=%a+8}KIrD+&1E%N;NNmjNo z6EH=+Oz4ziT`pouqGDu;uCoUh3n!$>WFVO>sKN<^%`5$w9dPzuFLk6(a3gu-L#6cS(cSXl_&$Z#?3xAM*)_W^|MrS<@I>?zlDVP=YkQe7U#Ixb$86Uz(>N*& z+cpHsCkl9wEz5x-2O>t}ESSSFtWmP9b1jbZzN#;gM)&>x?7B?O@mZ-dyJpwynq80X zrO!Ts*)_Xn*X)`F-q|&~X4mYR1>V^;yJpwynq9NNJG*Ar?3!J(z&pEU*X){Iv+KcK c|GxkO0IoP0=LRnVa{vGU07*qoM6N<$f}{hA^#A|> literal 0 HcmV?d00001 diff --git a/tests/docs/smoke-all/pdf-standard/typst-unsupported-warning.qmd b/tests/docs/smoke-all/pdf-standard/typst-unsupported-warning.qmd new file mode 100644 index 00000000000..74f2e721323 --- /dev/null +++ b/tests/docs/smoke-all/pdf-standard/typst-unsupported-warning.qmd @@ -0,0 +1,17 @@ +--- +title: "Typst unsupported standard warning" +format: typst +pdf-standard: x-4 +keep-typ: true +_quarto: + tests: + typst: + noErrors: default + printsMessage: + level: WARN + regex: "PDF standard 'x-4' is not supported by Typst" +--- + +# Test Document + +This tests that PDF/X-4 (LaTeX-only) produces a warning with Typst. diff --git a/tests/docs/smoke-all/pdf-standard/typst-version-and-standard.qmd b/tests/docs/smoke-all/pdf-standard/typst-version-and-standard.qmd new file mode 100644 index 00000000000..6a569e372de --- /dev/null +++ b/tests/docs/smoke-all/pdf-standard/typst-version-and-standard.qmd @@ -0,0 +1,14 @@ +--- +title: "Typst PDF version + standard" +format: typst +pdf-standard: ["1.7", a-2b] +keep-typ: true +_quarto: + tests: + typst: + noErrors: default +--- + +# Test Document + +This tests combined PDF 1.7 + PDF/A-2b output with Typst. diff --git a/tests/docs/smoke-all/pdf-standard/ua-compliant.qmd b/tests/docs/smoke-all/pdf-standard/ua-compliant.qmd new file mode 100644 index 00000000000..fd9b0811225 --- /dev/null +++ b/tests/docs/smoke-all/pdf-standard/ua-compliant.qmd @@ -0,0 +1,28 @@ +--- +title: "UA with language set" +lang: en +format: + pdf: + pdf-standard: ua-2 + keep-tex: true + typst: + pdf-standard: ua-1 + keep-typ: true +_quarto: + tests: + pdf: + noErrors: default + ensureLatexFileRegexMatches: + - ['\\DocumentMetadata\{', 'pdfstandard=\{ua-2\}', 'tagging=on'] + - [] + printsMessage: + level: WARN + regex: "Document language not set" + negate: true + typst: + noErrors: default +--- + +# Test Document + +This document has PDF/UA with language properly set, so no language warning should appear. diff --git a/tests/docs/smoke-all/pdf-standard/ua-definition-list.qmd b/tests/docs/smoke-all/pdf-standard/ua-definition-list.qmd new file mode 100644 index 00000000000..2a25b26e5c6 --- /dev/null +++ b/tests/docs/smoke-all/pdf-standard/ua-definition-list.qmd @@ -0,0 +1,28 @@ +--- +title: "UA definition list accessibility" +lang: en +format: + typst: + pdf-standard: ua-1 + keep-typ: true +_quarto: + tests: + typst: + # Definition lists should pass PDF/UA-1 validation + # Fix: https://github.com/quarto-dev/quarto-cli/pull/13249#discussion_r2678934509 + noErrors: default +--- + +# Definition List Test + +This tests that definition lists are accessible in PDF/UA-1. + +Term 1 +: Definition for term 1 + +Term 2 +: Definition for term 2 + +Term 3 +: Definition for term 3 with more detailed explanation + that spans multiple lines. diff --git a/tests/docs/smoke-all/pdf-standard/ua-figure-missing-alt.qmd b/tests/docs/smoke-all/pdf-standard/ua-figure-missing-alt.qmd new file mode 100644 index 00000000000..13591958796 --- /dev/null +++ b/tests/docs/smoke-all/pdf-standard/ua-figure-missing-alt.qmd @@ -0,0 +1,39 @@ +--- +title: "UA figure missing alt text" +lang: en +format: + pdf: + pdf-standard: ua-2 + keep-tex: true + typst: + pdf-standard: ua-1 + keep-typ: true +_quarto: + tests: + run: + # verapdf validation not available on Windows CI + not_os: windows + pdf: + noErrors: default + ensureLatexFileRegexMatches: + # LaTeX generates a proper \begin{figure} environment + - ['\\DocumentMetadata\{', 'pdfstandard=\{ua-2\}', 'tagging=on', '\\begin\{figure\}'] + - [] + # NOTE: verapdf passes because LaTeX's tagging=on doesn't create proper + # Figure structure elements in the PDF. This is a LaTeX limitation. + typst: + # Typst correctly errors at compile time for missing alt text + shouldError: default + printsMessage: + level: ERROR + regex: "missing alt text" +--- + +# Test Document + +This is a proper figure with a cross-reference label but no alt text. + +- **Typst**: Correctly errors at compile time ("PDF/UA-1 error: missing alt text") +- **LaTeX**: tagging=on doesn't create proper Figure structure elements + +![](penrose.svg){#fig-test} diff --git a/tests/docs/smoke-all/pdf-standard/ua-image-alt-text.qmd b/tests/docs/smoke-all/pdf-standard/ua-image-alt-text.qmd new file mode 100644 index 00000000000..4481174217c --- /dev/null +++ b/tests/docs/smoke-all/pdf-standard/ua-image-alt-text.qmd @@ -0,0 +1,35 @@ +--- +title: "UA image with alt text" +lang: en +format: + pdf: + pdf-standard: ua-2 + keep-tex: true + typst: + pdf-standard: ua-1 + keep-typ: true +_quarto: + tests: + run: + # verapdf validation not available on Windows CI + not_os: windows + pdf: + noErrors: default + ensureLatexFileRegexMatches: + # Alt text MUST be passed to \includegraphics[alt={...}] for PDF/UA + - ['\\DocumentMetadata\{', 'pdfstandard=\{ua-2\}', 'tagging=on', 'includegraphics\[.*alt='] + - [] + printsMessage: + # Should NOT warn about missing alt text since we provided it + level: WARN + regex: "PDF accessibility:.*Missing alt text" + negate: true + typst: + noErrors: default +--- + +# Test Document + +This image has alt text which should be passed through for PDF/UA compliance. + +![Test image description](test-image.png) diff --git a/tests/docs/smoke-all/pdf-standard/ua-math-test.qmd b/tests/docs/smoke-all/pdf-standard/ua-math-test.qmd new file mode 100644 index 00000000000..2e1b35647aa --- /dev/null +++ b/tests/docs/smoke-all/pdf-standard/ua-math-test.qmd @@ -0,0 +1,41 @@ +--- +title: "UA math without alt text" +lang: en +format: + pdf: + pdf-standard: ua-2 + keep-tex: true + typst: + pdf-standard: ua-1 + keep-typ: true +_quarto: + tests: + pdf: + # LaTeX with tagging=on + unicode-math auto-generates MathML for accessibility + noErrors: default + typst: + # Typst requires explicit alt text for math in PDF/UA-1 + shouldError: default + printsMessage: + level: ERROR + regex: "missing alt text" +--- + +# Math Without Alt Text in PDF/UA + +PDF/UA requires alternative text for Formula elements. + +- **LaTeX**: Auto-generates MathML via `tagging=on` + `unicode-math` (LuaLaTeX) +- **Typst**: Requires explicit alt text - errors at compile time + +Note: PR #13872 adds `alt` attribute support for equations in Quarto. + +## Inline Math + +The equation $E = mc^2$ is inline. + +## Display Math + +$$ +\int_0^\infty e^{-x^2} dx = \frac{\sqrt{\pi}}{2} +$$ diff --git a/tests/docs/smoke-all/pdf-standard/ua-math-with-alt.qmd b/tests/docs/smoke-all/pdf-standard/ua-math-with-alt.qmd new file mode 100644 index 00000000000..780a5408285 --- /dev/null +++ b/tests/docs/smoke-all/pdf-standard/ua-math-with-alt.qmd @@ -0,0 +1,34 @@ +--- +title: "UA math with alt text" +lang: en +format: + pdf: + pdf-standard: ua-2 + keep-tex: true + typst: + pdf-standard: ua-1 + keep-typ: true +_quarto: + tests: + pdf: + noErrors: default + typst: + # Equation alt text now works - verapdf validates successfully + noErrors: default +--- + +# Math With Alt Text in PDF/UA + +This tests equation alt text for PDF/UA accessibility. + +See @eq-einstein for Einstein's famous equation. + +$$ +E = mc^2 +$$ {#eq-einstein alt="E equals m c squared"} + +## Another equation + +$$ +a^2 + b^2 = c^2 +$$ {#eq-pythagoras alt="a squared plus b squared equals c squared"} diff --git a/tests/docs/smoke-all/pdf-standard/ua-missing-alt.qmd b/tests/docs/smoke-all/pdf-standard/ua-missing-alt.qmd new file mode 100644 index 00000000000..d2a6f65fd15 --- /dev/null +++ b/tests/docs/smoke-all/pdf-standard/ua-missing-alt.qmd @@ -0,0 +1,39 @@ +--- +title: "UA inline image missing alt text" +lang: en +format: + pdf: + pdf-standard: ua-2 + keep-tex: true + typst: + pdf-standard: ua-1 + keep-typ: true +_quarto: + tests: + run: + # verapdf validation not available on Windows CI + not_os: windows + pdf: + noErrors: default + ensureLatexFileRegexMatches: + - ['\\DocumentMetadata\{', 'pdfstandard=\{ua-2\}', 'tagging=on'] + - [] + # NOTE: verapdf passes for ua-2 because LaTeX's tagging=on doesn't create + # proper structure elements for inline images. This is a LaTeX limitation. + typst: + # Typst correctly errors at compile time for missing alt text + shouldError: default + printsMessage: + level: ERROR + regex: "missing alt text" +--- + +# Test Document + +This inline image has no alt text. + +- **Typst**: Correctly errors at compile time ("PDF/UA-1 error: missing alt text") +- **LaTeX**: Warns about missing alt text but tagging=on doesn't create proper + structure elements for inline images + +![](penrose.svg) diff --git a/tests/docs/smoke-all/pdf-standard/ua-missing-title.qmd b/tests/docs/smoke-all/pdf-standard/ua-missing-title.qmd new file mode 100644 index 00000000000..c05e5921f4b --- /dev/null +++ b/tests/docs/smoke-all/pdf-standard/ua-missing-title.qmd @@ -0,0 +1,34 @@ +--- +lang: en +format: + pdf: + pdf-standard: ua-2 + keep-tex: true + typst: + pdf-standard: ua-1 + keep-typ: true +_quarto: + tests: + run: + # verapdf validation not available on Windows CI + not_os: windows + pdf: + noErrors: default + ensureLatexFileRegexMatches: + - ['\\DocumentMetadata\{', 'pdfstandard=\{ua-2\}', 'tagging=on'] + - [] + printsMessage: + # verapdf correctly catches missing document title + level: WARN + regex: "PDF validation failed for ua-2" + typst: + # Typst correctly errors at compile time for missing title + shouldError: default + printsMessage: + level: ERROR + regex: "missing document title" +--- + +# Content without document title + +PDF/UA requires a document title in the metadata. This document has no `title:` diff --git a/tests/docs/smoke-all/typst/.gitignore b/tests/docs/smoke-all/typst/.gitignore new file mode 100644 index 00000000000..3e0982561e1 --- /dev/null +++ b/tests/docs/smoke-all/typst/.gitignore @@ -0,0 +1,3 @@ +# Generated test outputs (from keep-typ option) +*.typ +*.pdf From c804ffd55ffdf5b95b7db91ac86c9cfca8f31ffc Mon Sep 17 00:00:00 2001 From: Gordon Woodhull Date: Sat, 10 Jan 2026 19:40:22 -0500 Subject: [PATCH 2/7] Add Typst image alt text for PDF/UA accessibility Workaround for Pandoc not passing alt text to Typst image() calls. When an image has alt text (from caption or fig-alt), emits raw Typst with image(..., alt: "...") for accessibility compliance. Temporary fix until pandoc#11394 is merged upstream. Closes #13868 Co-Authored-By: Claude Opus 4.5 --- news/changelog-1.9.md | 1 + src/resources/filters/quarto-post/typst.lua | 42 +++++++++++++ .../crossrefs/float/typst/typst-float-4.qmd | 5 +- .../docs/smoke-all/pdf-standard/alt-test.qmd | 8 +++ tests/docs/smoke-all/pdf-standard/penrose.svg | 16 +++++ .../smoke-all/pdf-standard/tc1-figure.svg | 16 +++++ .../smoke-all/pdf-standard/tc2-inline.svg | 16 +++++ .../smoke-all/pdf-standard/tc3-explicit.svg | 16 +++++ .../smoke-all/pdf-standard/tc4-dimensions.svg | 16 +++++ .../smoke-all/pdf-standard/tc5-quotes.svg | 16 +++++ .../smoke-all/pdf-standard/tc6-backslash.svg | 16 +++++ .../smoke-all/pdf-standard/tc7-no-alt.svg | 16 +++++ .../smoke-all/pdf-standard/test-image.png | Bin 139465 -> 0 bytes .../pdf-standard/typst-image-alt-text.qmd | 57 ++++++++++++++++++ .../pdf-standard/ua-image-alt-text.qmd | 2 +- .../smoke-all/typst/url-image-mediabag.qmd | 21 +++++++ 16 files changed, 261 insertions(+), 3 deletions(-) create mode 100644 tests/docs/smoke-all/pdf-standard/alt-test.qmd create mode 100644 tests/docs/smoke-all/pdf-standard/penrose.svg create mode 100644 tests/docs/smoke-all/pdf-standard/tc1-figure.svg create mode 100644 tests/docs/smoke-all/pdf-standard/tc2-inline.svg create mode 100644 tests/docs/smoke-all/pdf-standard/tc3-explicit.svg create mode 100644 tests/docs/smoke-all/pdf-standard/tc4-dimensions.svg create mode 100644 tests/docs/smoke-all/pdf-standard/tc5-quotes.svg create mode 100644 tests/docs/smoke-all/pdf-standard/tc6-backslash.svg create mode 100644 tests/docs/smoke-all/pdf-standard/tc7-no-alt.svg delete mode 100644 tests/docs/smoke-all/pdf-standard/test-image.png create mode 100644 tests/docs/smoke-all/pdf-standard/typst-image-alt-text.qmd create mode 100644 tests/docs/smoke-all/typst/url-image-mediabag.qmd diff --git a/news/changelog-1.9.md b/news/changelog-1.9.md index 503ec995e5c..1a6e1222817 100644 --- a/news/changelog-1.9.md +++ b/news/changelog-1.9.md @@ -42,6 +42,7 @@ All changes included in 1.9: - ([#13589](https://github.com/quarto-dev/quarto-cli/issues/13589)): Fix callouts with invalid ID prefixes crashing with "attempt to index a nil value". Callouts with unknown reference types now render as non-crossreferenceable callouts with a warning, ignoring the invalid ID. - ([#13602](https://github.com/quarto-dev/quarto-cli/issues/13602)): Fix support for multiple files set in `bibliography` field in `biblio.typ` template partial. - ([#13775](https://github.com/quarto-dev/quarto-cli/issues/13775)): Fix brand fonts not being applied when using `citeproc: true` with Typst format. Format detection now properly handles Pandoc format variants like `typst-citations`. +- ([#13868](https://github.com/quarto-dev/quarto-cli/issues/13868)): Add image alt text support for PDF/UA accessibility. Alt text from markdown captions and explicit `alt` attributes is now passed to Typst's `image()` function. (Temporary workaround until [jgm/pandoc#11394](https://github.com/jgm/pandoc/pull/11394) is merged.) - ([#13249](https://github.com/quarto-dev/quarto-cli/pull/13249)): Update to Pandoc's Typst template following Pandoc 3.8.3 and Typst 0.14.2 support: - Code syntax highlighting now uses Skylighting by default. - New template variables `mathfont`, `codefont`, and `linestretch` for font and line spacing customization. diff --git a/src/resources/filters/quarto-post/typst.lua b/src/resources/filters/quarto-post/typst.lua index 0f8cacf35c3..67506b6e88b 100644 --- a/src/resources/filters/quarto-post/typst.lua +++ b/src/resources/filters/quarto-post/typst.lua @@ -232,6 +232,48 @@ function render_typst_fixups() if image.attributes["width"] ~= nil and type(width_as_number) == "number" then image.attributes["width"] = tostring(image.attributes["width"] / PANDOC_WRITER_OPTIONS.dpi) .. "in" end + + -- Workaround for Pandoc not passing alt text to Typst image() calls + -- See: https://github.com/jgm/pandoc/pull/11394 + local alt_text = image.attributes["alt"] + if (alt_text == nil or alt_text == "") and #image.caption > 0 then + alt_text = pandoc.utils.stringify(image.caption) + end + + if alt_text and #alt_text > 0 then + -- When returning RawInline instead of Image, Pandoc won't write mediabag + -- entries to disk, so we must do it explicitly + local src = image.src + local mediabagPath = _quarto.modules.mediabag.write_mediabag_entry(src) + if mediabagPath then + src = mediabagPath + end + + -- Build image() parameters + local params = {} + + -- Source path (escape backslashes for Windows paths) + src = src:gsub('\\', '\\\\') + table.insert(params, '"' .. src .. '"') + + -- Alt text second (escape backslashes and quotes) + local escaped_alt = alt_text:gsub('\\', '\\\\'):gsub('"', '\\"') + table.insert(params, 'alt: "' .. escaped_alt .. '"') + + -- Height if present + if image.attributes["height"] then + table.insert(params, 'height: ' .. image.attributes["height"]) + end + + -- Width if present + if image.attributes["width"] then + table.insert(params, 'width: ' .. image.attributes["width"]) + end + + -- Use #box() wrapper for inline compatibility + return pandoc.RawInline("typst", "#box(image(" .. table.concat(params, ", ") .. "))") + end + return image end, Div = function(div) diff --git a/tests/docs/smoke-all/crossrefs/float/typst/typst-float-4.qmd b/tests/docs/smoke-all/crossrefs/float/typst/typst-float-4.qmd index b92aa195c98..1e7c5e192e0 100644 --- a/tests/docs/smoke-all/crossrefs/float/typst/typst-float-4.qmd +++ b/tests/docs/smoke-all/crossrefs/float/typst/typst-float-4.qmd @@ -6,10 +6,11 @@ _quarto: tests: typst: ensureTypstFileRegexMatches: - - + - - "#ref\\(, supplement: \\[Table\\]\\)" - "#ref\\(, supplement: \\[Figure\\]\\)" - - "#link\\(\"https://www.example.com/\"\\)\\[#.*image\\(\"img/surus.jpg\"\\)\\)" + # Images with captions now include alt text for accessibility + - '#link\("https://www\.example\.com/"\)\[#box\(image\("img/surus\.jpg", alt:' --- This tests: diff --git a/tests/docs/smoke-all/pdf-standard/alt-test.qmd b/tests/docs/smoke-all/pdf-standard/alt-test.qmd new file mode 100644 index 00000000000..0a1b35f669c --- /dev/null +++ b/tests/docs/smoke-all/pdf-standard/alt-test.qmd @@ -0,0 +1,8 @@ +--- +title: "Alt text test" +pdf-standard: ua-1 +keep-tex: true +--- + +![This is the alt text](penrose.svg) + diff --git a/tests/docs/smoke-all/pdf-standard/penrose.svg b/tests/docs/smoke-all/pdf-standard/penrose.svg new file mode 100644 index 00000000000..30308f170f9 --- /dev/null +++ b/tests/docs/smoke-all/pdf-standard/penrose.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/tests/docs/smoke-all/pdf-standard/tc1-figure.svg b/tests/docs/smoke-all/pdf-standard/tc1-figure.svg new file mode 100644 index 00000000000..30308f170f9 --- /dev/null +++ b/tests/docs/smoke-all/pdf-standard/tc1-figure.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/tests/docs/smoke-all/pdf-standard/tc2-inline.svg b/tests/docs/smoke-all/pdf-standard/tc2-inline.svg new file mode 100644 index 00000000000..30308f170f9 --- /dev/null +++ b/tests/docs/smoke-all/pdf-standard/tc2-inline.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/tests/docs/smoke-all/pdf-standard/tc3-explicit.svg b/tests/docs/smoke-all/pdf-standard/tc3-explicit.svg new file mode 100644 index 00000000000..30308f170f9 --- /dev/null +++ b/tests/docs/smoke-all/pdf-standard/tc3-explicit.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/tests/docs/smoke-all/pdf-standard/tc4-dimensions.svg b/tests/docs/smoke-all/pdf-standard/tc4-dimensions.svg new file mode 100644 index 00000000000..30308f170f9 --- /dev/null +++ b/tests/docs/smoke-all/pdf-standard/tc4-dimensions.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/tests/docs/smoke-all/pdf-standard/tc5-quotes.svg b/tests/docs/smoke-all/pdf-standard/tc5-quotes.svg new file mode 100644 index 00000000000..30308f170f9 --- /dev/null +++ b/tests/docs/smoke-all/pdf-standard/tc5-quotes.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/tests/docs/smoke-all/pdf-standard/tc6-backslash.svg b/tests/docs/smoke-all/pdf-standard/tc6-backslash.svg new file mode 100644 index 00000000000..30308f170f9 --- /dev/null +++ b/tests/docs/smoke-all/pdf-standard/tc6-backslash.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/tests/docs/smoke-all/pdf-standard/tc7-no-alt.svg b/tests/docs/smoke-all/pdf-standard/tc7-no-alt.svg new file mode 100644 index 00000000000..30308f170f9 --- /dev/null +++ b/tests/docs/smoke-all/pdf-standard/tc7-no-alt.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/tests/docs/smoke-all/pdf-standard/test-image.png b/tests/docs/smoke-all/pdf-standard/test-image.png deleted file mode 100644 index bcbbad08b78a5ed2cc7c6bc65ed0ecc8aa1fe39b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 139465 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%0Aw(F&#$8&sw6amaGpox?x| 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 z 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 diff --git a/tests/docs/smoke-all/pdf-standard/typst-image-alt-text.qmd b/tests/docs/smoke-all/pdf-standard/typst-image-alt-text.qmd new file mode 100644 index 00000000000..c9070ce0e82 --- /dev/null +++ b/tests/docs/smoke-all/pdf-standard/typst-image-alt-text.qmd @@ -0,0 +1,57 @@ +--- +title: "Typst image alt text support" +format: + typst: + keep-typ: true +_quarto: + tests: + typst: + noErrors: default + ensureTypstFileRegexMatches: + - # Patterns that MUST be found - alt text in image() calls + - 'image\("tc1-figure\.svg",\s*alt:\s*"TC1 figure caption as alt' + - 'image\("tc2-inline\.svg",\s*alt:\s*"TC2 inline image' + - 'image\("tc3-explicit\.svg",\s*alt:\s*"TC3 explicit alt attribute' + - 'image\("tc4-dimensions\.svg",\s*alt:\s*"TC4 with dimensions",\s*height:\s*1in,\s*width:\s*1in' + - 'image\("tc5-quotes\.svg",\s*alt:\s*"TC5 with \\"escaped\\" quotes' + - 'image\("tc6-backslash\.svg",\s*alt:\s*"TC6 backslash C:\\\\path' + # TC7 should have the image but without alt parameter + - 'image\("tc7-no-alt\.svg"\)' + - # Patterns that must NOT be found + # TC7 with no caption/alt should NOT have alt parameter + - 'tc7-no-alt\.svg.*alt:' +--- + +# Test Document: Typst Image Alt Text + +This tests that Quarto passes alt text to Typst's `image()` function for PDF/UA accessibility. + +## TC1: Figure with alt text from caption + +![TC1 figure caption as alt text](tc1-figure.svg) + +## TC2: Inline image with alt text + +Here is an icon ![TC2 inline image](tc2-inline.svg) in the text. + +## TC3: Explicit alt attribute (different from caption) + +![Visible caption](tc3-explicit.svg){alt="TC3 explicit alt attribute"} + +## TC4: Image with dimensions should preserve alt + +Here is ![TC4 with dimensions](tc4-dimensions.svg){width=1in height=1in} inline. + +## TC5: Alt text with special characters (quotes) + +![Caption](tc5-quotes.svg){alt="TC5 with \"escaped\" quotes"} + +## TC6: Alt text with backslashes + +![Caption](tc6-backslash.svg){alt="TC6 backslash C:\\path\\file"} + +## TC7: Image with no alt text (should omit alt parameter) + +This image has no caption and no alt attribute. + +![](tc7-no-alt.svg) diff --git a/tests/docs/smoke-all/pdf-standard/ua-image-alt-text.qmd b/tests/docs/smoke-all/pdf-standard/ua-image-alt-text.qmd index 4481174217c..48751e98923 100644 --- a/tests/docs/smoke-all/pdf-standard/ua-image-alt-text.qmd +++ b/tests/docs/smoke-all/pdf-standard/ua-image-alt-text.qmd @@ -32,4 +32,4 @@ _quarto: This image has alt text which should be passed through for PDF/UA compliance. -![Test image description](test-image.png) +![Test image description](penrose.svg) diff --git a/tests/docs/smoke-all/typst/url-image-mediabag.qmd b/tests/docs/smoke-all/typst/url-image-mediabag.qmd new file mode 100644 index 00000000000..9b9228ff566 --- /dev/null +++ b/tests/docs/smoke-all/typst/url-image-mediabag.qmd @@ -0,0 +1,21 @@ +--- +title: URL image mediabag handling +format: typst +keep-typ: true +_quarto: + tests: + typst: + ensureTypstFileRegexMatches: + # Image should be extracted to mediabag, not remain as URL + - ['image\("url-image-mediabag_files(/|\\\\)mediabag(/|\\\\)400'] + # Should NOT contain the raw URL - it must be extracted to mediabag + - ['https://placehold\.co/400'] +--- + +# URL Image Test + +This tests that URL images are correctly extracted to the mediabag +when rendering to Typst format. The image below should be fetched +from the URL and stored locally, not left as a raw URL. + +![Placeholder image from URL](https://placehold.co/400){alt="A 400x400 placeholder image"} From 5bb21a7ddccdbd0db6b0adffb79278c4e9ed72bf Mon Sep 17 00:00:00 2001 From: Gordon Woodhull Date: Sun, 11 Jan 2026 17:40:00 -0500 Subject: [PATCH 3/7] Fix Typst definition list structure for PDF/UA-1 Preserve terms element structure in definition lists for PDF/UA-1 validation. Uses nested show rule instead of .map().join() which destroyed the list structure. Suggested by @mcanouil (PR #13249 discussion) Co-Authored-By: Claude Opus 4.5 --- .../typst/pandoc/quarto/definitions.typ | 14 +++++----- .../pdf-standard/ua1-definition-list.qmd | 26 +++++++++++++++++++ 2 files changed, 34 insertions(+), 6 deletions(-) create mode 100644 tests/docs/smoke-all/pdf-standard/ua1-definition-list.qmd diff --git a/src/resources/formats/typst/pandoc/quarto/definitions.typ b/src/resources/formats/typst/pandoc/quarto/definitions.typ index 4434f3edf52..49531d5da9d 100644 --- a/src/resources/formats/typst/pandoc/quarto/definitions.typ +++ b/src/resources/formats/typst/pandoc/quarto/definitions.typ @@ -17,13 +17,15 @@ #stack(dir: ltr, spacing: 3pt, super[#num], contents) ] +// Use nested show rule to preserve list structure for PDF/UA-1 accessibility +// See: https://github.com/quarto-dev/quarto-cli/pull/13249#discussion_r2678934509 #show terms: it => { - it.children - .map(child => [ - #strong[#child.term] - #block(inset: (left: 1.5em, top: -0.4em))[#child.description] - ]) - .join() + show terms.item: item => { + set text(weight: "bold") + item.term + block(inset: (left: 1.5em, top: -0.4em))[#item.description] + } + it } // Some quarto-specific definitions. diff --git a/tests/docs/smoke-all/pdf-standard/ua1-definition-list.qmd b/tests/docs/smoke-all/pdf-standard/ua1-definition-list.qmd new file mode 100644 index 00000000000..039a8dca060 --- /dev/null +++ b/tests/docs/smoke-all/pdf-standard/ua1-definition-list.qmd @@ -0,0 +1,26 @@ +--- +title: "UA-1 definition list accessibility" +lang: en +pdf-standard: ua-1 +keep-typ: true +_quarto: + tests: + typst: + # Definition lists should pass PDF/UA-1 validation + # Fix: https://github.com/quarto-dev/quarto-cli/pull/13249#discussion_r2678934509 + noErrors: default +--- + +# Definition List Test + +This tests that definition lists are accessible in PDF/UA-1. + +Term 1 +: Definition for term 1 + +Term 2 +: Definition for term 2 + +Term 3 +: Definition for term 3 with more detailed explanation + that spans multiple lines. From fe72729896cf5fc838d12aafc0c6c54f4e81fdf7 Mon Sep 17 00:00:00 2001 From: Gordon Woodhull Date: Thu, 22 Jan 2026 17:13:06 -0500 Subject: [PATCH 4/7] claude: Add QUARTO_VERAPDF env var and direct JAR invocation - Add QUARTO_VERAPDF environment variable support for custom verapdf invocation (Docker, custom Java setups, etc.) - Use direct Java invocation with quarto-installed JAR by default, avoiding .bat file issues on Windows - Fall back to system verapdf on PATH if JAR not installed - Log info message when QUARTO_VERAPDF override is used - Warn if specified QUARTO_VERAPDF path doesn't exist - Add smoke test validating env var override and validation warnings Co-Authored-By: Claude Opus 4.5 --- src/core/verapdf.ts | 114 ++++++++++++++++++---- tests/smoke/render/render-verapdf.test.ts | 46 +++++++++ 2 files changed, 143 insertions(+), 17 deletions(-) create mode 100644 tests/smoke/render/render-verapdf.test.ts diff --git a/src/core/verapdf.ts b/src/core/verapdf.ts index 7de98d35b97..fd2c977299a 100644 --- a/src/core/verapdf.ts +++ b/src/core/verapdf.ts @@ -12,7 +12,10 @@ import { execProcess } from "./process.ts"; import { which } from "./path.ts"; import { quartoDataDir } from "./appdirs.ts"; import { existsSync } from "../deno_ral/fs.ts"; -import { isWindows } from "../deno_ral/platform.ts"; +import { warnOnce } from "./log.ts"; + +const kVerapdfEnvVar = "QUARTO_VERAPDF"; +const kVerapdfMainClass = "org.verapdf.apps.GreenfieldCliWrapper"; // verapdf flavours (profiles) supported for validation // Maps quarto pdf-standard values to verapdf --flavour values @@ -53,24 +56,101 @@ export function getVerapdfFlavour(standard: string): string | undefined { return kVerapdfFlavours[normalized]; } +export interface VerapdfInvocation { + cmd: string; + args: string[]; +} + /** - * Find verapdf binary path - checks PATH and quarto install location + * Build the verapdf command to execute. + * Priority: + * 1. QUARTO_VERAPDF env var (user override) + * 2. Direct Java invocation with quarto-installed JAR + * 3. System verapdf on PATH (fallback) */ -export async function findVerapdfPath(): Promise { - // First check PATH - const pathResult = await which("verapdf"); - if (pathResult) { - return pathResult; +export async function buildVerapdfCommand( + flavour: string, + pdfPath: string, +): Promise { + // Priority 1: QUARTO_VERAPDF env var + const envOverride = Deno.env.get(kVerapdfEnvVar); + if (envOverride) { + // Check if it looks like a file path and doesn't exist + const looksLikePath = envOverride.startsWith("/") || + envOverride.startsWith("./") || + envOverride.startsWith("~") || + /^[A-Za-z]:[\\/]/.test(envOverride); + + if (looksLikePath && !existsSync(envOverride)) { + warnOnce( + `Specified ${kVerapdfEnvVar} does not exist, using built-in verapdf`, + ); + } else { + info(`Using ${kVerapdfEnvVar}: ${envOverride}`); + return { + cmd: envOverride, + args: ["-f", flavour, pdfPath], + }; + } } - // Check quarto install location + // Priority 2: Direct Java invocation with quarto-installed JAR const quartoVerapdfDir = quartoDataDir("verapdf"); - const quartoVerapdfBin = isWindows - ? join(quartoVerapdfDir, "verapdf.bat") - : join(quartoVerapdfDir, "verapdf"); + const binDir = join(quartoVerapdfDir, "bin"); - if (existsSync(quartoVerapdfBin)) { - return quartoVerapdfBin; + if (existsSync(binDir)) { + // Use direct Java invocation to avoid .bat issues on Windows + const javaPath = await which("java"); + if (javaPath) { + return { + cmd: javaPath, + args: [ + "-classpath", + join(binDir, "*"), + "-Dfile.encoding=UTF8", + "-XX:+IgnoreUnrecognizedVMOptions", + `-Dbasedir=${quartoVerapdfDir}`, + "--add-exports=java.base/sun.security.pkcs=ALL-UNNAMED", + kVerapdfMainClass, + "-f", + flavour, + pdfPath, + ], + }; + } + } + + // Priority 3: System verapdf on PATH + const systemVerapdf = await which("verapdf"); + if (systemVerapdf) { + return { + cmd: systemVerapdf, + args: ["-f", flavour, pdfPath], + }; + } + + return undefined; +} + +/** + * Find verapdf binary path - checks quarto install location and PATH + * @deprecated Use buildVerapdfCommand instead + */ +export async function findVerapdfPath(): Promise { + // Check quarto install location (bin directory for direct Java invocation) + const quartoVerapdfDir = quartoDataDir("verapdf"); + const binDir = join(quartoVerapdfDir, "bin"); + + if (existsSync(binDir)) { + // Return the directory to indicate verapdf is installed + // (actual invocation will use buildVerapdfCommand) + return binDir; + } + + // Fall back to system PATH + const pathResult = await which("verapdf"); + if (pathResult) { + return pathResult; } return undefined; @@ -91,8 +171,8 @@ export async function validatePdf( flavour: string, quiet = false, ): Promise { - const verapdfPath = await findVerapdfPath(); - if (!verapdfPath) { + const invocation = await buildVerapdfCommand(flavour, pdfPath); + if (!invocation) { throw new Error("verapdf not found"); } @@ -106,8 +186,8 @@ export async function validatePdf( } const result = await execProcess({ - cmd: verapdfPath, - args: ["-f", flavour, pdfPath], + cmd: invocation.cmd, + args: invocation.args, stdout: "piped", stderr: "piped", }); diff --git a/tests/smoke/render/render-verapdf.test.ts b/tests/smoke/render/render-verapdf.test.ts new file mode 100644 index 00000000000..e6e73e7440d --- /dev/null +++ b/tests/smoke/render/render-verapdf.test.ts @@ -0,0 +1,46 @@ +/* + * render-verapdf.test.ts + * + * Copyright (C) 2020-2022 Posit Software, PBC + * + * Tests for QUARTO_VERAPDF environment variable override functionality. + */ + +import { existsSync } from "../../../src/deno_ral/fs.ts"; +import { join } from "../../../src/deno_ral/path.ts"; +import { quartoDataDir } from "../../../src/core/appdirs.ts"; +import { isWindows } from "../../../src/deno_ral/platform.ts"; +import { docs } from "../../utils.ts"; +import { printsMessage } from "../../verify.ts"; +import { testRender } from "./render.ts"; + +// Test that QUARTO_VERAPDF override is logged and validation runs correctly +// Uses ua-missing-title.qmd which should produce a validation warning +const input = docs("smoke-all/pdf-standard/ua-missing-title.qmd"); + +// Point QUARTO_VERAPDF to the installed script to test the override path +const verapdfDir = quartoDataDir("verapdf"); +const verapdfScript = isWindows + ? join(verapdfDir, "verapdf.bat") + : join(verapdfDir, "verapdf"); + +testRender(input, "pdf", true, [ + // Verify the QUARTO_VERAPDF override message is logged + printsMessage({ + level: "INFO", + regex: /Using QUARTO_VERAPDF:.*verapdf/, + }), + // Verify that validation actually ran and caught the missing title + printsMessage({ + level: "WARN", + regex: /PDF validation failed for ua-2/, + }), +], { + prereq: async () => { + // Skip if verapdf not installed + return existsSync(verapdfScript); + }, + env: { + QUARTO_VERAPDF: verapdfScript, + }, +}); From df20475828de3682a6826b21f2ea53c933808453 Mon Sep 17 00:00:00 2001 From: Gordon Woodhull Date: Thu, 22 Jan 2026 17:39:15 -0500 Subject: [PATCH 5/7] claude: Filter unsupported PDF standards from verapdf validation When LaTeX doesn't support a PDF standard (e.g., ua-1), it warns and ignores it. Previously, verapdf would still try to validate against the unsupported standard, causing spurious failures. Now the applied standards are stored in metadata during format extras and used for validation, so only standards that were actually applied get validated. Changes: - Add kPdfStandardApplied constant for filtered standards - Store applied standards in extras.metadata during format processing - Read from pandocOptions.format.metadata for validation - Add latex-ua1-filtered.qmd test for filtering behavior - Update latex-multi-standard.qmd to use a-4f + ua-2 (compatible) - Update latex-combined.qmd to use 1.7 + a-2b (simpler test) Co-Authored-By: Claude Opus 4.5 --- src/command/render/output-tex.ts | 9 +++-- src/config/constants.ts | 1 + src/format/pdf/format-pdf.ts | 7 ++++ .../smoke-all/pdf-standard/latex-combined.qmd | 12 +++++-- .../pdf-standard/latex-multi-standard.qmd | 13 +++++-- .../pdf-standard/latex-ua1-filtered.qmd | 34 +++++++++++++++++++ 6 files changed, 68 insertions(+), 8 deletions(-) create mode 100644 tests/docs/smoke-all/pdf-standard/latex-ua1-filtered.qmd diff --git a/src/command/render/output-tex.ts b/src/command/render/output-tex.ts index bb54154caf3..6a0d10deb0d 100644 --- a/src/command/render/output-tex.ts +++ b/src/command/render/output-tex.ts @@ -16,6 +16,7 @@ import { kOutputExt, kOutputFile, kPdfStandard, + kPdfStandardApplied, kTargetFormat, } from "../../config/constants.ts"; import { Format } from "../../config/types.ts"; @@ -83,9 +84,13 @@ export function texToPdfOutputRecipe( const input = join(inputDir, output); const pdfOutput = await pdfGenerator.generate(input, format, pandocOptions); - // Validate PDF against specified standards using verapdf (if available) + // Validate PDF against applied standards using verapdf (if available) + // Use kPdfStandardApplied from pandocOptions.format.metadata (filtered by LaTeX support) + // if available, otherwise fall back to original kPdfStandard list const pdfStandards = asArray( - format.render?.[kPdfStandard] ?? format.metadata?.[kPdfStandard], + pandocOptions.format.metadata?.[kPdfStandardApplied] ?? + format.render?.[kPdfStandard] ?? + format.metadata?.[kPdfStandard], ) as string[]; if (pdfStandards.length > 0) { await validatePdfStandards(pdfOutput, pdfStandards, { diff --git a/src/config/constants.ts b/src/config/constants.ts index 2a64c4193f9..06d186c30b7 100644 --- a/src/config/constants.ts +++ b/src/config/constants.ts @@ -87,6 +87,7 @@ export const kKeepMd = "keep-md"; export const kKeepTex = "keep-tex"; export const kKeepTyp = "keep-typ"; export const kPdfStandard = "pdf-standard"; +export const kPdfStandardApplied = "pdf-standard-applied"; export const kKeepIpynb = "keep-ipynb"; export const kKeepSource = "keep-source"; export const kVariant = "variant"; diff --git a/src/format/pdf/format-pdf.ts b/src/format/pdf/format-pdf.ts index 027b8448593..b38ada6b204 100644 --- a/src/format/pdf/format-pdf.ts +++ b/src/format/pdf/format-pdf.ts @@ -32,6 +32,7 @@ import { kPaperSize, kPdfEngine, kPdfStandard, + kPdfStandardApplied, kReferenceLocation, kShiftHeadingLevelBy, kTblCapLoc, @@ -345,6 +346,12 @@ function createPdfFormat( } extras.pandoc.variables["pdfstandard"] = pdfstandardMap; } + // Store applied standards in metadata for verapdf validation + // (only standards that LaTeX actually supports, not the original list) + if (standards.length > 0) { + extras.metadata = extras.metadata || {}; + extras.metadata[kPdfStandardApplied] = standards; + } } return extras; diff --git a/tests/docs/smoke-all/pdf-standard/latex-combined.qmd b/tests/docs/smoke-all/pdf-standard/latex-combined.qmd index 9a7f139410e..13bfa8fefd0 100644 --- a/tests/docs/smoke-all/pdf-standard/latex-combined.qmd +++ b/tests/docs/smoke-all/pdf-standard/latex-combined.qmd @@ -1,17 +1,23 @@ --- title: "LaTeX version + standards combined" +lang: en format: pdf -pdf-standard: ["1.7", a-2b, ua-1] +pdf-standard: ["1.7", a-2b] keep-tex: true _quarto: tests: + run: + # verapdf validation not available on Windows CI + not_os: windows pdf: noErrors: default ensureLatexFileRegexMatches: - - ['\\DocumentMetadata\{', 'pdfversion=1\.7', 'pdfstandard=\{a-2b,ua-1\}', 'tagging=on'] + - ['\\DocumentMetadata\{', 'pdfversion=1\.7', 'pdfstandard=\{a-2b\}'] - [] --- # Test Document -This tests PDF 1.7 with PDF/A-2b + PDF/UA-1. +This tests explicit PDF 1.7 version with PDF/A-2b standard. + +PDF/A-2b requires PDF version 1.7 max, which matches the explicit version. diff --git a/tests/docs/smoke-all/pdf-standard/latex-multi-standard.qmd b/tests/docs/smoke-all/pdf-standard/latex-multi-standard.qmd index ad76943c42d..65ef625b7d6 100644 --- a/tests/docs/smoke-all/pdf-standard/latex-multi-standard.qmd +++ b/tests/docs/smoke-all/pdf-standard/latex-multi-standard.qmd @@ -1,17 +1,24 @@ --- title: "LaTeX multiple PDF standards" +lang: en format: pdf -pdf-standard: [a-2b, ua-1] +pdf-standard: [a-4f, ua-2] keep-tex: true _quarto: tests: + run: + # verapdf validation not available on Windows CI + not_os: windows pdf: noErrors: default ensureLatexFileRegexMatches: - - ['\\DocumentMetadata\{', 'pdfstandard=\{a-2b,ua-1\}', 'tagging=on'] + - ['\\DocumentMetadata\{', 'pdfstandard=\{a-4f,ua-2\}', 'tagging=on'] - [] --- # Test Document -This tests combined PDF/A-2b + PDF/UA-1 output. +This tests combined PDF/A-4f + PDF/UA-2 output with LaTeX. + +PDF/A-4f (file) and PDF/UA-2 are compatible - both use PDF 2.0 and +pass verapdf validation together. diff --git a/tests/docs/smoke-all/pdf-standard/latex-ua1-filtered.qmd b/tests/docs/smoke-all/pdf-standard/latex-ua1-filtered.qmd new file mode 100644 index 00000000000..a8fab5e543a --- /dev/null +++ b/tests/docs/smoke-all/pdf-standard/latex-ua1-filtered.qmd @@ -0,0 +1,34 @@ +--- +title: "LaTeX filters unsupported ua-1" +lang: en +format: pdf +pdf-standard: [a-2b, ua-1] +keep-tex: true +_quarto: + tests: + run: + # verapdf validation not available on Windows CI + not_os: windows + pdf: + noErrors: default + ensureLatexFileRegexMatches: + # LaTeX receives ua-1 in pdfstandard (it accepts it syntactically) + - ['\\DocumentMetadata\{', 'pdfstandard=\{a-2b,ua-1\}', 'tagging=on'] + - [] + printsMessage: + # ua-1 should be warned about as unsupported + level: WARN + regex: "PDF standard 'ua-1' is not supported by LaTeX" +--- + +# Test: LaTeX Filters Unsupported Standards from Validation + +This test verifies that when `pdf-standard: [a-2b, ua-1]` is specified: + +1. LaTeX receives both standards in `\DocumentMetadata{pdfstandard={a-2b,ua-1}}` +2. A warning is emitted that ua-1 is not supported by LaTeX +3. verapdf validates ONLY against a-2b (not ua-1) +4. The render succeeds because we don't try to validate unsupported standards + +Without filtering, verapdf would fail because the PDF isn't actually PDF/UA-1 compliant +(LaTeX only supports ua-2 for PDF/UA). From a6ea6fa1dde2262699f2a31529ef9ac128a69e92 Mon Sep 17 00:00:00 2001 From: Gordon Woodhull Date: Thu, 22 Jan 2026 18:11:03 -0500 Subject: [PATCH 6/7] claude: Remove pdfstandard conditional from hypersetup.latex Match pandoc's template by removing the conditional that skipped pdflang when pdfstandard was set. Having pdflang in both \hypersetup and \DocumentMetadata is harmless (just redundant). This simplifies comparison for the passthrough branch. Co-Authored-By: Claude Opus 4.5 --- src/resources/formats/pdf/pandoc/hypersetup.latex | 4 ---- 1 file changed, 4 deletions(-) diff --git a/src/resources/formats/pdf/pandoc/hypersetup.latex b/src/resources/formats/pdf/pandoc/hypersetup.latex index 25eff3205e9..ff67655576e 100644 --- a/src/resources/formats/pdf/pandoc/hypersetup.latex +++ b/src/resources/formats/pdf/pandoc/hypersetup.latex @@ -6,12 +6,8 @@ $if(author-meta)$ pdfauthor={$author-meta$}, $endif$ $if(lang)$ -$if(pdfstandard)$ -$-- lang is set in DocumentMetadata instead -$else$ pdflang={$lang$}, $endif$ -$endif$ $if(subject)$ pdfsubject={$subject$}, $endif$ From 6a25bb74a210f700e3419b8f28db37d14e3fc2bd Mon Sep 17 00:00:00 2001 From: Gordon Woodhull Date: Thu, 22 Jan 2026 18:29:22 -0500 Subject: [PATCH 7/7] claude: Fix latex-ua1-filtered test expectations The test expected both standards (a-2b, ua-1) to appear in DocumentMetadata, but quarto filters out unsupported standards before passing to pandoc. Updated test to expect only the supported standard (a-2b) in the output. Co-Authored-By: Claude Opus 4.5 --- .../smoke-all/pdf-standard/latex-ua1-filtered.qmd | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/tests/docs/smoke-all/pdf-standard/latex-ua1-filtered.qmd b/tests/docs/smoke-all/pdf-standard/latex-ua1-filtered.qmd index a8fab5e543a..02494eb92a7 100644 --- a/tests/docs/smoke-all/pdf-standard/latex-ua1-filtered.qmd +++ b/tests/docs/smoke-all/pdf-standard/latex-ua1-filtered.qmd @@ -12,8 +12,8 @@ _quarto: pdf: noErrors: default ensureLatexFileRegexMatches: - # LaTeX receives ua-1 in pdfstandard (it accepts it syntactically) - - ['\\DocumentMetadata\{', 'pdfstandard=\{a-2b,ua-1\}', 'tagging=on'] + # Quarto filters out unsupported ua-1, only a-2b is passed to LaTeX + - ['\\DocumentMetadata\{', 'pdfstandard=\{a-2b\}'] - [] printsMessage: # ua-1 should be warned about as unsupported @@ -21,14 +21,14 @@ _quarto: regex: "PDF standard 'ua-1' is not supported by LaTeX" --- -# Test: LaTeX Filters Unsupported Standards from Validation +# Test: Quarto Filters Unsupported Standards This test verifies that when `pdf-standard: [a-2b, ua-1]` is specified: -1. LaTeX receives both standards in `\DocumentMetadata{pdfstandard={a-2b,ua-1}}` -2. A warning is emitted that ua-1 is not supported by LaTeX +1. Quarto warns that ua-1 is not supported by LaTeX +2. Only supported standards (a-2b) are passed to LaTeX in `\DocumentMetadata{pdfstandard={a-2b}}` 3. verapdf validates ONLY against a-2b (not ua-1) -4. The render succeeds because we don't try to validate unsupported standards +4. The render succeeds because unsupported standards are filtered out Without filtering, verapdf would fail because the PDF isn't actually PDF/UA-1 compliant (LaTeX only supports ua-2 for PDF/UA).