From da4b431e2a8bffb220939504fb267efc9fcbefb7 Mon Sep 17 00:00:00 2001 From: surtur Date: Wed, 23 Aug 2023 14:18:45 +0200 Subject: [PATCH] tex: ultimately tune PDF/A-3b compat incl. FiraCode --- tex/UTB.tex | 52 ++++++++++++++++++++++++++++++++++++++++------------ 1 file changed, 40 insertions(+), 12 deletions(-) diff --git a/tex/UTB.tex b/tex/UTB.tex index fa2f6f6..a17da6a 100644 --- a/tex/UTB.tex +++ b/tex/UTB.tex @@ -12,15 +12,19 @@ \usepackage[czech,english]{babel} % volba při kompilaci latexem (vyžaduje texlive-lang), zakomentovano, nastavovanu prikazem \nastavjazyk % \usepackage{draftwatermark} \usepackage{iftex} + % \iflualatex \OR \ifxetex -\usepackage[T1]{fontspec} +\usepackage{fontspec} % \fi + % \usepackage{lmodern} % \setmainfont{Latin Modern Roman} + % \ifpdflatex \OR \ifpdftex % \usepackage[T1]{fontenc}% definice vnitřního kódování % \usepackage[utf8]{inputenc} % slouží pro definici kódování (při problémech zkusit zaměnit utf8x za utf8) % \fi + % \usepackage[usenames,dvipsnames]{color} % umožňuje použití barev \usepackage[usenames,dvipsnames,rgb]{xcolor} % better support for ICC profiles. \usepackage{graphicx} % rozšíření práce s grafikou @@ -44,28 +48,46 @@ \usepackage{listings} % code environments %\usepackage{indentfirst} % definuje odsazení prvního řádku odstavce %\usepackage{makeidx} % vytvoří rejstřík -% \usepackage[pdftex,pdfa,hidelinks,breaklinks]{hyperref} % vytváří křížové odkazy -\usepackage[pdfa,hidelinks]{hyperref} % vytváří křížové odkazy %\usepackage{multicol} % vícesloupcová sazba +% \usepackage[pdftex,pdfa,hidelinks,breaklinks]{hyperref} % vytváří křížové odkazy +\usepackage[pdfa,hidelinks,hypertexnames=false]{hyperref} + \usepackage{flafter} % zajistí, aby se plovoucí objekty objevovali až za jejich umístěním v textu \usepackage{chngcntr} % Umožňuje změnu nastavení číslování obrázků, tabulek i rovnic \usepackage{etoolbox} % Tool-box for LaTeX programmers \usepackage[labelsep=space,tableposition=bottom,justification=centering]{caption} % Přenastavení popisků u figur a tabulek -\usepackage{xmpincl} % Pro aplikaci standardu PDF/A + \usepackage{hyperxmp}[2020/03/01] % Pro aplikaci standardu PDF/A +% https://tex.stackexchange.com/a/474336 +\pdfvariable omitcidset=1 + +% either use pdfx (with xmpincl) or hyperxmp, but not both simultaneously. +% \usepackage{xmpincl} % pdf in case we're using the provided xmpdata file. +% \usepackage[a-2b,mathxmp]{pdfx}[2018/12/22] % ignore the misadvice that this needs to be placed before hyperref + \usepackage{pdfpages} % include raw PDF files directly \usepackage{makecell} % multiline table cells \usepackage{colorprofiles} -% \usepackage[a-2b,mathxmp]{pdfx}[2018/12/22] % ignore the misadvice that this needs to be placed before hyperref % needs fontspec, i.e. also needs lualatex (or xelatex), not pdflatex. +% ref: https://github.com/tonsky/FiraCode/wiki/LaTeX-instructions % \iflualatex \OR \ifxelatex \setmonofont{Fira Code}[ Scale=MatchLowercase, + BoldItalicFont={}, + ItalicFont={}, + SmallCapsFont={}, Contextuals=Alternate % Activate the calt feature ] +% reset verbatim's ligature list. +\makeatletter +\def\verbatim@nolig@list{} +\makeatother % \fi -\usepackage{lstfiracode} % https://ctan.org/pkg/lstfiracode + +% no need for the package if FiraCode is installed on the system. +% \usepackage{lstfiracode} % https://ctan.org/pkg/lstfiracode + % listings settings. \lstset{ %style=FiraCodeStyle, % Use predefined FiraCodeStyle @@ -159,7 +181,11 @@ % Prerequisites: pdflatex, hyperref, xmpincl % pdfTeX at least in version 1.40.15 (in Linux add repository ppa:jonathonf/texlive, update and upgrade texlive-full) % -% Validator: http://pdfa.k.utb.cz:8080/ https://www.pdf-online.com/osa/validate.aspx +% Validator: http://pdfa.k.utb.cz:8080/ +% other validators: +% * https://bfo.com/blog/2017/11/08/verify_pdfa_online/ +% * https://www.pdfforge.org/online/en/validate-pdfa +% * https://www.pdf-online.com/osa/validate.aspx % \convertDate converts D:20080419103507+02'00' to 2008-04-19T10:35:07+02:00 \def\convertDate{% @@ -222,10 +248,11 @@ pdflang=la, pdfapart=3, pdfaconformance=B, - pdflang={cz} + pdflang={cz}, % use breaklinks to make have long bibtex urls broken % otherwise they go over the margin (known issue) - breaklinks=true + breaklinks=true, + bookmarksnumbered } \else \ifenglish \providecommand{\xmpTitle}{\nazeven} @@ -243,9 +270,10 @@ pdflang={en-GB}, % use breaklinks to make have long bibtex urls broken % otherwise they go over the margin (known issue) - breaklinks=true + breaklinks=true, + bookmarksnumbered } - \fi + \fi \fi %% https://tex.stackexchange.com/questions/42641/can-pdflatex-produce-pdf-a?noredirect=1&lq=1 %% https://webpages.tuni.fi/latex/pdfa-guide.pdf @@ -622,7 +650,7 @@ \addcontentsline{toc}{section}{List of Listings} \@restonecolfalse\if@twocolumn\@restonecoltrue\onecolumn\fi \section*{LIST OF LISTINGS} - \fi + \fi \fi \@mkboth{LIST OF LISTINGS}{LIST OF LISTINGS} \@starttoc{lol}\if@restonecol\twocolumn\fi \pagestyle{empty}