export: génère le polycopié en PDF avec `paged.js`
- Ajoute un modèle HTML contenant les éléments nécessaires pour utiliser `paged.js` dans un navigateur web. - Ajoute une feuille de style pour définir les styles utilisés pour le PDF. - Document l'usage de `paged.js`. Co-Authored-by: iGor milhit <igor.milhit@unige.ch>
parent
26dc23d101
commit
0c1aaf4f57
15
README.md
15
README.md
|
@ -41,6 +41,8 @@ Pour pouvoir utiliser ce projet, il est nécessaire :
|
||||||
|
|
||||||
## Convertir le support de cours en PDF
|
## Convertir le support de cours en PDF
|
||||||
|
|
||||||
|
### Avec LaTeX
|
||||||
|
|
||||||
Pour convertir le support de cours (`polycopié.md`) au format PDF, il faut
|
Pour convertir le support de cours (`polycopié.md`) au format PDF, il faut
|
||||||
utiliser la commande suivante :
|
utiliser la commande suivante :
|
||||||
|
|
||||||
|
@ -53,6 +55,19 @@ pandoc --citeproc -t pdf --pdf-engine=tectonic -o polycopié.pdf polycopié.md
|
||||||
PDF, ici `tectonic`, mais `xelatex` devrait fonctionner aussi, si il est
|
PDF, ici `tectonic`, mais `xelatex` devrait fonctionner aussi, si il est
|
||||||
installé.
|
installé.
|
||||||
|
|
||||||
|
### Avec `paged.js`
|
||||||
|
|
||||||
|
```bash
|
||||||
|
pandoc --self-contained --template=template.html --css=polycopié.css \
|
||||||
|
--citeproc --t html -o test.html polycopié.md
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
```bash
|
||||||
|
pandoc --self-contained --css=polycopié.css \
|
||||||
|
--citeproc --t pdf --pdf-engine=pagedjs-cli -o test.html polycopié.md
|
||||||
|
```
|
||||||
|
|
||||||
## Déroulé de la présentation
|
## Déroulé de la présentation
|
||||||
|
|
||||||
Le fichier `déroulé.md` décrit le déroulé de la présentation. Si une impression
|
Le fichier `déroulé.md` décrit le déroulé de la présentation. Si une impression
|
||||||
|
|
|
@ -0,0 +1,180 @@
|
||||||
|
/* CSS for Paged.js interface – v0.4 */
|
||||||
|
|
||||||
|
/* Change the look */
|
||||||
|
:root {
|
||||||
|
--color-background: whitesmoke;
|
||||||
|
--color-pageSheet: #cfcfcf;
|
||||||
|
--color-pageBox: violet;
|
||||||
|
--color-paper: white;
|
||||||
|
--color-marginBox: transparent;
|
||||||
|
--pagedjs-crop-color: black;
|
||||||
|
--pagedjs-crop-shadow: white;
|
||||||
|
--pagedjs-crop-stroke: 1px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* To define how the book look on the screen: */
|
||||||
|
@media screen, pagedjs-ignore {
|
||||||
|
body {
|
||||||
|
background-color: var(--color-background);
|
||||||
|
}
|
||||||
|
|
||||||
|
.pagedjs_pages {
|
||||||
|
display: flex;
|
||||||
|
width: calc(var(--pagedjs-width) * 2);
|
||||||
|
flex: 0;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
margin: 0 auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.pagedjs_page {
|
||||||
|
background-color: var(--color-paper);
|
||||||
|
box-shadow: 0 0 0 1px var(--color-pageSheet);
|
||||||
|
margin: 0;
|
||||||
|
flex-shrink: 0;
|
||||||
|
flex-grow: 0;
|
||||||
|
margin-top: 10mm;
|
||||||
|
}
|
||||||
|
|
||||||
|
.pagedjs_first_page {
|
||||||
|
margin-left: var(--pagedjs-width);
|
||||||
|
}
|
||||||
|
|
||||||
|
.pagedjs_page:last-of-type {
|
||||||
|
margin-bottom: 10mm;
|
||||||
|
}
|
||||||
|
|
||||||
|
.pagedjs_pagebox{
|
||||||
|
box-shadow: 0 0 0 1px var(--color-pageBox);
|
||||||
|
}
|
||||||
|
|
||||||
|
.pagedjs_left_page{
|
||||||
|
z-index: 20;
|
||||||
|
width: calc(var(--pagedjs-bleed-left) + var(--pagedjs-pagebox-width))!important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.pagedjs_left_page .pagedjs_bleed-right .pagedjs_marks-crop {
|
||||||
|
border-color: transparent;
|
||||||
|
}
|
||||||
|
|
||||||
|
.pagedjs_left_page .pagedjs_bleed-right .pagedjs_marks-middle{
|
||||||
|
width: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.pagedjs_right_page{
|
||||||
|
z-index: 10;
|
||||||
|
position: relative;
|
||||||
|
left: calc(var(--pagedjs-bleed-left)*-1);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* show the margin-box */
|
||||||
|
|
||||||
|
.pagedjs_margin-top-left-corner-holder,
|
||||||
|
.pagedjs_margin-top,
|
||||||
|
.pagedjs_margin-top-left,
|
||||||
|
.pagedjs_margin-top-center,
|
||||||
|
.pagedjs_margin-top-right,
|
||||||
|
.pagedjs_margin-top-right-corner-holder,
|
||||||
|
.pagedjs_margin-bottom-left-corner-holder,
|
||||||
|
.pagedjs_margin-bottom,
|
||||||
|
.pagedjs_margin-bottom-left,
|
||||||
|
.pagedjs_margin-bottom-center,
|
||||||
|
.pagedjs_margin-bottom-right,
|
||||||
|
.pagedjs_margin-bottom-right-corner-holder,
|
||||||
|
.pagedjs_margin-right,
|
||||||
|
.pagedjs_margin-right-top,
|
||||||
|
.pagedjs_margin-right-middle,
|
||||||
|
.pagedjs_margin-right-bottom,
|
||||||
|
.pagedjs_margin-left,
|
||||||
|
.pagedjs_margin-left-top,
|
||||||
|
.pagedjs_margin-left-middle,
|
||||||
|
.pagedjs_margin-left-bottom {
|
||||||
|
box-shadow: 0 0 0 1px inset var(--color-marginBox);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* uncomment this part for recto/verso book : ------------------------------------ */
|
||||||
|
|
||||||
|
/*
|
||||||
|
.pagedjs_pages {
|
||||||
|
flex-direction: column;
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.pagedjs_first_page {
|
||||||
|
margin-left: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.pagedjs_page {
|
||||||
|
margin: 0 auto;
|
||||||
|
margin-top: 10mm;
|
||||||
|
}
|
||||||
|
|
||||||
|
.pagedjs_left_page{
|
||||||
|
width: calc(var(--pagedjs-bleed-left) + var(--pagedjs-pagebox-width) + var(--pagedjs-bleed-left))!important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.pagedjs_left_page .pagedjs_bleed-right .pagedjs_marks-crop{
|
||||||
|
border-color: var(--pagedjs-crop-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
.pagedjs_left_page .pagedjs_bleed-right .pagedjs_marks-middle{
|
||||||
|
width: var(--pagedjs-cross-size)!important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.pagedjs_right_page{
|
||||||
|
left: 0;
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/*--------------------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/* uncomment this par to see the baseline : -------------------------------------------*/
|
||||||
|
|
||||||
|
|
||||||
|
/* .pagedjs_pagebox {
|
||||||
|
--pagedjs-baseline: 22px;
|
||||||
|
--pagedjs-baseline-position: 5px;
|
||||||
|
--pagedjs-baseline-color: cyan;
|
||||||
|
background: linear-gradient(transparent 0%, transparent calc(var(--pagedjs-baseline) - 1px), var(--pagedjs-baseline-color) calc(var(--pagedjs-baseline) - 1px), var(--pagedjs-baseline-color) var(--pagedjs-baseline)), transparent;
|
||||||
|
background-size: 100% var(--pagedjs-baseline);
|
||||||
|
background-repeat: repeat-y;
|
||||||
|
background-position-y: var(--pagedjs-baseline-position);
|
||||||
|
} */
|
||||||
|
|
||||||
|
|
||||||
|
/*--------------------------------------------------------------------------------------*/
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/* Marks (to delete when merge in paged.js) */
|
||||||
|
|
||||||
|
.pagedjs_marks-crop{
|
||||||
|
z-index: 999999999999;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
.pagedjs_bleed-top .pagedjs_marks-crop,
|
||||||
|
.pagedjs_bleed-bottom .pagedjs_marks-crop{
|
||||||
|
box-shadow: 1px 0px 0px 0px var(--pagedjs-crop-shadow);
|
||||||
|
}
|
||||||
|
|
||||||
|
.pagedjs_bleed-top .pagedjs_marks-crop:last-child,
|
||||||
|
.pagedjs_bleed-bottom .pagedjs_marks-crop:last-child{
|
||||||
|
box-shadow: -1px 0px 0px 0px var(--pagedjs-crop-shadow);
|
||||||
|
}
|
||||||
|
|
||||||
|
.pagedjs_bleed-left .pagedjs_marks-crop,
|
||||||
|
.pagedjs_bleed-right .pagedjs_marks-crop{
|
||||||
|
box-shadow: 0px 1px 0px 0px var(--pagedjs-crop-shadow);
|
||||||
|
}
|
||||||
|
|
||||||
|
.pagedjs_bleed-left .pagedjs_marks-crop:last-child,
|
||||||
|
.pagedjs_bleed-right .pagedjs_marks-crop:last-child{
|
||||||
|
box-shadow: 0px -1px 0px 0px var(--pagedjs-crop-shadow);
|
||||||
|
}
|
|
@ -0,0 +1,21 @@
|
||||||
|
@media print{
|
||||||
|
@page {
|
||||||
|
size: A4;
|
||||||
|
margin: 10mm 15mm;
|
||||||
|
bleed: 6mm;
|
||||||
|
@bottom-center {
|
||||||
|
content: counter(page)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@page:left {
|
||||||
|
margin-left: 25mm;
|
||||||
|
margin-right: 15mm;
|
||||||
|
}
|
||||||
|
@page:right {
|
||||||
|
margin-left: 15mm;
|
||||||
|
margin-right: 25mm;
|
||||||
|
}
|
||||||
|
h2 {
|
||||||
|
break-before: page;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,73 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml" lang="$lang$" xml:lang="$lang$"$if(dir)$ dir="$dir$"$endif$>
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8" />
|
||||||
|
<meta name="generator" content="pandoc" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" />
|
||||||
|
$for(author-meta)$
|
||||||
|
<meta name="author" content="$author-meta$" />
|
||||||
|
$endfor$
|
||||||
|
$if(date-meta)$
|
||||||
|
<meta name="dcterms.date" content="$date-meta$" />
|
||||||
|
$endif$
|
||||||
|
$if(keywords)$
|
||||||
|
<meta name="keywords" content="$for(keywords)$$keywords$$sep$, $endfor$" />
|
||||||
|
$endif$
|
||||||
|
$if(description-meta)$
|
||||||
|
<meta name="description" content="$description-meta$" />
|
||||||
|
$endif$
|
||||||
|
<title>$if(title-prefix)$$title-prefix$ – $endif$$pagetitle$</title>
|
||||||
|
<style>
|
||||||
|
$styles.html()$
|
||||||
|
</style>
|
||||||
|
$for(css)$
|
||||||
|
<link rel="stylesheet" href="$css$" />
|
||||||
|
$endfor$
|
||||||
|
<link href="interface.css" rel="stylesheet" type="text/css" />
|
||||||
|
<script src="https://unpkg.com/pagedjs/dist/paged.polyfill.js"></script>
|
||||||
|
$for(header-includes)$
|
||||||
|
$header-includes$
|
||||||
|
$endfor$
|
||||||
|
$if(math)$
|
||||||
|
$math$
|
||||||
|
$endif$
|
||||||
|
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
$for(include-before)$
|
||||||
|
$include-before$
|
||||||
|
$endfor$
|
||||||
|
$if(title)$
|
||||||
|
<header id="title-block-header">
|
||||||
|
<h1 class="title">$title$</h1>
|
||||||
|
$if(subtitle)$
|
||||||
|
<p class="subtitle">$subtitle$</p>
|
||||||
|
$endif$
|
||||||
|
$for(author)$
|
||||||
|
<p class="author">$author$</p>
|
||||||
|
$endfor$
|
||||||
|
$if(date)$
|
||||||
|
<p class="date">$date$</p>
|
||||||
|
$endif$
|
||||||
|
$if(abstract)$
|
||||||
|
<div class="abstract">
|
||||||
|
<div class="abstract-title">$abstract-title$</div>
|
||||||
|
$abstract$
|
||||||
|
</div>
|
||||||
|
$endif$
|
||||||
|
</header>
|
||||||
|
$endif$
|
||||||
|
$if(toc)$
|
||||||
|
<nav id="$idprefix$TOC" role="doc-toc">
|
||||||
|
$if(toc-title)$
|
||||||
|
<h2 id="$idprefix$toc-title">$toc-title$</h2>
|
||||||
|
$endif$
|
||||||
|
$table-of-contents$
|
||||||
|
</nav>
|
||||||
|
$endif$
|
||||||
|
$body$
|
||||||
|
$for(include-after)$
|
||||||
|
$include-after$
|
||||||
|
$endfor$
|
||||||
|
</body>
|
||||||
|
</html>
|
Loading…
Reference in New Issue