From 0cfa14f72d0c65f68b8590e1d6e95bd92e67e105 Mon Sep 17 00:00:00 2001 From: Martin Mares Date: Wed, 21 Feb 2024 13:16:14 +0100 Subject: [PATCH] Create xmpdata file from metadata automatically This requires changing format of \Keywords. --- Makefile | 6 +++--- metadata.tex | 19 ++++++++++++++----- thesis.tex | 9 ++++++--- thesis.xmpdata | 7 ------- title.tex | 4 ++-- xmp.tex | 33 +++++++++++++++++++++++++++++++++ 6 files changed, 58 insertions(+), 20 deletions(-) delete mode 100644 thesis.xmpdata create mode 100644 xmp.tex diff --git a/Makefile b/Makefile index 7cfdf1f..5c38e1b 100644 --- a/Makefile +++ b/Makefile @@ -1,9 +1,9 @@ -export TEXINPUTS=tex//: +export TEXINPUTS=../tex//: all: thesis.pdf abstract.pdf # LaTeX je potreba spustit nekolikrat, aby spravne spocital odkazy -thesis.pdf: thesis.tex $(wildcard *.tex) literatura.bib thesis.xmpdata +thesis.pdf: thesis.tex $(wildcard *.tex) literatura.bib pdflatex $< bibtex thesis pdflatex $< @@ -13,5 +13,5 @@ abstract.pdf: abstract.tex abstract.xmpdata pdflatex $< clean: - rm -f *.log *.dvi *.aux *.toc *.lof *.lot *.out *.bbl *.blg *.xmpi + rm -f *.log *.dvi *.aux *.toc *.lof *.lot *.out *.bbl *.blg *.xmpi *.xmpdata rm -f thesis.pdf abstract.pdf diff --git a/metadata.tex b/metadata.tex index de5c409..6c23361 100644 --- a/metadata.tex +++ b/metadata.tex @@ -58,17 +58,26 @@ vám nosil pizzu a vařil čaj apod.)} \xxx{Abstract.} } -% 3 až 5 klíčových slov (doporučeno), každé uzavřeno ve složených závorkách. +% 3 až 5 klíčových slov (doporučeno) oddělených \sep % Hodí se pro nalezení práce podle tématu. -\def\Keywords{% -\xxx{{klíčová} {slova}} +\def\ThesisKeywords{% +\xxx{klíčové slovo\sep složitější fráze} \X{obvykle 3 až 5 klíčových slov nebo sousloví} } -\def\KeywordsEN{ -\xxx{{key} {words}} +\def\ThesisKeywordsEN{ +\xxx{key\sep words} } +% Pokud některá z položek metadat obsahuje TeXové řídící sekvence, je potřeba +% dodat i verzi v obyčejném textu, která se objeví v metadatech formátu XMP +% zabudovaných do výstupního souboru PDF. Pokud si nejste jistí, prohlédněte si +% vygenerovaný soubor thesis.xmpdata. +\def\ThesisAuthorXMP{\ThesisAuthor} +\def\ThesisTitleXMP{\ThesisTitle} +\def\ThesisKeywordsXMP{\ThesisKeywords} +\def\AbstractXMP{\Abstract} + % Máte-li dlouhý abstrakt a nechceme se mu vejít na informační stranu, % můžete použít toto nastavení ke zmenšení písma informační strany. % (Uvažte nicméně zkrácení abstraktu, to je často lepší.) diff --git a/thesis.tex b/thesis.tex index ecda105..f249101 100644 --- a/thesis.tex +++ b/thesis.tex @@ -1,5 +1,11 @@ %%% Hlavní soubor. Zde se definují základní parametry a odkazuje se na ostatní části. %%% +% Meta-data o práci (je nutno upravit) +\input metadata.tex + +% Vygenerujeme metadata ve formátu XMP pro použití balíčkem pdfx +\input xmp.tex + %% Verze pro jednostranný tisk: % Okraje: levý 40mm, pravý 25mm, horní a dolní 25mm % (ale pozor, LaTeX si sám přidává 1in) @@ -63,9 +69,6 @@ \hypersetup{unicode} \hypersetup{breaklinks=true} -% Meta-data o práci (je nutno upravit) -\include{metadata.tex} - % Definice různých užitečných maker (viz popis uvnitř souboru) \include{macros} diff --git a/thesis.xmpdata b/thesis.xmpdata deleted file mode 100644 index 908214d..0000000 --- a/thesis.xmpdata +++ /dev/null @@ -1,7 +0,0 @@ -% Metadata k uložení do PDF, podrobnější popis viz dokumentace balíčku pdfx. - -\Author{Jméno Příjmení} -\Title{Název práce} -\Keywords{klíčová slova\sep další taková\sep ještě jiná} -\Subject{Abstrakt práce} -\Publisher{Univerzita Karlova} diff --git a/title.tex b/title.tex index 418bcd3..71ec6da 100644 --- a/title.tex +++ b/title.tex @@ -135,7 +135,7 @@ Abstrakt: \Abstract Klíčová slova: -\Keywords +{\def\sep{\unskip, }\ThesisKeywords} \vss}\nobreak\vbox to 0.49\vsize{ \setlength\parindent{0mm} @@ -157,7 +157,7 @@ Abstract: \AbstractEN Keywords: -\KeywordsEN +{\def\sep{\unskip, }\ThesisKeywordsEN} \vss} diff --git a/xmp.tex b/xmp.tex new file mode 100644 index 0000000..d1a6daa --- /dev/null +++ b/xmp.tex @@ -0,0 +1,33 @@ +% Generate XMP metadata file (*.xmpdata) from thesis metadata +% The format of the xmpdata file is described in the documentation +% of the "pdfx" LaTeX package. + +{ +% Define \percenthack macro that expands to a literal "%" character. +% (We can use neither \char\`% nor \% as they are interpreted by TeX's +% main processor which is too late for our purposes.) +\catcode`\%=12 +\global\edef\percenthack{%} +} + +{ +% Override some macros +\def\xxx#1{#1} +\def\X#1{} +\def\sep{\string\sep\space} +\let~=\space + +% Generate *.xmpdata +% It is tempting to use LaTeX's filecontents environment, but it does not +% expand macros. We need to dive deeper... +\newwrite\xmp +\immediate\openout\xmp=\jobname.xmpdata +\immediate\write\xmp{\percenthack\space Generated automatically from metadata.tex, please don't edit here.} +\def\xmpitem#1#2{\immediate\write\xmp{\string#1{#2}}} +\xmpitem\Author\ThesisAuthorXMP +\xmpitem\Title\ThesisTitleXMP +\xmpitem\Keywords\ThesisKeywordsXMP +\xmpitem\Subject\AbstractXMP +\xmpitem\Publisher{Charles University} +\immediate\closeout\xmp +} -- 2.39.2