Outils pour utilisateurs

Outils du site


formats_de_documents_ouverts

Différences

Ci-dessous, les différences entre deux révisions de la page.


formats_de_documents_ouverts [2024/01/28 23:48] (Version actuelle) – créée - modification externe 127.0.0.1
Ligne 1: Ligne 1:
 +====== Les différents formats de documents ouverts ======
 +
 +===== OpenDocument =====
 +
 +  * Format ouvert de données pour la bureautique.
 +  * Basé sur la notation XML, assez proche du HTML
 +  * Plusieurs types de documents:
 +    * Traitement de texte
 +    * Tableur
 +    * Présentation
 +    * Diagramme
 +    * Base de données
 +  * Norme publiée par OASIS
 +
 +
 +----
 +
 +==== OpenDocument: Avantages ====
 +
 +  * Interopérabilité: OpenOffice.org, LibreOffice, KOffice, Google Documents, IBM Notes
 +  * Microsoft Office ne gère pas bien le format OpenDocument afin de lui donner une impression de mauvaise qualité.
 +  * Abri contre la péremption des données
 +  * Permet un formatage riche du contenu
 +  * Permet l'automatisation de la production de documents
 +
 +==== OpenDocument: Inconvénients ====
 +
 +  * Les fichiers sont lourds
 +  * Il peut être difficile d'éditer le code XML directement sans corrompre le document
 +  * L'utilisation des logiciels d'édition nécessite une période d'apprentissage et beaucoup de pratique.
 +  * Intégration limitée de contenu scientifique tel que des équations ou des diagrammes
 +
 +
 +----
 +
 +==== OpenDocument: Éditeurs libres ====
 +
 +  * OpenOffice.org
 +  * LibreOffice
 +  * NeoOffice
 +  * KOffice
 +  * AbiWord
 +
 +Installation de Abiword:
 +
 +<code bash>
 +sudo apt-get install abiword
 +</code>
 +
 +----
 +
 +==== OpenDocument: Références ====
 +
 +  * [[https://www.oasis-open.org/committees/tc_home.php?wg_abbrev=office|OASIS Open Document Format for Office Applications (OpenDocument) TC]]
 +  * [[http://www.documentfreedom.org/index.php|Document Freedom Day]]
 +
 +
 +----
 +
 +=====  =====
 +
 +  *  est un système de préparation de document.
 +  * Constitue un ensemble de macros développées par Leslie Lamport servant à faciliter l'utilisation de , le langage créé par Donald Knuth.
 +  * Conçu pour la production de documents techniques et scientifiques.
 +
 +
 +----
 +
 +====  : Avantages ====
 +
 +  * Standard reconnu par la plupart des publications scientifiques.
 +  * Permet de ne pas avoir à se soucier de l'apparence finale du document et de se concentrer sur le contenu.
 +  * Permet de structurer efficacement de très grands documents
 +    * Table des matières
 +    * Création d'index et de bibliographie
 +    * Numérotation automatique des chapitres, sections et sous-sections
 +  * Permet d'inclure des formules mathématiques et scientifiques très complexes
 +  * Permet de générer des figures et des graphiques très complexes
 +  * Bien intégré avec la plupart des langages de programmation pour la génération automatique de contenu et de documentation.
 +
 +
 +----
 +
 +====  : Inconvénients ====
 +
 +  * Apprentissage difficile.
 +  * C'est un langage de programmation compilé.
 +  * Déboguer un document qui ne compile pas peut être ardu.
 +  * Le document produit est à la base dans un format imprimable, ce qui peut être contraignant (surtout sur la largeur du document).
 +
 +
 +----
 +
 +==== Distributions de  ====
 +
 +  * [[https://miktex.org/|MikTeX]], la distribution recommandée pour Windows. Aussi disponible sur macOS via Homebrew.
 +  * [[https://www.tug.org/texlive/|TeX Live]], la distribution la plus courante et celle par défaut sur les distributions majeures de GNU/Linux.
 +  * [[http://www.tug.org/mactex/|MacTeX]], distribution TeX Live adaptée pour macOS
 +
 +Installation de TeX Live (attention, prévoir environ 3 Go de données et 1h !):
 +
 +<code bash>
 +sudo apt-get install texlive-full
 +</code>
 +
 +----
 +
 +====  : Éditeurs libres ====
 +
 +  * [[https://www.gnu.org/software/auctex/|AucTeX]], extension de GNU Emacs pour , Multi-plateforme
 +  * [[http://www.xm1math.net/texmaker/|TeXMaker]], interface graphique Multi-plateforme
 +  * [[https://www.lyx.org/|LyX]], Éditeur de type WYSIWYM utilisant  en arrière plan. Multi-plateforme
 +  * [[https://wiki.gnome.org/Apps/LaTeXila|LaTeXila]], interface graphique pour GNOME, GNU/Linux seulement
 +  * [[http://www.texniccenter.org/|TeXnicCenter]], interface graphique avancée pour Windows seulement.
 +
 +
 +----
 +
 +====  : Références ====
 +
 +  * [[http://www.latex-project.org/|The  Project]]
 +  * [[http://tug.org/|Users Group web site]]
 +  * [[https://en.wikibooks.org/wiki/LaTeX| Wikibook]]
 +
 +
 +----
 +
 +===== Markdown =====
 +
 +  * Markdown est un langage de balisage léger
 +  * Inspiré du courriel en mode texte
 +  * Il en existe plusieurs variantes, dont le GitHub Flavored Markdown, le Pandoc Markdown et le R Markdown
 +  * Très populaire pour produire de la documentation
 +  * Presque toujours converti vers un format HTML
 +
 +
 +----
 +
 +==== Markdown: Éditeurs libres ====
 +
 +  * [[https://remarkableapp.github.io/|Remarkable]], Windows et GNU/Linux
 +  * [[https://github.com/Microsoft/vscode|Visual Studio Code]], Multi-plateforme
 +  * [[https://stackedit.io/|Stackedit]], Multi-plateforme, application web
 +
 +
 +----
 +
 +==== Markdown: Références ====
 +
 +  * [[http://daringfireball.net/projects/markdown/|Site officiel]]
 +  * [[https://blog.wax-o.com/2014/04/tutoriel-un-guide-pour-bien-commencer-avec-markdown/|Un guide pour bien commencer avec markdown]]
 +
 +
 +----
 +
 +===== DocBook =====
 +
 +  * DocBook est un schéma XML très large qui permet de définir sémantiquement le contenu d'un livre ou d'un article.
 +  * Il ne définit pas comment l'affichage se fait. On utilisera alors un fichier XSLT qui permet de transformer le XML dans un autre format, souvent le HTML.
 +
 +==== DocBook: Références ====
 +
 +  * [[http://docbook.org/whatis|What is DocBook?]]
 +
 +
 +----
 +
 +====== Pandoc ======
 +
 +Pandoc est un outil et une librairie écrit en Haskell qui permet de convertir des documents entre plusieurs formats ouverts.
 +
 +Il y a aussi une librairie très utilisée par plusieurs autres logiciels. Si votre éditeur permet d'exporter votre travail dans une multitude de formats, c'est probablement du à Pandoc.
 +
 +Pandoc est multi-plateformes, mais certaines fonctionnalités peuvent être limitées. Par exemple, il faut avoir Microsoft Word ou LibreOffice pour produire des DOCX.
 +
 +Installation
 +
 +<code bash>
 +sudo apt-get install pandoc
 +</code>
 +Installation avec Cabal, pour avoir la version la plus récente:
 +
 +<code bash>
 +cabal install pandoc
 +</code>
 +
 +----
 +
 +===== Pandoc: Formats d'entrée =====
 +
 +Les formats d'entrée incluent:
 +
 +  * markdown
 +  * DocBook
 +  * LaTeX
 +  * OpenDocument
 +  * Epub
 +  * ...
 +
 +
 +----
 +
 +===== Pandoc: Formats de sortie =====
 +
 +Les formats de sortie incliuent:
 +
 +  * HTML
 +  * OpenDocument
 +  * EPub
 +  * DocBook
 +  * LaTeX
 +  * PDF
 +  * markdown
 +  * MediaWiki
 +  * DokuWiki
 +
 +
 +----
 +
 +===== Pandoc Markdown =====
 +
 +Le Pandoc Markdown est un des formats d'entrée les plus vertatiles. Il s'agit d'une variante de Markdown supportant plusieurs fonctionnalités additionnelles.
 +
 +Référence: [[http://rmarkdown.rstudio.com/authoring_pandoc_markdown.html|Anthoring Pandoc Markdown]]
 +
 +
 +----
 +
 +===== Pandoc Markdown: Blocs de lignes =====
 +
 +Les **blocs** de lignes permettent de séparer le texte manuellement. Par exemple, pour les adresses:
 +
 +**Code:**
 +
 +<code>
 +| Centre de loisirs St-Louis-de-France
 +| 1560 Route De L’Église
 +| Québec, G1W 3P5
 +</code>
 +**Résultat:**
 +
 +Centre de loisirs St-Louis-de-France\\
 +1560 Route De L’Église\\
 +Québec, G1W 3P5
 +
 +
 +----
 +
 +===== Pandoc Markdown: Tables simples =====
 +
 +Il faut spécifier l'extension ''%%+simple_tables%%''
 +
 +**Code:**
 +
 +<code>
 +Droite    Gauche   Centre    Defaut
 +-------   ------ ----------  ------
 +     12   12        12          12
 +    123   123       123        123
 +
 +Table:  Demonstration de la syntaxe des tables simples.
 +</code>
 +**Résultat:**
 +
 +Demonstration de la syntaxe des tables simples.
 +^Droite  ^Gauche^  Centre  ^Defaut^
 +|12      |12    |    12    |12    |
 +|123     |123     123    |123   |
 +
 +
 +----
 +
 +===== Pandoc Markdown: métadonnées =====
 +
 +Les métadonnées permettent d'identifier le titre, l'auteur et la date dans l'entête du document. On utilise l'extension ''%%+pandoc_title_block%%''
 +
 +**Code:**
 +
 +<code>
 +% Les formats de documents ouverts
 +% François Pelletier
 +% 25 novembre 2017
 +</code>
 +
 +----
 +
 +===== Pandoc Markdown: mathématiques =====
 +
 +Pandoc permet de traiter les équations mathématiques saisies avec la syntaxe LaTeX à l'aide de différents outils tout dépendamment du format de document en sortie.
 +
 +Les principaux outils utilisés sont MathML et AMS 
 +
 +
 +----
 +
 +===== Pandoc Markdown: mathématiques =====
 +
 +On saisis les contenus mathématiques entre signes ''%%$%%'' ou ''%%$$%%'' pour les expressions multilignes.
 +
 +**Code:**
 +
 +<code>
 +$$
 +{\begin{aligned}/home/francois/nextCloud/LinuQ/20171025_pandoc/20171025_formats_ouverts
 +&\gamma _{ij}(x,t) \\ 
 +=&\sum _{k=1}^{N}\sigma _{ik}(x,t)\sigma _{jk}(x,t)
 +\end{aligned}}
 +$$
 +</code>
 +**Résultat:**
 +
 +$$
 +{\begin{aligned}
 +&\gamma _{ij}(x,t) \\ 
 +=&\sum _{k=1}^{N}\sigma _{ik}(x,t)\sigma _{jk}(x,t)
 +\end{aligned}}
 +$$
 +
 +
 +----
 +
 +===== Produire des présentations facilement =====
 +
 +Un exemple: cette présentation a été écrite avec le langage Markdown et exportée en PDF et en HTML avec Pandoc.
 +
 +<code bash>
 +#!/bin/bash
 +pandoc -f markdown+simple_tables+pandoc_title_block \
 + -t beamer -s presentation.md -o presentation.pdf
 +pandoc -f markdown+simple_tables+pandoc_title_block \
 + -t slidy -s presentation.md -o presentation.html
 +</code>
 +
 +----
 +
 +===== Publier sur un wiki ou un site web =====
 +
 +Il est aussi possible d'exporter le contenu d'un document vers la syntaxe dokuwiki, ce qui peut être très utile !
 +
 +<code bash>
 +pandoc -f markdown+simple_tables+pandoc_title_block \
 + -t dokuwiki -s presentation.md -o presentation.dokuwiki
 +</code>
 +
 +----
 +
 +====== Numériser un document papier: Simple Scan ======
 +
 +Simple Scan est un logiciel de numérisation de documents qui s'utilise avec un numériseur à plat ou avec alimentation automatique. Il permet de créer des documents PDF facilement. Cette application est développée par le projet GNOME.
 +
 +Source: [[https://github.com/GNOME/simple-scan|GitHub: GNOME/simple-scan]]
 +
 +====== Numériser un document papier: Tesseract ======
 +
 +Tesseract est un logiciel libre de reconnaissance optique de caractères. Il est très utile pour extraire le contenu d'un document numérisé.
 +
 +Installation:
 +
 +<code bash>
 +sudo apt-get install tesseract-ocr tesseract-ocr-fra
 +</code>
 +Il faut au préalable préparer le document à la reconnaissance des caractères.
 +
 +
 +----
 +
 +===== Exemple de document =====
 +
 +{{:DOC-20171024-215135.jpg}}
 +
 +
 +----
 +
 +===== Exemple de document (suite 1) =====
 +
 +En utilisant ImageMagick, on peut aligner le document. On utilise ensuite Tesseract pour extraire le texte. On peut combiner les deux commandes en utilisant un ''%%pipe%%''.
 +
 +**Code:**
 +
 +<code bash>
 +convert DOC-20171024-215135.jpg -deskew 40% jpg:- | \
 + tesseract stdin -l fra -psm 1 DOC-20171024-215135
 +</code>
 +
 +----
 +
 +===== Exemple de document (suite 2) =====
 +
 +**Résultat:**
 +
 +<code>
 +Les pâtes Caielii Smari® soni une source trè:æ élevée
 +_ de fibres alimentaires. Voici une manièm déiicic‘sum
 +__ _‘3_/ d'augmenter votre apport en iihrea ei d'améliumr vuinî
 +£J’ alimentation. il suffit de préparer les pâtes Cai9iii Smart“
 +dela même manière que les pâtes ordinaires et de proiitg;
 +ensuite d'un goût exceptionneiiement savoureux. Voilà la umyun
 +d'obtenir plus de fibres pour toute la iamiiie.
 +</code>
 +
 +----
 +
 +====== Manipuler des documents PDF: pdftk ======
 +
 +pdftk est un outil qui permet de manipuler des fichiers PDF. Il permet de:
 +
 +  * Fusionner et extraire des section de documents
 +
 +<code bash>
 +pdftk a1.pdf a2.pdf cat output a1+a2.pdf
 +</code>
 +  * Extraire une section de document
 +
 +<code bash>
 +pdftk a1+a2.pdf cat 1 output b1.pdf
 +</code>
 +  * Éclater un document en pages séparées
 +
 +<code bash>
 +pdftk a1+a2.pdf burst
 +</code>
 +  * Pdfshuffle est une interface graphique qui permet de faire un travail similaire
 +
 +
 +----
 +
 +===== pdftk: Appliquer un filigrane ou ajouter un logo =====
 +
 +On peut ajouter une image en superposition en utilisant l'option stamp. Par exemple, pour identifier un document comme confidentiel.
 +
 +**Code:**
 +
 +<code bash>
 +pdftk presentation.pdf stamp confidentiel.pdf \
 + output presentation-conf.pdf
 +</code>
 +
 +----
 +
 +===== Versionnement de documents =====
 +
 +Il existe plusieurs logiciels de versionnement de code, dont git, qui peuvent aussi être utilisés pour versionner les documents avec un syntaxe en format texte, tels que markdown, et les formats Wiki. Cependant, il peut être difficile de versionner des documents de format OpenDocument ou PDF, car ils incluent de la compression de données ou des insertions binaires qui ne sont pas réversibles avec un outil tel que Pandoc.
 +
 +
 +----
 +
 +==== Outils de versionnement ====
 +
 +Une solution est d'utiliser un extracteur de texte. En voici quelques uns:
 +
 +  * [[http://pdftohtml.sourceforge.net/|pdftohtml]], un utilitaire simple qui convertis un document PDF en document HTML. Il est ensuite possible d'utiliser Pandoc pour convertir vers un autre format. C'est la meilleure solution pour faire un coup vite.
 +  * [[http://tika.apache.org/|Apache Tika]], une arme de guerre pour extraire le contenu textuel et les métadonnées d'une multitude de formats de données. Disponible sous forme de serveur web ou de librairie Java. C'est la meilleure solution pour gérer une masse de documents.