[latex] adapter un format source (conventions + styles)

Salut, j’ai quelques interrogations en rapport avec le format des
fichiers sources !

Dans l’idéal, un fichier source LaTeX ne devrait-il pas être seulement
défini par la classe du document ?

#+BEGIN_SRC latex
\documentclass{minimal}

\begin{document}
INSERT YOUR CONTENT HERE
\end{document}
#+END_SRC

En effet, bien trop souvent, on ajoute constamment les même instructions
dans le préambule.

#+BEGIN_SRC latex
\documentclass[french,12pt]{book}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
% …
\begin{document}
INSÉRER VOTRE CONTENU ICI
\end{document}
#+END_SRC

Les extensions ne devraient-elles pas êtres inapparentes ? On est sensé
se focaliser sur le contenu du document et pas sur les fonctionnalités
ou les caractéristiques de LaTeX.

J’ai aussi cette impression que les extensions entravent également les
utilisateurs. Que dire de la documentation pharamineuse ? Que pensez de la
redéfinition de telle ou telle fonctionnalité ?

Pourquoi n’apprend t’on pas à définir des classes de documents ?
Pourquoi n’incorpore t’on pas le code des extensions ?

Cordialement,
Kevin Vigouroux

Le 22/05/2021 à 08:42, Kevin Vigouroux a écrit :

Salut, j’ai quelques interrogations en rapport avec le format des
fichiers sources !

Dans l’idéal, un fichier source LaTeX ne devrait-il pas être seulement
défini par la classe du document ?

#+BEGIN_SRC latex
\documentclass{minimal}

\begin{document}
INSERT YOUR CONTENT HERE
\end{document}
#+END_SRC

(la classe ‘minimal’ n’est par réellement utilisable:
https://tex.stackexchange.com/questions/42114/why-should-the-minimal-class-be-avoided)

Si la classe choisie intègre toutes les fonctionnalités nécessaires au
contenu du document, c’est évidemment la meilleure solution… mais sauf
pour des documents très simples, c’est rarement le cas.

En effet, bien trop souvent, on ajoute constamment les même instructions
dans le préambule.

#+BEGIN_SRC latex
\documentclass[french,12pt]{book}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
% …
\begin{document}
INSÉRER VOTRE CONTENU ICI
\end{document}
#+END_SRC

Les extensions ne devraient-elles pas êtres inapparentes ? On est sensé
se focaliser sur le contenu du document et pas sur les fonctionnalités
ou les caractéristiques de LaTeX.

J’ai aussi cette impression que les extensions entravent également les
utilisateurs. Que dire de la documentation pharamineuse ? Que pensez de la
redéfinition de telle ou telle fonctionnalité ?

Pourquoi n’apprend t’on pas à définir des classes de documents ?
Pourquoi n’incorpore t’on pas le code des extensions ?

Un document particulier utilise souvent une combinaison de
fonctionnalités non intégrées dans une classe existante donnée.

Par exemple, si j’écris un livre comparant le jeu de go au jeu d’échec,
je vais sans doute utiliser la classe ‘book’ avec les packages (ou
extensions) permettant de dessiner des plateaux de jeu de go et de jeu
d’échec. Aucune classe n’intégre spécifiquement ces extensions.

De mon point de vue, un “bon” document LaTeX se résume à:

\documentclass{uneclasse}
\usepackage{mon-preambule}
\begin{document}
\input{mon-contenu}
\end{document}

où:

  • ‘uneclasse’ est une classe existante permettant de produire le type de
    document voulu,

  • ‘mon-preambule.sty’ est un fichier intégrant toutes les extensions
    spécifiques et leur paramétrage nécessaire au document et définissant
    tous les environnements/commandes spécifiques à ce document (ceux qui
    permettent de définir le lien entre la sémantique de certains contenus
    et leur présentation).

  • ‘mon-contenu.tex’ est le contenu du document lui-même qui ne fait
    appel qu’à des commandes ou environnement sémantiques (dans le sens qui
    structurent et organisent les différents contenu et spécifient leur sens).

Ensuite, si on s’aperçoit qu’on utilise souvent une même combinaison
d’extensions pour certains documents, rien n’empêche d’écrire sa propre
extension qui les intègrent toutes ou même d’écrire sa propre classe de
documents (souvent en complétant une classe existante).

Et si cette extension ou cette classe s’avère utilisable par de
nombreuses personnes, on peut la publier sur CTAN.

Cordialement,

 Paul Gaborit

Le 22/05/21 à 08h42, Kevin Vigouroux a écrit :

Salut,

Salut.

j’ai quelques interrogations en rapport avec le format des fichiers sources !

Dans l’idéal, un fichier source LaTeX ne devrait-il pas être seulement défini par la classe du document ?

#+BEGIN_SRC latex \documentclass{minimal}

\begin{document} INSERT YOUR CONTENT HERE \end{document} #+END_SRC

En effet, bien trop souvent, on ajoute constamment les même instructions dans le préambule.

#+BEGIN_SRC latex \documentclass[french,12pt]{book} \usepackage[T1]{fontenc} \usepackage{lmodern} % … \begin{document} INSÉRER VOTRE CONTENU ICI \end{document} #+END_SRC

Les extensions ne devraient-elles pas êtres inapparentes ? On est sensé se focaliser sur le contenu du document et pas sur les fonctionnalités ou les caractéristiques de LaTeX.

J’ajouterais à la réponse pertinente de Paul que certaines classes intègrent les fonctionnalités de nombreux packages épars. C’est notamment le cas des classes memoir et koma-script.

Il n’empêche que, dès qu’on souhaite personnaliser son document par rapport à ce que fournissent par défaut de telles classes, on doit se plonger dans leurs documentations pour obtenir le résultat escompté et donc ne plus se focaliser que sur le contenu du document. Ceci peut toutefois se faire dans un second temps, une fois que le document est terminé.

J’ai aussi cette impression que les extensions entravent également les utilisateurs. Que dire de la documentation pharamineuse ?

Parce que les packages fournissent souvent de nombreuses fonctionnalités, et des fonctionnalités différentes (ce qui explique la profusion des packages). Il y a quand même des tentatives d’unification. Un exemple frappant est le package biblatex dont la documentation explique les nombreuses fonctionnalités fournies par des packages divers que biblatex a cherché à unifier. Mais, du coup, sa documentation est pléthorique.

Que pensez de la redéfinition de telle ou telle fonctionnalité ?

???

Pourquoi n’apprend t’on pas à définir des classes de documents ?

Parce que c’est loin d’être simple et c’est donc une chose qu’on peut apprendre à faire, si on est intéressé, dans un second temps.

Pourquoi n’incorpore t’on pas le code des extensions ?

Il existe actuellement plus de 6000 extensions. Si toutes étaient intégrées, outre les problèmes d’incompatibilités entre certaines d’entre elles, on serait confronté à des temps de compilation beaucoup trop longs.

Denis

À mon avis, il aurait fallu pouvoir créer des classes spécifiques pour
composer ses documents. En faisant abstraction des extensions, on aurait
peut-être pu éviter les répétitions intempestives (devoir ajouter un
préambule). Il ne s’agirait plus de charger des extensions dans une
classe mais d’ajouter le code directement dans une classe en changeant
de paradigme. En pratique, on ne peut pas dire que les principes
fondamentaux de LaTeX soient réellement suivis comme on peut souvent
le constater (voir l’hyperlien ci-après).

[1] LaTeX - Ajout de la chaîne « Première partie » avant les entrées de la table des matières - TeXnique

Dans l’exemple auquel on fait référence, typique, on apprend quelles
sont les extensions chargées, les commandes qui sont définies ou
redéfinies, alors qu’en soi, tout ceci, n’est pas vraiment essentiel
pour comprendre le document.

Cordialement,
Kevin Vigouroux

Je ne veux vois qu’un seul »header«.

le sergent chargé de l’instruction :slight_smile:

Le Sat, 22 May 2021 11:52:39 +0200,
Denis Bitouzé xyz@xyz.tld a écrit :

Le 22/05/21 à 08h42, Kevin Vigouroux a écrit :

[…]

Bonjour,

Le dimanche 23 mai 2021 à 11:01:59, Kevin Vigouroux écrivit :

K> À mon avis, il aurait fallu pouvoir créer des classes spécifiques pour
K> composer ses documents.

Je vais rejoindre pas mal d’autres réactions en disant que c’est complètement absurde. Il doit y avoir un truc que vous n’avez pas compris.

Déjà, LaTeX n’est pas XML et une classe n’est pas une DTD. L’objectif n’est pas uniquement de structurer un contenu d’un certain type (mais c’est une des fonctions essentielles d’une classe), c’est aussi de lui fournir une représentation par défaut, et des paramètres de typographie et mise en page. C’est beaucoup plus simple (et partageable, une des raisons d’être des sources LaTeX) d’avoir un nombre relativement réduit de classes publiques et des extensions ou paramètres qui apparaissent explicitement dans le source d’un document donné, plutôt que d’avoir les dépendances cachées dans une classe non standard.

Après, il y a un travers que l’on trouve dans un certain nombre de manuels, tutos, etc. qui consiste à mettre l’accent sur le bidouillage de la présentation par défaut alors qu’un débutant devrait se concentrer sur une structure générique, et se préoccuper de l’apparence à la fin, voire jamais, si la mise ne page finale est faite ailleurs, comme dans un article de revue, p. ex. Le bémol est que tout ça est complètement interdépendant en LaTeX, et que si on veut quelque chose de spécial, relevant purement de la forme, il faut bien souvent prévoir une structure adaptée très en amont.

Bref, il y a les discours pour vendre latex (structure, indépendance contenu/forme, très haute qualité typo – ah ah !) et la réalité du terrain.

Th. B.

De base, on a un logiciel nommé TeX dont on peut modifier un certain
nombre de paramètres. Contrairement au XML, TeX dispose d’une mise en
forme puisqu’il s’agit par essence d’un système de composition. Sinon,
je trouve que LaTeX c’est un peu brouillon comme interface.

Cordialement,
Kevin Vigouroux

Bonjour,

Si LaTeX est brouillon, faites mieux!
:slight_smile:
Cordialement
Eric

Le 25/05/2021 à 17:30, Kevin Vigouroux a écrit :

De base, on a un logiciel nommé TeX dont on peut modifier un certain
nombre de paramètres. Contrairement au XML, TeX dispose d’une mise en
forme puisqu’il s’agit par essence d’un système de composition. Sinon,
je trouve que LaTeX c’est un peu brouillon comme interface.

Je pense que les personnes qui pensent que LaTeX est brouillon (j’ai
tendance à en faire partie) ont intérêt à aller voir du côté de ConTeXt.
Cela étant, il y a des niches pour lesquelles LaTeX reste quasiment
incontournable, telles que les textes parallèles. Quand on commence à
travailler avec ConTeXt, on apprécie de se retrouver dans un cathédrale,
mais on se rend vite compte qu’il y a plein de recoins cachés et que le
bazar, par ailleurs, a ses vertus.

Le Tuesday 25 May 2021 à 07:00:30PM, Eric Guichard a écrit :

Bonjour,

Si LaTeX est brouillon, faites mieux!
:slight_smile:
Cordialement
Eric

Le 25/05/2021 à 17:30, Kevin Vigouroux a écrit :

De base, on a un logiciel nommé TeX dont on peut modifier un certain
nombre de paramètres. Contrairement au XML, TeX dispose d’une mise en
forme puisqu’il s’agit par essence d’un système de composition. Sinon,
je trouve que LaTeX c’est un peu brouillon comme interface.

Le Tue, 25 May 2021 19:00:30 +0200,
Eric Guichard xyz@xyz.tld a écrit :

Bonjour,

Si LaTeX est brouillon, faites mieux!
:slight_smile:
Cordialement
Eric

Trop tard C’est fait :slight_smile:

l y a Context et aussi luatex: il suffit de peu de lignes
d’introduction, p ex

\input luaotfload.sty
\font\libertine={Linux Libertine O}
\libertine

< le texte >

\bye

et on retrouve pas mal de commandes TeX

rb

25/05/2021 à 17:30, Kevin Vigouroux a écrit :

De base, on a un logiciel nommé TeX dont on peut modifier un certain
nombre de paramètres. Contrairement au XML, TeX dispose d’une mise
en forme puisqu’il s’agit par essence d’un système de composition.
Sinon, je trouve que LaTeX c’est un peu brouillon comme interface.

Le 23/05/2021 à 11:01, Kevin Vigouroux a écrit :

À mon avis, il aurait fallu pouvoir créer des classes spécifiques
pour composer ses documents. En faisant abstraction des extensions,
on aurait peut-être pu éviter les répétitions intempestives (devoir
ajouter un préambule). Il ne s’agirait plus de charger des
extensions dans une classe mais d’ajouter le code directement dans
une classe en changeant de paradigme.
Cela ne ferait que remplacer un problème par un autre. Actuellement,
chaque document nécessite son propre préambule combinant une classe de
documents, des extensions et le paramétrage de l’ensemble. Cette
combinaison est souvent (toujours ?) complexe et cacher cette complexité
dans de nombreuses classes (combien au final ?) ne la supprimera pas
pour autant.

En pratique, on ne peut pas dire que les principes
fondamentaux de LaTeX soient réellement suivis comme on peut souvent
le constater (voir l’hyperlien ci-après).

[1] https://texnique.fr/osqa/questions/7589/ajout-de-la-chaine-premiere-partie-avant-les-entrees-de-la-table-des-matieres/7594

Dans l’exemple auquel on fait référence, typique, on apprend quelles
sont les extensions chargées, les commandes qui sont définies ou
redéfinies, alors qu’en soi, tout ceci, n’est pas vraiment essentiel
pour comprendre le document.

Il me semble qu’au contraire les bonnes pratiques sont bien respectées:
toute la tambouille de programmation est dans le préambule et le
document (qui ne commence qu’après le '\begin{document}`) ne contient
que le contenu habillé par des commandes de structuration.
On pourrait aller un cran plus loin en isolant le préambule dans un
fichier .sty spécifique au document.

Cordialement,

 Paul Gaborit