chore(pdf): pdf generation working with texlive-basic-scheme

This commit is contained in:
Steffen Jost 2022-06-09 11:59:19 +02:00
parent c0eafdd1c8
commit 77f09f05f5
6 changed files with 105 additions and 120 deletions

View File

@ -22,12 +22,14 @@ let
uniworx.uniworx.components.exes.uniworx uniworx.uniworx.components.exes.uniworx
prev.dockerTools.binSh findutils coreutils prev.dockerTools.binSh findutils coreutils
iana-etc iana-etc
# for PDFLaTeX for pandoc PDF creation # for PDF creation with Pandoc and LuaTeX
cups # needed for interface with print center cups # needed for interface with print center
#texlive.combined.scheme-medium # too large for container in LMU build environment. #texlive.combined.scheme-medium # too large for container in LMU build environment.
(texlive.combine { (texlive.combine {
inherit (texlive) scheme-basic xcolor "scrlttr2" inherit (texlive) scheme-basic
# lualatex babel-german babel-english booktabs
enumitem eurosym koma-script parskip xcolor
# required fro LuaTeX
luatexbase unicode-math lualatex-math selnolig luatexbase unicode-math lualatex-math selnolig
; ;
}) })

View File

@ -74,12 +74,17 @@ in pkgs.mkShell {
++ (with pkgs; ++ (with pkgs;
[ nodejs-14_x postgresql_12 openldap google-chrome exiftool memcached minio minio-client [ nodejs-14_x postgresql_12 openldap google-chrome exiftool memcached minio minio-client
gup skopeo gup skopeo
texlive.combined.scheme-medium #texlive.combined.scheme-full # works
#texlive.combined.scheme-medium
# texlive.combined.scheme-small # texlive.combined.scheme-small
#(texlive.combine { (texlive.combine {
# inherit (texlive) scheme-basic xcolor scrlttr2 luatexbase unicode-math lualatex-math selnolig; inherit (texlive) scheme-basic
# ERROR: attribute 'scrlttr2' missing - gleicher Fehler kommt bei ausgedachten Namen, auch ohne Zahl am Ende babel-german babel-english booktabs
#}) enumitem eurosym koma-script parskip xcolor
# required fro LuaTeX
luatexbase lualatex-math unicode-math selnolig
;
})
] ]
) )
++ (with pkgs.haskellPackages; [ stack yesod-bin hlint cabal-install weeder profiteur ]); ++ (with pkgs.haskellPackages; [ stack yesod-bin hlint cabal-install weeder profiteur ]);

View File

@ -297,7 +297,7 @@ getAdminTestPdfR = do
doc1 <- P.readMarkdown readeropts md doc1 <- P.readMarkdown readeropts md
doc2 <- P.writeMarkdown writeropts1 doc1 doc2 <- P.writeMarkdown writeropts1 doc1
doc3 <- P.readMarkdown readeropts doc2 doc3 <- P.readMarkdown readeropts doc2
P.makePDF "pdflatex" texopts P.writeLaTeX writeropts2 $ P.makePDF "lualatex" texopts P.writeLaTeX writeropts2 $
P.setDate (P.text . tshow $ utctDay now) doc3 P.setDate (P.text . tshow $ utctDay now) doc3
case content of case content of
Right (Right bs) -> do Right (Right bs) -> do

View File

@ -10,8 +10,51 @@
pagenumber=botright % show pagenumbers on bottom right pagenumber=botright % show pagenumbers on bottom right
]{scrlttr2} ]{scrlttr2}
\usepackage[ngerman]{babel} \PassOptionsToPackage{hyphens}{url}
\PassOptionsToPackage{unicode$for(hyperrefoptions)$,$hyperrefoptions$$endfor$}{hyperref}
\IfFileExists{xurl.sty}{\usepackage{xurl}}{} % add URL line breaks if available
\IfFileExists{bookmark.sty}{\usepackage{bookmark}}{\usepackage{hyperref}}
\hypersetup{
$if(title-meta)$
pdftitle={$title-meta$},
$endif$
$if(author-meta)$
pdfauthor={$author-meta$},
$endif$
$if(lang)$
pdflang={$lang$},
$endif$
$if(subject)$
pdfsubject={$subject$},
$endif$
$if(keywords)$
pdfkeywords={$for(keywords)$$keywords$$sep$, $endfor$},
$endif$
}
\usepackage{url}
\usepackage{iftex} \usepackage{iftex}
%\usepackage[ngerman]{babel}
$if(lang)$
\ifLuaTeX
\usepackage[bidi=basic]{babel}
\else
\usepackage[bidi=default]{babel}
\fi
\babelprovide[main,import]{$babel-lang$}
$for(babel-otherlangs)$
\babelprovide[import]{$babel-otherlangs$}
$endfor$
% get rid of language-specific shorthands (see #6817):
\let\LanguageShortHands\languageshorthands
\def\languageshorthands#1{}
$endif$
\ifLuaTeX
\usepackage{selnolig} % disable illegal ligatures
\fi
\ifPDFTeX \ifPDFTeX
\usepackage[$if(fontenc)$$fontenc$$else$T1$endif$]{fontenc} \usepackage[$if(fontenc)$$fontenc$$else$T1$endif$]{fontenc}
\usepackage[utf8]{inputenc} \usepackage[utf8]{inputenc}
@ -36,7 +79,6 @@ $endif$
\usepackage[right]{eurosym} \usepackage[right]{eurosym}
\usepackage[hyphens]{url}
\usepackage{enumitem} \usepackage{enumitem}
\makeatletter \makeatletter
@ -51,11 +93,11 @@ $endif$
\providecommand{\tightlist}{% \providecommand{\tightlist}{%
\setlength{\itemsep}{0pt}\setlength{\parskip}{0pt}} \setlength{\itemsep}{0pt}\setlength{\parskip}{0pt}}
\begin{document} \begin{document}%
\setkomavar{fromname}{$author$} \setkomavar{fromname}{$author$}%
\renewcommand*{\raggedsignature}{\raggedright} \renewcommand*{\raggedsignature}{\raggedright}%
\setkomavar{fromaddress}{ \setkomavar{fromaddress}{%
$for(return-address)$ $for(return-address)$%
$return-address$$sep$\\ $return-address$$sep$\\
$endfor$ $endfor$
} }
@ -76,14 +118,6 @@ $endif$
\opening{$opening$} \opening{$opening$}
This paragraph is fixed within the template.
Not sure if this is the way to go though.
\begin{description}[leftmargin=!,labelwidth=1.5cm,labelindent=1cm]
\item[Login] $login$
\item[Pin] $pin$
\end{description}
$body$ $body$
\closing{$closing$} \closing{$closing$}

View File

@ -13,11 +13,12 @@ closing: |
Mit freundlichen Grüßen, Mit freundlichen Grüßen,
Ihre Fahrerausbildung. Ihre Fahrerausbildung.
encludes: encludes:
hyperrefoptions: hidelinks
### Metadaten, welche automatisch ersetzt werden: ### Metadaten, welche automatisch ersetzt werden:
date: 11.11.1111 date: 11.11.1111
lang: de-de lang: de-de
is-de: NULL is-de: true
lms-login: 123456 lms-login: 123456
lms-pin: abcdef lms-pin: abcdef
# Emfpänger # Emfpänger
@ -28,7 +29,8 @@ address:
- Musterstraße 11 - Musterstraße 11
- 12345 Musterstadt - 12345 Musterstadt
... ...
$if(is-de)$
<!-- deutsche Version des Briefes -->
die Gültigkeit Ihres Vorfeldführerscheines läuft demnächst ab. die Gültigkeit Ihres Vorfeldführerscheines läuft demnächst ab.
Durch die erfolgreiche Teilnahme an einem E-Lernen können Sie Durch die erfolgreiche Teilnahme an einem E-Lernen können Sie
die Gültigkeit um 2 Jahre verlängern. Verwenden Sie dazu folgende die Gültigkeit um 2 Jahre verlängern. Verwenden Sie dazu folgende
@ -44,11 +46,11 @@ Name:
Login Login
: $login$ : $lms-login$
Pin Pin
: $pin$ : $lms-pin$
Sobald die Frist abgelaufen ist, muss zur Wiedererlangung des Vorfeldführerscheins Sobald die Frist abgelaufen ist, muss zur Wiedererlangung des Vorfeldführerscheins
@ -56,3 +58,36 @@ erneut der Grundkurs bei der Fahrerausbildung absolviert werden.
Bei Fragen können Sie sich gerne an das Team der Fahrerausbildung wenden. Bei Fragen können Sie sich gerne an das Team der Fahrerausbildung wenden.
$else$
<!-- englische Version des Briefes -->
your apron diving licence is about to expire soon.
You may renew your apron driving licence by two years through successfully
completing an e-learning course. Please use the following login data.
URL
: <http://www.fraport.de/fahrerausbildung>
Name:
: $name$
Login
: $lms-login$
Pin
: $lms-pin$
Should your apron driving licence expire before completing this
e-learning course, then a renewal requires your full participation
of the basic training course again.
Please do not hesitate to contact the Fraport driving school team, if you need any assistance.
$endif$

View File

@ -1,91 +0,0 @@
---
### Metadaten, welche hier eingestellt werden:
# Absender
subject: Verlängerung Vorfeldführerschein
author: Fraport AG - Fahrerausbildung (AVN-AR)
phone: +49 69 690-30306
email: fahrerausbildung@fraport.de
place: Frankfurt/Main
return-address:
- 60547 Frankfurt
opening: Sehr geehrte Damen und Herren,
closing: |
Mit freundlichen Grüßen,
Ihre Fahrerausbildung.
encludes: null
### Metadaten, welche automatisch ersetzt werden:
date: 11.11.1111
lang: de-de
is-de: NULL
lms-login: 123456
lms-pin: abcdef
# Emfpänger
name: E. M. Pfänger
address:
- Musterfirma GmbH
- E. M. Pfänger
- Musterstraße 11
- 12345 Musterstadt
...
$if(is-de)$
<!-- deutsche Version des Briefes -->
[comment]: <> (This is a comment, it will not be included)
die Gültigkeit Ihres Vorfeldführerscheines läuft demnächst ab.
Durch die erfolgreiche Teilnahme an einem E-Lernen können Sie
die Gültigkeit um 2 Jahre verlängern. Verwenden Sie dazu folgende
Login-Daten.
URL
: <http://www.fraport.de/fahrerausbildung>
Name:
: $name$
Login
: $login$
Pin
: $pin$
Sobald die Frist abgelaufen ist, muss zur Wiedererlangung des Vorfeldführerscheins
erneut der Grundkurs bei der Fahrerausbildung absolviert werden.
Bei Fragen können Sie sich gerne an das Team der Fahrerausbildung wenden.
$else$
<!-- englische Version des Briefes -->
your apron diving licence is about to expire soon.
You may renew your apron driving licence by two years through successfully
completing an e-learning course. Please use the following login data.
URL
: <http://www.fraport.de/fahrerausbildung>
Name:
: $name$
Login
: $login$
Pin
: $pin$
Should your apron driving licence expire before completing this
e-learning course, then a renewal requires your full participation
of the basic training course again.
Please do not hesitate to contact the Fraport driving school team, if you need any assistance.
$endif$