]> mj.ucw.cz Git - diplomky.git/commitdiff
Create xmpdata file from metadata automatically
authorMartin Mares <mj@ucw.cz>
Wed, 21 Feb 2024 12:16:14 +0000 (13:16 +0100)
committerMartin Mares <mj@ucw.cz>
Wed, 21 Feb 2024 17:52:34 +0000 (18:52 +0100)
This requires changing format of \Keywords.

Makefile
metadata.tex
thesis.tex
thesis.xmpdata [deleted file]
title.tex
xmp.tex [new file with mode: 0644]

index 7cfdf1ff77e72a7bb30b42fb5fcd9300774d88c0..5c38e1be08be9f9892c2b70edb363a3e7ba0ead7 100644 (file)
--- 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
index de5c40977603b585deeb29544ebdc2cb4aa15622..6c233613f689f1d5f4b8d60e85154fb0bf19fafa 100644 (file)
@@ -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ší.)
index ecda105106fe35adb3e3c4194d37b20211ca5838..f2491013751f3c3bc8d8768f6eeb29fe46a19478 100644 (file)
@@ -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 (file)
index 908214d..0000000
+++ /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}
index 418bcd3f6b9efeb530ebc4e4fe9b2120eacc1468..71ec6dade907fe78e2184b55ee85b50ea9d685ef 100644 (file)
--- 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 (file)
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
+}