Texte et formule à droite d'une image pdf

Bonjour
Tout d'abord, bonnes fêtes de fin d'année à vous tous.
J'ai encore un petit soucis de présentation, et impossible pour moi de trouver la solution avec le prof Google !

J'ai dessiné une figure sous word et l'ai sauvée en pdf.
J'ai alors inséré la figure et je l'ai découpée via cette commande :
\includegraphics[scale=1, trim = 5.5cm 21cm 11.5cm 2cm, clip]{SuitesNumTriangleRect}
J'aimerais maintenant que cette figure reste à gauche, mais j'aimerais mettre des équations et du texte à sa droite.
Actuellement, le texte se trouve en dessous. Sauriez-vous comment faire pour mettre mon texte à droite de la figure ?

Bonne journée à vous tous,

Réponses

  • Importer en $\rm\LaTeX$ une figure réalisée avec Word ? Tu ne dois pas connaître TiKZ. Tu veux mettre ta figure, si ce n'est pas un secret d’État ?

    Sinon, une façon de faire, c'est d'inclure la figure dans un tableau, à partir du code suivant. (La figure incluse fait 19 cm de haut ? Ça semble curieux. Si nécessaire, il faut mettre la moitié de la hauteur à la place de 9.5cm.)
    \usepackage{array} % cette ligne avant \begin{document}
    
    \begin{tabular}{m{6cm}m{\linewidth-6.5cm}}
    \raisebox{-9.5cm}{\includegraphics[scale=1, trim = 5.5cm 21cm 11.5cm 2cm, clip]{SuitesNumTriangleRect}}&
    La légende de la figure qui est à gauche dans un paragraphe qui devrait être propre
    \end{tabular}
    
    Edit : rectification \textheight --> \linewidth.
  • Bonjour
    Une autre possibilité consiste à utiliser l'environnement minipage.
    \begin{minipage{0.5\linewidth}
    \includegraphics[scale=1, trim = 5.5cm 21cm 11.5cm 2cm, clip]{SuitesNumTriangleRect}
    \end[minipage}
    \begin{minipage}{0.5\linewidth}
    Texte et formules
    \end{minipage}
    
    On peut adapter 0.5\linewidth à la proportion que l'on veut pour l'image et pour le texte.
    Si on veut l'image à droite, permuter les deux environnements minipage.
    Alain
  • @Math Coss

    Tu ne voulais pas dire \linewidth dans la déclaration de ton tableau, à la place de \textheight ?

    @AD

    D'accord pour le principe, en revanche je pense qu'il faudrait un \noindent en début de ligne (juste avant le premier minipage) et un % après le premier \end{minipage} (juste après, i.e., collé à l'accolade fermante), sinon il y aura un espace inter-mots entre les deux minipages, et comme $0.5\text{\linewidth} + 0.5\text{\linewidth} = \text{\linewidth}$, TeX va protester avec un overfull \hbox.

    Il y a des méthodes plus sophistiquées quand le besoin se fait sentir (genre package wrapfig) mais j'aime bien ces deux-là car elles sont assez intuitives et faciles à mémoriser.
  • Merci pour votre réponse.
    J'ai copié-collé le code, et le texte apparaît en haut à droite décalé par rapport à mon triangle rectangle...
    Finalement Word c'est plus simple... :):)
  • Bonjour,

    Merci pour votre aide.
    Quand je copie le code que vous m'avez fourni, j'obtiens le message d'erreur suivant :

    ! Paragraph ended before \begin was complete.<to be read again>\par

    Il faut mettre un slash ?
  • Plusieurs solutions ont été proposées, on ne sait pas laquelle vous avez essayée. Postez un exemple complet minimal (ECM) si vous voulez des retours efficaces.
  • Après multcombinaisons... j'ai trouvé à l'aide de vos contributions celle qui convient :
    \noindent\begin{minipage}{0.5\linewidth}
    \includegraphics[scale=1, trim = 5.5cm 21cm 11.5cm 2cm, clip]{SuitesNumTriangleRect}
    \end{minipage}
    \begin{minipage}{0.5\linewidth}
    $\left\{ \begin{array}{ll}
           	sin \alpha=\dfrac{A_{n}A_{n+1}}{OA_{n}}\\
    		cos \alpha=\dfrac{OA_{n+1}}{OA_{n}}\\
    \end{array} \right.$ ; d'où,
     
    $\left\{ \begin{array}{lll}
    
           	A_{n}A_{n+1}= OA_{n}sin \alpha\\
           	OA_{n+1}= OA_{n}cos \alpha\\
    		
    \end{array} \right.$
    \end{minipage}
    
    Le seul problème... c'est que les formules sont en peu trop à droite. Serait-il possible de les mettre contre mon triangle rectangle ?

    Je suis quand même déjà bien heureux du résultat (j'ai perdu 3h ce matin sur mon nouveau livre "Latex pour l'impatient" pour des figues) !
    Merci encore à vous tous.
  • Désolé...

    Le code de Maths Cross donnait un texte non accolé par rapport à l'image.
    En revanche, le \noindent + multipages convient. Le seul inconvénient, c'est sans doute l'écart qui sépare le texte de l'image.

    A bientôt,
  • Deux remarques : pas de "r" dans mon pseudo et "minipage" au lieu de "multipage".

    Comme brian l'a remarqué, je m'étais trompé entre \textheight et \linewidth. Avec la bonne indication pour la largeur de la page, l'espacement entre les colonnes doit être plus acceptable. Sinon, on peut l'augmenter de plusieurs façons, par exemple en définissant \setlength{\tabcolsep}{1cm}.
  • Bonsoir,

    1) Ne pas oublier les %, notament celui que j'ai signalé plus haut entre les minipages, sinon il y a des espaces parasites.

    2) Je suggère de ne pas mettre le \\ à la fin de la dernière ligne d'un array, sauf lorsque c'est nécessaire par exemple pour tracer une ligne horizontale. Pour array, ça ne change rien, mais pour d'autres environnements, cela évite des problèmes (voir ce message d'egreg sur TeX.SE).

    3) Comme on n'a pas l'image ni même précisément (sauf erreur) ses dimensions, vous pouvez, pour les besoins du forum et des expérimentations nécessaires, la remplacer par un \rule{largeur}{hauteur} (voir exemple ci-dessous) qui produit un rectangle rempli de noir ayant les dimensions indiquées.

    4) Merci de bien vouloir, à l'avenir, nous fournir un exemple complet qui soit au moins à peu près minimal (ce que l'on appelle un ECM [MWE en anglais]). Sans cela, nous ne travaillons pas forcément sur les mêmes bases les uns les autres et perdons du temps à fabriquer l'exemple nous-même, chacun de notre côté, pour chaque question de chaque intervenant. Au bout du compte, c'est pas mal de temps perdu. En plus, le simple fait de préparer un tel exemple permet parfois de trouver une solution.

    Voici un exemple complet presque minimal (on pourrait raccourcir les formules et retirer au minimum babel, textcomp et geometry, mais je considère que ces packages font partie des « commodités de base » ;-)) :
    \documentclass[a4paper,11pt,french]{article}
    \usepackage{lmodern}
    \usepackage[T1]{fontenc}
    \usepackage[utf8]{inputenc}
    \usepackage{babel}
    \usepackage{textcomp}
    \usepackage[top=4cm, headsep=1cm, lines=50, width=15cm]{geometry}
    \usepackage{amsmath}
    \usepackage{calc}
    
    \begin{document}
    \newcommand*{\maFigure}{%
      % Mettre le \includegraphics[...]{...} à la place du \rule{5cm}{15cm}
      \rule{5cm}{15cm}%
    }%
    %
    \noindent
    % Alignement vertical à comparer avec un simple "\maFigure"
    \raisebox{-0.5\height}{\maFigure}%
    % Si l'on veut un espace entre la figure et le reste, on peut mettre par
    % exemple ici \hspace{\fill} ou \hspace{2cm} (idem avec \hspace*) et adapter
    % la largeur de la minipage qui suit.
    \begin{minipage}{\linewidth-\widthof{\maFigure}}% La ligne est remplie à 100 %
      $\left\{ \begin{array}{ll}
                 sin \alpha=\dfrac{A_{n}A_{n+1}}{OA_{n}}\\
                 cos \alpha=\dfrac{OA_{n+1}}{OA_{n}}
               \end{array} \right.$
      d'où\quad
      $\left\{ \begin{array}{lll}
    
                 A_{n}A_{n+1}= OA_{n}sin \alpha\\
                 OA_{n+1}= OA_{n}cos \alpha
    
               \end{array} \right.$.
    \end{minipage}
    \end{document}
    

    Cet exemple est complet, cela veut dire qu'on peut le copier/coller et le compiler tel quel, sans erreur. On obtient ça :

    y7s9Mr8.png
  • Bonsoir
    Si tu veux plus coller le texte sur l'image, diminue la largeur de la minipage contenant l'image {0.45\linewidth} et augmente la minipage du texte (ce n'est pas indispensable car tes équations sont étroites).
    Si au contraire tu veux écarter les équations de l'image, augmente la minipage de l'image {0.55\linewidth}, ou alors mets un \hspace{1mm} entre le \end{minipage} et le \begin{minipage} suivant en faisant attention que la somme des largeurs des deux minipages et du \hspace ne dépasse pas 1\linewidth (sinon messages overfull box).
    Bref, joue avec les paramètres à ta disposition.
    Alain
  • Bonjour à vous,

    Je suis bluffé par vos connaissances sur ce logiciel. Je me demande presque si vous en êtes pas les auteurs !
    J'ai l'impression qu'il me faudra une vie, et plus encore, pour connaître toutes ses subtilités. En fait, Latex est destiné uniquement aux matheux. Je vois mal un littéraire se lancer là dedans.
    Merci très sincèrement à vous tous pour votre précieuse aide.
    J'essaie tout de suite vos codes....
  • Comme vous pouvez le voir par vous même, ça marche à la perfection !!

    Ce forum est vraiment top !
    J'ai passé 3h hier matin sur mon livre de Latex sans résultat...
    Juste une question... il vous a fallu combien de temps pour maîtriser ce logiciel ?
  • Tant mieux si tu es content...

    Pour tes formules, il ne faut pas écrire 'sin' mais '\sin' quand tu veux la fonction sinus. Quand tu tapes des lettres les unes à la suite des autres dans une formule, TeX formate le tout comme un produit.
    \noindent
    $different$\\
    $\mathit{different}$\\
    \textit{different}
    

    e43VQ3k.png

    La première ligne est un produit de 9 variables, les deux autres contiennent juste un mot chacune. Ici, j'ai simplement mis
    \usepackage{lmodern}
    \usepackage[T1]{fontenc}
    \usepackage[utf8]{inputenc}
    \usepackage{amsmath}
    
    en préambule ; en particulier, je n'ai pas touché à la police mathématique (celle qui est utilisée par \mathit), c'est pourquoi la deuxième et la troisième ligne donnent le même résultat visuel.

    Tu peux voir les fonctions prédéfinies par le package amsmath (\cos, \sin, \arccos, \arcsin, \lim, \det, \deg, ...) dans le User’s Guide for the amsmath Package, p. 20. S'il te manque une fonction, ce PDF explique comment la déclarer (cf. p. 19) :
    \DeclareMathOperator{\mafonction}{pouet}
    
    Il y a une variante pour les opérateurs qui prennent des indices ou exposants (lim, sup, max...) :
    \DeclareMathOperator*{\Lim}{Lim}
    
    (exemple de la doc)
    On peut mettre ce genre de définition dans le préambule du document (après le chargement d'amsmath) ou bien dans un fichier .sty perso, si les définitions ont vocation à être partagées par plusieurs documents :
    %%% mesmaths.sty --- Macros for typesetting mathematical (school) documents
    
    %% Author: Tartampion
    %% Version: 0.1
    
    %%% Commentary:
    
    %%% Code:
    
    \NeedsTeXFormat{LaTeX2e}[1995/12/01]
    \ProvidesPackage{mesmath}[2018/12/27 v0.1
                              Macros for typesetting mathematical documents]
    \RequirePackage{amsmath}
    
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    %%%%                               Main code                              %%%%
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    
    \DeclareMathOperator{\mafonction}{pouet}
    
    \endinput
    
    Pour être utilisable, un tel fichier doit être mis dans un répertoire où LaTeX va chercher les .sty (normalement, un truc genre quelquechose/tex/latex/monrepertoire où le 'quelquechose' peut être représenté par $\text{\$}$TEXMFHOME, $\text{\$}$TEXMFLOCAL ou quelque chose comme ça — cela dépend de la distribution TeX : les notations $\text{\$}$TEXMFHOME et $\text{\$}$TEXMFLOCAL sont conformes aux conventions de la distribution TeX Live). Après, encore selon la distribution TeX, il peut être nécessaire de « rafraîchir la base de données des fichiers » (commande 'mktexlsr' ou 'texhash' sous Debian, pas nécessaire de nos jours pour $\text{\$}$TEXMFHOME). On peut aussi mettre le .sty dans le répertoire du document .tex — auquel cas, il n'y a rien à rafraîchir — mais il ne pourra alors être utilisé que par les fichiers .tex et/ou .sty présents dans le même répertoire.

    Une fois cette petite intendance en place, on peut faire
    \usepackage{mesmath}  % remplacer 'mesmaths' par un nom plus susceptible d'être "unique" !
    
    et profiter des définitions présentes dans mesmaths.sty.

    Je suppose toujours que tu as chargé amsmath. Pour avoir du texte dans une formule, tu peux utiliser $\text{\$}$x^2 = \text{carré de }x$\text{\$}$. Très utile, y compris sur le forum. Sinon, tu as accès aux polices mathématiques en mode maths avec \mathrm, \mathit, \mathbf et peut-être d'autres variantes genre sl, sc (à vérifier). Pour un objet mathématique en gras, tel qu'un vecteur écrit « à la physicienne », je pense que la commande \bm du package bm est la plus adaptée.

    Si tu dois écrire pas mal de maths, il me semble qu'il serait sage d'avoir au moins survolé le User’s Guide for the amsmath Package (déjà mentionné) ainsi que le Short Math Guide for LaTeX. Le package mathtools est également utile, mais ce qu'il offre est à mon avis plus de l'ordre du raffinement, comparé aux documents précédents.
  • Bonjour
    J'ai repris le code que vous m'avez passé pour insérer du texte mélangé avec une image pdf. Ça fonctionne super bien ; y a-t-il une manip simple pour mettre l'image non pas à gauche mais à droite ?

    Voici le code en question...
    \newcommand*{\motcroise}{
    \includegraphics[scale=1, trim = 15cm 9cm 1cm 15cm, clip]{monimage}   
    }
    
    \raisebox{-0.5\height}{\motcroise}%
    .
    \begin{minipage}{\linewidth-\widthof{\motcroise}}% La ligne est remplie à 100 %
    $\bullet$ Un carré d'aire 1 $m^2$ est divisé en 9 carrés égaux. On colorie le carré central (\textbf{1\ier{}coloriage}).\
    
    $\bullet$ Les 8 autres carrés restants sont à leur tour divisés en 9 carrés égaux comme sur la figure ci-contre.\
    
    On colorie les 8 carrés centraux obtenus (\textbf{2\ieme{} coloriage}).\
    
    $\bullet$ Pour tout $n \in \mathbb{N}^*$, on pose $A_n$ l'aire de la surface totale coloriée après \boldmath$n$ \unboldmath \textbf{coloriages}.\
    
    $\bullet$ Soit $(B_n)_{n \ge 1}$ la suite définie par $B_n=A_n-1$.
    
    \end{minipage}
    
    Merci par avance pour vos précieux conseils.
  • Oui : mettre la commande \includegraphics après \end{minipage} plutôt qu'avant \begin{minipage}.
  • Bonjour Math Coss,

    Je viens d'essayer mais l'image est tronquée...
    Pourriez vous me dire si vous obtenez le même résultat que moi ?
    \newcommand*{\motcroise}{
     
    
    }
    
    \raisebox{-0.5\height}{\motcroise}
    
    \begin{minipage}{\linewidth-\widthof{\motcroise}}
    $\bullet$ Un carré d'aire 1 $m^2$ est divisé en 9 carrés égaux. On colorie le carré central (\textbf{1\ier{}coloriage}).\
    
    $\bullet$ Les 8 autres carrés restants sont à leur tour divisés en 9 carrés égaux comme sur la figure ci-contre.\
    
    On colorie les 8 carrés centraux obtenus (\textbf{2\ieme{} coloriage}).\
    
    $\bullet$ Pour tout $n \in \mathbb{N}^*$, on pose $A_n$ l'aire de la surface totale coloriée après \boldmath$n$ \unboldmath \textbf{coloriages}.\
    
    $\bullet$ Soit $(B_n)_{n \ge 1}$ la suite définie par $B_n=A_n-1$.
    
    \end{minipage}
    \includegraphics[scale=1, trim = 15cm 9cm 1cm 15cm, clip]{monimage}   
    \bigbreak
    
  • Je me suis mal exprimé. Je voulais juste te faire permuter la ligne « \raisebox{-0.5\height}{\motcroise} » et le bloc « $\backslash$begin{minipage}...$\backslash$end{minipage} ». Regarde ce que cela donne avec ça :
    \newcommand*{\motcroise}{\includegraphics[scale=1, trim = 15cm 9cm 1cm 15cm, clip]{monimage}}
    
    \begin{minipage}{\linewidth-\widthof{\motcroise}}% La ligne est remplie à 100 %
    $\bullet$ Un carré d'aire 1 $m^2$ est divisé en 9 carrés égaux. On colorie le carré central (\textbf{1\ier{} coloriage}).\
    
    $\bullet$ Les 8 autres carrés restants sont à leur tour divisés en 9 carrés égaux comme sur la figure ci-contre.\
    
    On colorie les 8 carrés centraux obtenus (\textbf{2\ieme{} coloriage}).\
    
    $\bullet$ Pour tout $n \in \mathbb{N}^*$, on pose $A_n$ l'aire de la surface totale coloriée après \boldmath$n$ \unboldmath \textbf{coloriages}.\
    
    $\bullet$ Soit $(B_n)_{n \ge 1}$ la suite définie par $B_n=A_n-1$.
    \end{minipage}
    ~\raisebox{-0.5\height}{\motcroise}%
    
    Quelques remarques, si je peux me permettre (j'adore me faire taper sur les doigts par brian).
    Un backslash à la fin d'une ligne, je ne vois pas à quoi ça sert.
    Un tilde ~ permet de mettre une espace insécable : c'est mieux qu'un point.
    Pour les unités, il vaut mieux les mettre en romain (pas en italique), ce que l'on peut faire par « $\$$1\;\mathrm{m}^2$\$$ ».
  • Math Coss a répondu avant moi, mais je poste quand même car cela me semble complémentaire.

    Dans l'exemple ci-dessus, la commande \maFigure servait à inclure l'image. Comme on a besoin de la mesurer puis de l'inclure, j'ai mis le \includegraphics à l'intérieur d'une commande afin d'éviter la redondance des paramètres (il est rarement souhaitable d'avoir plusieurs exemplaires du même code ou des mêmes données à garder synchronisés : on modifie une instance et on oublie de répercuter la modif. sur les autres ; si l'on se fiche de ça, pas besoin de \newcommand* ici).

    Mais ce que tu viens de poster :
    • n'est pas un exemple complet (même pas de \documentclass) ;
    • n'inclut pas l'image dans la définition de la commande \motcroise, qui devrait jouer le rôle que tenait \maFigure dans le message susmentionné.
    Te rends-tu compte que le \raisebox{-0.5\height}{\motcroise} ne fait rien d'utile dans ce que tu as posté, puisque ta définition de \motcroise est vide ? Il faut mettre l'insertion de l'image dans \motcroise, déplacer le \raisebox{...}{...} après la minipage et enlever le \includegraphics qui n'est pas dans \motcroise. Et faire attention aux espaces non désirés (dans ton exemple, il y en a un après la minipage).

    Tu peux insérer un espace horizontal entre le texte et la figure avec par exemple \hspace*{2cm} ou \hspace*{\fill} (voir plus haut), mais la page n'étant pas extensible, il faut alors retirer la largeur de l'espace ajouté soit de celle de la minipage, soit de celle de la figure (sauf si tu choisis \hspace*{\fill} car justement, celui-ci s'adapte, par définition). Mais je te conseille de commencer par une mise en page sans espace entre la figure et la minipage ; quand il n'y aura pas ou plus d'erreur, tu pourras toujours rajouter l'espace.

    Enfin, as-tu remarqué que ton \includegraphics utilise les options clip et trim ? Je te renvoie à la documentation d'includegraphics (lien direct vers le PDF), il faut que tu la mettes en favori (= bookmark) !

    @Math Coss

    Pourquoi te taperais-je sur les doigts ? :-) Les trucs que tu signales (backslash en fin de ligne suivi d'une ligne blanche, point pour je-ne-sais-quoi et unités en non-romain) ne sont pas de moi, si ? Je suis d'accord que les backslashes sont très bizarres, pour ne pas dire louches. Le point, je n'y comprends rien, de quel point parles-tu, au juste ?

    Quant aux unités, j'ai utilisé avec bonheur siunits par le passé, mais aujourd'hui je pense qu'il vaut mieux utiliser siunitx (N.B. : son auteur, Joseph Wright, est un des développeurs de LaTeX3). Au moins, tout est unifié, on peut certainement modifier la mise en forme globalement depuis un point central (come d'hab. quand les choses sont bien faites) et en plus, il y a des choses bien utiles pour aligner les nombres-avec-unités dans les tableaux (au sein d'une colonne donnée).
  • Par contre, Math Coss... (:P)

    J'ai oublié de dire, mais je crois que ton code ne tient pas compte de l'espace intermots (pas sûr du mot en français...) et de l'espace insécable insérées entre la minipage et la figure, non ? (on pourrait aussi mettre un \noindent avant la minipage pour être tranquille)

    Je dois filer, désolé...
  • Bon, comme j'ai suggéré d'utiliser siunitx, voici quelques exemples de choses qu'il sait faire (non exhaustif) :
    \documentclass[a4paper,11pt,french]{article}
    \usepackage{lmodern}
    \usepackage[T1]{fontenc}
    \usepackage[utf8]{inputenc}
    \usepackage{babel}
    \usepackage{textcomp}
    \usepackage{multicol}
    
    \usepackage{xcolor} % Pour faire du coloriage d'unités (ici)...
    \usepackage{cancel} % Pour la commande \cancel de siunitx
    \usepackage{siunitx}
    \sisetup{output-decimal-marker = {,}, % virgule comme séparateur décimal
             group-minimum-digits = 4,    % grouper les chiffres trois par trois
             binary-units}                % si l'on veut avoir \byte, \kibi...
    
    % Exemples de définitions d'un préfixe et d'une unité « maison »
    \DeclareBinaryPrefix\myKibi{MKi}{10} % 1\myKibi\machin = 2^10 \machin
    \DeclareSIUnit{\myByte}{myB}
    
    
    \begin{document}
    \setlength{\parindent}{0pt}%
    % Si l'on met de l'élasticité dans \parskip, multicols s'en donne à cœur joie
    % sans prévenir, apparemment...
    \setlength{\parskip}{10pt}%
    %
    \begin{multicols}{2}
    \num{123456789.123456789}\\ % utilise la config faite plus haut
    % Idem à part que le séparateur décimal est copié tel qu'entré
    \num[copy-decimal-marker]{123456789.123456789}\\
    \sisetup{group-digits = false}%
    \num{123456789.123456789}\\
    \sisetup{group-digits = true, group-minimum-digits = 4}%
    \num{123456789.123456789}\\
    \num[group-digits = integer]{123456789.123456789}\\
    \num[group-digits = decimal]{123456789.123456789}\\
    \num[group-separator = {,}]{1234567890}\\ % Pourrait se produire en mode maths
    % On s'assure d'être en mode texte
    \num[group-separator = \text{\kern 0.2em}]{1234567890}\\
    \num[group-separator = {,}, output-decimal-marker = {.}]{12345.678901234}\\
    \num{3.45d-4}\\
    \num{3,45d-4}\\
    \sisetup{negative-color = red}%
    \num{120}\\
    \num{-120}
    
    \num[output-complex-root = \text{\ensuremath{i}}]{1 \pm 2i e3}\\
    \num[copy-complex-root]{1+2j}\\ % siunitx garde la lettre utilisée, ici 'j'
    \num{1 \pm 2i e3}\\
    \num[tight-spacing = true]{1 \pm 2i e3} % utile quand on a besoin de place
    
    \ang{12.3}\\
    \ang{1;2;3}
    
    \si{kg.m.s^{-1}}\\
    \si{\kilogram\metre\per\second}\\
    % per-mode=symbol ne marche qu'avec ce type de syntaxe, pas avec kg.m.s^{-1}.
    \si[per-mode=symbol]{\kilogram\metre\per\second}\\
    \si{\henry\tothe{5}}\\
    \si{\raiseto{4.5}\radian}\\
    \si{\kilogram\of{metal}}\\
    % ~ et . font la même chose ici : un produit d'unités
    \si{g_{polymer}~mol_{cat}.s^{-1}}\\
    \si[per-mode = fraction]{\cancel\kilogram\metre\per\cancel\kilogram\per\second}\\
    \si{\highlight{blue}\kilogram\metre\per\second}\\
    \si[unit-color = purple]{\highlight{orange}\kilogram\metre\per\second}
    
    \columnbreak
    \SI{12,5}{\meter}\\
    \SI{.23e7}{\candela}\\
    % Utilise une police texte (on peut avoir des chiffres oldstyle...).
    \SI[mode=text]{1.23}{J.mol^{-1}.K^{-1}}\\
    \SI[per-mode=symbol]{1.99}[\$]{\per\kilogram}\\
    \SI[per-mode=fraction]{1,345}{\coulomb\per\mole}\\
    % Pas des unités SI proprement dites, mais pratique
    \SI{95}{\percent}\\
    \SI{3}{\litre}\\
    \SI{3}{\liter}\\
    \SI{10}{\tonne}\\
    \SI{5}{\arcminute}\\
    \SI{2}{\arcsecond}\\
    \SI{5}{\minute}\\
    \SI{640}{\kibi\byte}\\
    \SI{640}{\myKibi\myByte}
    
    \SIlist{0.13;0.67;0.80}{\milli\metre}\\
    \SIlist{0.13;0.67;0.80}{mm}\\
    \SIrange{0.13}{0.67}{\milli\metre}
    
    % Voir “Parsing numbers” dans la doc de siunitx.
    \num{< 10}\\
    \SI{>> 5}{\metre}\\
    \num{\le 0.12}
    
    \sisetup{round-mode = places, round-precision=3}%
    \num{0.0055}\\                % affiché comme 0.006
    \num{0.0045}\\                % affiché comme 0.005
    \sisetup{round-precision=2}   % on remet la valeur par défaut
    \num{0.0055}\\                % affiché comme 0.01
    \num{0.0045}\\                % affiché comme 0.00
    \sisetup{round-minimum = 0.01}%
    \num{0.0055}\\                % affiché comme 0.01
    \num{0.0045}%                   affiché comme <0.01
    
    \num{1234(5)}\\
    \num{1234+-5}\\
    \num{1234\pm 5}\\
    \sisetup{separate-uncertainty = true}%
    \num{1234(5)}\\
    \sisetup{
      separate-uncertainty = false,
      output-open-uncertainty = [,
      output-close-uncertainty = ],
      uncertainty-separator = {\,}
    }%
    \num{1234(5)}
    \end{multicols}
    \end{document}
    

    xCCqQeU.png

    J'espère avoir convaincu que c'est mieux de cette façon(*) qu'en entrant les unités manuellement au sein des formules. :-)

    (*) Au minimum, que cela rend beaucoup plus facile de changer la forme globalement par la suite (il y a aussi des options pour le choix des polices, soit en utilisant toujours les mêmes, soit en tenant compte du contexte : voir la doc.).
  • Tu veux dire qu'il faudrait un % après \end{minipage} et rétrécir un peu la taille de ladite minipage ? Oui, sans doute, j'ai juste échangé la gauche et la droite... Le point, c'est celui qui est entre la minipage et le graphics dans le code initial, que j'ai remplacé par ~.

    Quant au \noindent avant \begin{minipage}, on peut imaginer que le pianiste utilise une indentation nulle comme ici.
  • Math Coss a écrit:
    Tu veux dire qu'il faudrait un % après \end{minipage} et rétrécir un peu la taille de ladite minipage ?

    Oui, mais avec le ~, ça va être difficile de retirer la bonne longueur à la largeur de la minipage, car la largeur d'un tie (~) varie en fonction des besoins de la justification, exactement comme l'espace intermot. C'est pour cela que je suggérais d'utiliser soit une longueur fixe telle que 2cm (le lien ci-dessus explique même comment rendre l'espace insécable, si besoin...), soit une longueur étirable à volonté telle que \fill — auquel cas, il n'y a rien à changer dans la largeur de la minipage.
    Math Coss a écrit:
    Le point, c'est celui qui est entre la minipage et le graphics dans le code initial, que j'ai remplacé par ~.

    OK, donc ce point n'était pas de moi.
    Math Coss a écrit:
    Quant au \noindent avant \begin{minipage}, on peut imaginer que le pianiste utilise une indentation nulle comme ici.

    Tout à fait ; c'est juste qu'avec \noindent, on est tranquille, quelle que soit la valeur de \parindent. D'autant que ce genre de choses pourrait bien se mettre dans des macros qui seraient peut-être copiées/collées ou mises dans un .sty, réutilisées dans d'autres documents... Bref, mettre un \noindent ici, ce n'est pas grand-chose, mais ça ne coûte rien et peut rendre service. That's all, folks...
  • Désolé, ma réponse précédente à Math Coss était à moitié pourrie, je vais essayer de la corriger. Il est vrai que le ~ a une largeur variable en fonction des besoins de la justification, égale à celle d'une espace intermot. Il est également vrai que ceci implique qu'il n'est pas toujours une très bonne idée d'utiliser \widthof{~} dans des calculs de longueur, car \widthof{~} donne la largeur naturelle du ~ (celle qu'il occupe dans n'importe quelle \mbox{...}), qui ne sera pas forcément celle prise par un ~ au sein d'un paragraphe. En revanche, pour l'exemple qui nous concerne ici, utiliser \widthof{~} comme l'a suggéré Math Coss ne pose pas de problème. En effet, le ~ entre la figure et la minipage serait le seul élément étirable de la ligne — le reste n'étant constitué que de deux boîtes, or une boîte au sens de TeX n'est jamais étirable —, donc si la place qu'on lui laisse est pile poil sa largeur naturelle... eh bien, il va l'occuper sans aucun problème, évidemment.

    Pour me faire pardonner (?) et peut-être aussi pour ne pas perdre mes rudiments de LaTeX3, j'ai écrit un environnement nommé 'brSidebyside' et l'ai placé dans un package (.sty) pour faciliter et rendre à peu près propre son utilisation (il doit falloir une installation de LaTeX pas trop ancienne, disons de 2017 ou plus récente, pour certaines des commandes LaTeX3 utilisées). Cet environnement réalise de manière automatique les mises en forme discutées dans ce fil — figure ou boîte quelconque à gauche ou à droite de la minipage — et permet des réglages supplémentaires si l'on veut laisser de l'espace à gauche des deux boîtes, entre les deux ou à droite. Il permet d'ajouter si on le souhaite un filet (trait) au-dessus ou en-dessous de tout ça. Leurs épaisseurs, etc. sont réglables, et l'on peut également choisir de faire en sorte que la boîte résultante occupe non pas nécessairement toute la ligne, mais éventuellement une largeur choisie. Bref, c'est censé être plus facile à utiliser que le placement fait « à la main » comme discuté ci-dessus, et plus souple. Pour se faire une idée plus concrète de tout ça, voici un exemple de rendu avec un rectangle dans le rôle de l'image :

    iwwmSoc.png

    L'exemple d'utilisation le plus simple se présenterait comme ceci :
    \documentclass[...]{...}
    \usepackage{brsidebyside}
    
    \begin{document}
    
    \begin{brSidebyside}{[i]<une boîte>[/i]}
      [i]<contenu>[/i]
    \end{brSidebyside}
    
    \end{document}
    
    Dans cet exemple, <une boîte> pourrait être le \includegraphics de pianiste06, et <contenu> le texte à mettre dans la minipage. Par défaut, la figure (plus généralement, <une boîte>, que j'appelle la “given box” dans ma doc) est à droite de la minipage. Si l'on souhaite l'avoir à gauche de la minipage comme dans la capture d'écran ci-dessus, il suffit de faire :
    \begin{brSidebyside}[box-pos=left]{[i]<une boîte>[/i]}
      [i]<contenu>[/i]
    \end{brSidebyside}
    
    'box-pos=right' fonctionne aussi si l'on veut être explicite, mais il a une seconde utilité. En effet, il y a plusieurs options disponibles pour l'argument entre crochets, et il serait très mauvais d'être obligé de répéter les mêmes options plein de fois dans son document (la redondance est un cauchemar pour les évolutions futures du document). Par exemple, si l'on veut que <une boîte> soit par défaut à gauche de la minipage, il suffit de faire ceci au préalable :
    \brSidebysideSetup{box-pos=left}
    
    On peut ajouter d'autres options en utilisant la virgule comme séparateur. Cette commande respecte la notion de groupe de TeX, donc les valeurs mises à l'intérieur d'un groupe (p. ex., entre des accolades) sont oubliées quand on sort du groupe. Exemple :
    {% Début d'un groupe TeX
      \brSidebysideSetup{box-pos=left,
                         top-rule-thickness = 1.2pt,
                         top-rule-sep = 3pt,
                         bottom-rule-thickness = 1.2pt,
                         bottom-rule-sep = 3pt}%
      %
      \begin{brSidebyside}{<une boîte1>}
        <contenu1>
      \end{brSidebyside}%
      %
      \begin{brSidebyside}[box-pos=right]{<une boîte2>}
        <contenu2>
      \end{brSidebyside}%
    }%
    %
    begin{brSidebyside}{<une boîte3>}
      <contenu3>
    \end{brSidebyside}%
    
    Dans le cas 1, les options en vigueur sont celles définies par la commande \brSidebysideSetup située à l'intérieur du groupe (entre les accolades). Dans le cas 2, c'est pareil sauf pour 'box-pos=right' qui « prend le dessus ». Le cas 3, quant à lui, utilise exactement les mêmes options que juste avant l'ouverture du groupe.

    Comme on l'aura deviné, les paramètres 'top-rule-thickness', 'top-rule-sep', 'bottom-rule-thickness' et 'bottom-rule-sep' déterminent l'épaisseur des filets supérieur et inférieur de la grosse boîte fabriquée par l'environnement 'brSidebyside'. En mettant les valeurs 0pt comme ci-dessus, on supprime les filets (traits) en question.

    Je viens de dire que l'environnement 'brSidebyside' fabrique une grosse boîte. C'est vrai, à condition de lui passer l'option 'only-box=true'. Par défaut, ou avec 'only-box=false', il fait un peu plus que cela pour que ce soit pratique à utiliser au fil du texte : il insère un saut de paragraphe avant et après, et centre la grosse boîte horizontalement.

    Vous allez me dire, à quoi ça sert de la centrer horizontalement, si elle occupe toute la largeur de la page ? Eh bien justement, ce n'est pas obligé. Avec le paramètre 'width' (par défaut, \linewidth), on peut choisir la largeur de la grosse boîte fabriquée (celle que j'appelle la boîte B dans la doc.).

    Il reste essentiellement deux réglages dont je n'ai pas encore parlé : d'une part, on peut choisir une largeur précise pour la minipage (au lieu de faire en sorte qu'elle occupe toute la largeur de la boîte B à l'exception de celle occupée par <une boîte>). Ceci se fait à l'aide de l'option 'minipage-width'. D'autre part, en pareil cas, il faut bien combler l'espace restant dans la boîte B de largeur 'width'. Pour cela, la boîte B contient trois ressorts disposés de part et d'autre des deux boîtes. On peut contrôler leurs raideurs avec les parmètres 'left', 'middle' et 'right'. En mettant 0.0 pour la raideur d'un ressort, on s'assure qu'il aura une longueur nulle (à supposer qu'ils n'ont pas tous trois une raideur nulle). Voici un exemple de rendu avec 'minipage-width' non vide (la minipage occupe donc la largeur spécifiée ; les raideurs des ressorts gauche, milieu et droit sont respectivement 2.1, 10.6 et 3.3) :

    SGy2pGd.png

    Vous trouverez de nombreux exemples dans le fichier de tests suivant, dont le rendu PDF est attaché à ce message :
    \documentclass[a4paper,11pt,french]{article}
    \usepackage{lmodern}
    \usepackage[T1]{fontenc}
    \usepackage[utf8]{inputenc}
    \usepackage[main=french,english]{babel}
    \usepackage{textcomp}
    \usepackage[top=3cm, headsep=1cm, lines=42, width=15cm]{geometry}
    \usepackage{brsidebyside}
    \usepackage[svgnames]{xcolor}
    \usepackage{kantlipsum}
    
    % Petites commandes et environnements pour améliorer la présentation et la
    % lisibilité de ces tests.
    \newcommand*{\testNumero}[1]{%
      \clearpage\noindent \textcolor{MediumBlue}{\textsf{\textbf{#1}}}%
      \par\nopagebreak\vspace{1ex}%
    }
    
    % Commentaires sur les tests
    \newenvironment{testComment}{%
      \sffamily\slshape
      \ignorespaces
    }{%
      \par\nopagebreak\vspace{0.5ex}%
    }
    
    % Pour remplir la minipage de chaque test
    \newcommand*{\testContents}{%
      \begin{otherlanguage}{english}%
        \kant[10]%
      \end{otherlanguage}%
    }
    
    % Un rectangle plein qui fait office d'image pour les tests
    \newcommand*{\testRule}[2]{%
      \textcolor{gray!80}{\rule{#1}{#2}}%
    }
    
    \begin{document}
    \setlength{\parindent}{0pt}%
    %
    % Afin d'éviter les réglages redondants, on peut mémoriser les options de
    % l'environnement 'brSidebyside' comme ceci, par exemple :
    %
    %   \brSidebysideSetup{width = 0.8\linewidth,
    %                      minipage-width = 0.4\linewidth,
    %                      top-rule-thickness = 1.2pt,
    %                      top-rule-sep = 3pt,
    %                      bottom-rule-thickness = 1.2pt,
    %                      bottom-rule-sep = 3pt}%
    %
    % Cette commande respecte les groupes TeX. Par exemple :
    %
    %   \brSidebysideSetup{minipage-width=0.4\linewidth}%
    %   {%
    %     \brSidebysideSetup{minipage-width=0.6\linewidth}%
    %
    %     \begin{brSidebyside}[...]{...}
    %        ...
    %     \end{brSidebyside}
    %   }%
    %
    %   À partir d'ici, on retrouve la valeur de 'minipage-width' mémorisée
    %   avant le groupe : 0.4\linewidth.
    %
    \testNumero{1}%
    \begin{testComment}
      Le filet ci-dessous sert uniquement à matérialiser la ligne (largeur
      \verb|\linewidth|) :
    \end{testComment}%
    %
    \mbox{}\hrulefill
    %
    \begin{brSidebyside}{\testRule{6cm}{2cm}}
      \testContents
    
    \begin{verbatim}
      Ce petit canaillou de verbatim &~#$^@% !
      fonctionne bien ici. Encore quelques-uns
      pour faire bonne mesure : {}[]''".
    \end{verbatim}
    \end{brSidebyside}
    
    \testNumero{2}%
    \begin{brSidebyside}[box-pos=left]%
                        {\testRule{6cm}{2cm}}
      \testContents
    \end{brSidebyside}
    
    \testNumero{3}%
    \begin{brSidebyside}[box-pos=left, minipage-width=0.5\linewidth]%
                        {\testRule{6cm}{2cm}}
      \testContents
    \end{brSidebyside}
    
    % Trois ressorts permettent de régler le placement de l'image et de la
    % minipage au sein d'une \hbox de largeur \linewidth (c'est la valeur par
    % défaut du paramètre 'width'). On peut choisir la constante de raideur k de
    % chacun de ces ressorts.
    %
    % r. gauche (k=1.0) | image | r. milieu (k=0.0) | minipage | r. droit  (k=1.0)
    %
    % Comme on donne au ressort du milieu une raideur nulle (0.0) et aux ressorts
    % gauche et droit une raideur strictement positive (1.0), l'image et la
    % minipage sont collées l'une à l'autre.
    \testNumero{4}%
    \begin{brSidebyside}[box-pos=left, minipage-width=0.5\linewidth,
                         left=1.0, middle=0.0, right=1.0]%
                        {\testRule{6cm}{2cm}}
      \testContents
    \end{brSidebyside}
    
    \testNumero{5}%
    \begin{brSidebyside}[box-pos=left, minipage-width=0.5\linewidth,
                         left=1, middle=2, right=1]%
                        {\testRule{6cm}{2cm}}
      \testContents
    \end{brSidebyside}
    
    \testNumero{6}%
    \begin{brSidebyside}[box-pos=left, minipage-width=0.5\linewidth,
                         left=2.1, middle={0.1+10.5}, right={1.1*3}]%
                        {\testRule{6cm}{2cm}}
      \testContents
    \end{brSidebyside}
    
    \testNumero{7}%
    \mbox{}\hrulefill
    \begin{brSidebyside}[minipage-width=0.4\linewidth,
                         top-rule-thickness = 1pt,
                         top-rule-sep = 0ex,
                         bottom-rule-thickness = 1pt,
                         bottom-rule-sep = 0ex]%
                        {\testRule{4cm}{2cm}}
      \testContents
    \end{brSidebyside}
    
    \testNumero{8}%
    \begin{brSidebyside}[minipage-width=0.4\linewidth,
                         top-rule-thickness = 3pt,
                         top-rule-sep = 3ex,
                         bottom-rule-thickness = 5pt,
                         bottom-rule-sep = 6ex]%
                        {\testRule{4cm}{2cm}}
      \testContents
    \end{brSidebyside}
    
    \testNumero{9}%
    \begin{brSidebyside}[width=0.7\linewidth,
                         minipage-width=0.4\linewidth]%
                        {\testRule{4cm}{2cm}}
      \testContents
    \end{brSidebyside}
    
    Paragraphe suivant.
    
    \testNumero{10}%
    Une bo\frame{%
    \begin{brSidebyside}[width=0.7\linewidth,
                         minipage-width=0.4\linewidth,
                         only-box=true]% on veut juste la grosse boîte, rien d'autre
                        {\testRule{4cm}{2cm}}
      \testContents
    \end{brSidebyside}%
    }îte au sein d'un paragraphe. Bla bla bla bla bla bla bla bla bla bla bla bla bla
    bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla
    bla.
    
    \bigskip
    \begin{testComment}
      Dans ce qui suit, nous allons tester \verb|\brSidebysideSetup| et son
      comportement avec les groupes (localité des changements). On place ceci dans
      un groupe :\nopagebreak
    
      \begin{verbatim}
      \brSidebysideSetup{width=0.8\linewidth,
                         minipage-width=0.4\linewidth,
                         top-rule-thickness = 1.5pt,
                         top-rule-sep = 6pt,
                         bottom-rule-thickness = 1.5pt,
                         bottom-rule-sep = 6pt}
      \end{verbatim}
    \end{testComment}
    %
    {%
      \brSidebysideSetup{width=0.8\linewidth,
                         minipage-width=0.4\linewidth,
                         top-rule-thickness = 1.5pt,
                         top-rule-sep = 6pt,
                         bottom-rule-thickness = 1.5pt,
                         bottom-rule-sep = 6pt}%
      %
      \testNumero{11}%
      \begin{testComment}
        À l'intérieur du groupe. Aucune option ajoutée, on hérite des options
        ci-dessus :
      \end{testComment}%
      %
      \begin{brSidebyside}{\testRule{4cm}{2cm}}
        \testContents
      \end{brSidebyside}
    
      \begin{testComment}
        Voici la \verb|\linewidth| :
      \end{testComment}%
      \mbox{}\hrulefill
    
      \testNumero{12}%
      \begin{testComment}
        En passant seulement \verb|minipage-width={}| \emph{(i.e.,} une valeur
        vide pour \verb|minipage-width|, les autres paramètres étant hérités) :
      \end{testComment}%
      %
      \begin{brSidebyside}[minipage-width={}]{\testRule{4cm}{2cm}}
        \testContents
      \end{brSidebyside}
      \mbox{}\hrulefill
    
      \testNumero{13}%
      \begin{testComment}
        En passant seulement \verb|width=\linewidth|, le reste étant hérité :
      \end{testComment}%
      %
      \begin{brSidebyside}[width=\linewidth]{\testRule{4cm}{2cm}}
        \testContents
      \end{brSidebyside}
      \mbox{}\hrulefill
    }%
    
    \testNumero{14}%
    \begin{testComment}
      Nous sommes sortis du groupe où l'on a fait \verb|\brSidebysideSetup| ; les
      paramètres spécifiés avec cette commande ne s'appliquent donc plus :
    \end{testComment}%
    %
    \begin{brSidebyside}{\testRule{4cm}{2cm}}
      \testContents
    \end{brSidebyside}
    \mbox{}\hrulefill
    \end{document}
    

    Voici maintenant le contenu du fichier brsidebyside.sty :
    % brsidebyside.sty --- Environment: put a box and a minipage side by side
    % -*- coding: utf-8 -*-
    %
    % Copyright (C) 2019  'brian' from forum
    %                     <http://www.les-mathematiques.net/phorum/index.php>
    %
    % This work may be distributed and/or modified under the
    % conditions of the LaTeX Project Public License, either version 1.3
    % of this license or (at your option) any later version.
    % The latest version of this license is in
    %   http://www.latex-project.org/lppl.txt
    % and version 1.3 or later is part of all distributions of LaTeX
    % version 2005/12/01 or later.
    %
    % This work has the LPPL maintenance status `maintained'.
    %
    % The Current Maintainer of this work is “brian from les-mathematiques.net”.
    %
    % This work consists of the sole file brsidebyside.sty.
    %
    % --------------------------------------------------------------------------
    %
    % L'élément central de ce package est l'environnement 'brSidebyside'.
    %
    % Syntaxe :
    %
    %   \begin{brSidebyside}[option1=valeur1, option2=valeur2, ...]{<given box>}
    %     <contenu>
    %   \end{brSidebyside}
    %
    % L'argument obligatoire définit la “given box” qui peut être une boîte
    % quelconque : image ou n'importe quoi d'autre, du moment que c'est une boîte.
    % Le <contenu> sera automatiquement mis dans une minipage par l'environnement
    % 'brSidebyside'.
    %
    % Rôle des paramètres que l'on peut indiquer dans l'argument optionnel
    % ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    %
    % Par défaut, la “given box” est placée à droite de la minipage fabriquée à
    % partir de <contenu>. On peut spécifier ce choix ou le choix inverse avec
    % 'boxpos=left' ou 'boxpos=right' dans l'argument optionnel.
    %
    % Le paramètre 'width' indique la largeur de la boîte B à fabriquer, contenant
    % des filets supérieur et inférieur, la “given box” et la minipage remplie
    % avec <contenu> (la boîte B contient aussi des espaces et ressorts que je ne
    % précise pas). La valeur par défaut du paramètre 'width' est \linewidth.
    %
    % Le paramètre 'minipage-width' détermine la largeur de la minipage hébergeant
    % <contenu>.
    %
    % - Par défaut, 'minipage-width' est vide ; la largeur de la minipage
    %   est alors calculée comme 'width' - largeur de la “given box”. Autrement
    %   dit, dans ce cas, la minipage et la “given box” remplissent précisément la
    %   largeur 'width' sans qu'aucun espace horizontal ne soit nécessaire.
    %
    % - Si l'on passe une valeur non vide pour 'minipage-width', elle indique la
    %   largeur à utiliser pour la minipage hébergeant <contenu>. La position de
    %   cette minipage et de la “given box” au sein de la largeur totale 'width'
    %   sont alors déterminées par trois ressorts dont les raideurs sont données
    %   par les paramètres 'left', 'middle' et 'right'. Les deux boîtes (minipage
    %   et “given box”) entourées des trois ressorts remplissent la largeur
    %   'width' choisie.
    %
    % Les paramètres 'top-rule-thickness', 'top-rule-sep', 'bottom-rule-thickness'
    % et 'bottom-rule-sep' déterminent l'épaisseur des filets supérieur et
    % inférieur de la boîte B (ces filets sont des “rules”). Leur « largeur »
    % (dans la direction horizontale de la page) est toujours celle déterminée par
    % le paramètre 'width'. Il suffit de mettre ces quatre paramètres à 0pt pour
    % supprimer les filets et l'espace qui les sépare du contenu « plus interne »
    % de la boîte B.
    %
    % Le paramètre 'only-box' précise si l'on veut que l'environnement constitue
    % un paragraphe à lui tout seul (avec contenu centré), ou bien se contente de
    % produire la boîte B. Le réglage par défaut correspond à 'only-box=false' ;
    % l'environnement 'brSidebyside' commence alors par un \par, affiche la boîte
    % B de largeur 'width' centrée dans la ligne et termine par un \par. En
    % revanche, si l'on passe 'only-box=true', l'environnement 'brSidebyside' ne
    % produit rien d'autre que la boîte B. On peut alors en disposer comme on le
    % souhaite (la mettre dans un tableau, lui faire subir une rotation, etc.).
    %
    % La commande \brSidebysideSetup permet de mémoriser les valeurs des options
    % décrites ci-dessus, pour ne pas avoir à répéter les mêmes options à chaque
    % fois que l'on utilise l'environnement 'brSidebyside'. Elle respecte la
    % notion de groupe de TeX (délimité par des accolades ou par
    % \begingroup ... \endgroup) et s'utilise comme suit :
    %
    %   \brSidebysideSetup{option1=valeur1, option2=valeur2, ...}
    %
    \NeedsTeXFormat{LaTeX2e}[1995/12/01]
    \ProvidesPackage{brsidebyside}[2019/01/13 v0.1
                                   Box and minipage side by side]
    \RequirePackage{expl3}
    \RequirePackage{xparse}
    
    
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    %%%%                               Main code                              %%%%
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    
    \ExplSyntaxOn
    
    % Message d'erreur LaTeX3 (l10n-ready).
    \msg_new:nnn { brsidebyside } { unknown-choice-for-option }
      {
        Invalid~value~for~option~\exp_not:n {'#1'}:~\exp_not:n {'#3'}~
        (valid~choices~are~\exp_not:n {#2})
      }
    
    % Booléen qui dit si la “given box” (image ou autre) doit être placée à gauche
    % de la minipage (sinon, c'est à droite).
    \bool_new:N \l__brSidebyside_boxposleft_bool
    % Booléen qui dit si l'environnement 'brSidebyside' ne doit produire que la
    % boîte B ou un peu plus (voir doc. de l'environnement 'brSidebyside').
    \bool_new:N \l__brSidebyside_only_output_box_bool
    % Argument passé à l'environment 'brSidebyside' via 'minipage-width=...'.
    \tl_new:N \l__brSidebyside_minipage_width_arg_tl
    % Raideurs des trois ressorts (fp = floating point).
    \fp_new:N \l__brSidebyside_left_spring_stiffness_fp   % avant première boîte
    \fp_new:N \l__brSidebyside_middle_spring_stiffness_fp % entre les deux boîtes
    \fp_new:N \l__brSidebyside_right_spring_stiffness_fp  % après seconde boîte
    % Pour pouvoir évaluer l'expression au dernier moment (utile p. ex. si elle
    % contient \linewidth).
    \tl_new:N \l__brSidebyside_total_width_tl
    % Largeur totale de la boîte créée (« objectif »), obtenue en évaluant
    % \l__brSidebyside_total_width_tl.
    \dim_new:N \l__brSidebyside_total_width_dim
    % Filets supérieur et inférieur.
    \dim_new:N \l__brSidebyside_top_rule_thickness_dim
    \dim_new:N \l__brSidebyside_bottom_rule_thickness_dim
    \dim_new:N \l__brSidebyside_top_rule_sep_skip
    \dim_new:N \l__brSidebyside_bottom_rule_sep_skip
    
    % Pour gérer des arguments avec une syntaxe type clé1=valeur1, clé2=valeur2...
    \keys_define:nn { brSidebyside }
      {
        box-pos .choice:,
        box-pos / left .code:n = {
          \bool_set_true:N \l__brSidebyside_boxposleft_bool },
        box-pos / right .code:n = {
          \bool_set_false:N \l__brSidebyside_boxposleft_bool },
        box-pos .initial:n = { right },
        box-pos / unknown .code:n = {
          \msg_fatal:nnxxx { brsidebyside } { unknown-choice-for-option }
            { box-pos }             % Clé
            { 'left'~and~'right' }  % Valeurs admissibles
            { \exp_not:n {#1} }     % Valeur (invalide) passée par l'utilisateur
        },
    
        % La sémantique serait différente avec .tl_set_x:N ; je crois que la plus
        % utile est celle-ci.
        minipage-width .tl_set:N = \l__brSidebyside_minipage_width_arg_tl,
        minipage-width .initial:n = { },
    
        left .fp_set:N = \l__brSidebyside_left_spring_stiffness_fp,
        left .initial:n = { 0.0 },
    
        middle .fp_set:N = \l__brSidebyside_middle_spring_stiffness_fp,
        middle .initial:n = { 1.0 },
    
        right .fp_set:N = \l__brSidebyside_right_spring_stiffness_fp,
        right .initial:n = { 0.0 },
    
        width .tl_set:N = \l__brSidebyside_total_width_tl,
        width .initial:n = { \linewidth },
    
        top-rule-thickness .dim_set:N = \l__brSidebyside_top_rule_thickness_dim,
        top-rule-thickness .initial:n = { 1pt },
    
        top-rule-sep .skip_set:N = \l__brSidebyside_top_rule_sep_skip,
        top-rule-sep .initial:n = { 2pt },
    
        bottom-rule-thickness .dim_set:N =
                                        \l__brSidebyside_bottom_rule_thickness_dim,
        bottom-rule-thickness .initial:n = { 1pt },
    
        bottom-rule-sep .skip_set:N = \l__brSidebyside_bottom_rule_sep_skip,
        bottom-rule-sep .initial:n = { 2pt },
    
        only-box .bool_set:N = \l__brSidebyside_only_output_box_bool,
        only-box .initial:n = { false }
      }
    
    % Implémentation alternative pour l'environnement « centré qui commence et
    % finit par \par » (correspondant à l'actuel 'brSidebyside' avec
    % 'only-box=false').
    %
    % \NewDocumentEnvironment { brSidebyside } { }
    %   {
    %     \center
    %     \leavevmode
    %     \brSidebysideB  % c'était l'environnement qui faisait « juste la boîte B »
    %   }
    %   {
    %     \endbrSidebysideB
    %     \endcenter
    %   }
    
    \dim_new:N \l__brSidebyside_minipage_width_dim
    \box_new:N \l__brSidebyside_given_box
    \box_new:N \l__brSidebyside_adjusted_given_box
    \box_new:N \l__brSidebyside_minipage_box
    
    % ****************************************************************************
    % *                      L'environnement 'brSidebyside'                      *
    % ****************************************************************************
    \NewDocumentEnvironment { brSidebyside } { O{ } m }
      {
        \keys_set:nn { brSidebyside } {#1} % traitement des couples (clé, valeur)
        \hbox_set:Nn \l__brSidebyside_given_box {#2}
    
        % On évalue la <dimension expression> donnant la largeur totale
        \dim_set:Nn \l__brSidebyside_total_width_dim
          { \tl_use:N \l__brSidebyside_total_width_tl }
    
        % Détermination de la largeur de la minipage
        \tl_if_empty:NTF \l__brSidebyside_minipage_width_arg_tl
          {
            \dim_set:Nn \l__brSidebyside_minipage_width_dim
              { \l__brSidebyside_total_width_dim -
                \box_wd:N \l__brSidebyside_given_box }
          }
          {
            \dim_set:Nn \l__brSidebyside_minipage_width_dim
              { \tl_use:N \l__brSidebyside_minipage_width_arg_tl }
          }
    
        \hbox_set:Nw \l__brSidebyside_minipage_box % équivalent à début env. lrbox
        \minipage { \l__brSidebyside_minipage_width_dim }
      }
      {
        \endminipage
        \hbox_set_end:
    
        % On met dans \l__brSidebyside_adjusted_given_box la boîte donnée, après
        % décalage vertical.
        \hbox_set:Nn \l__brSidebyside_adjusted_given_box
          {
            \box_move_down:nn
              { 0.5\box_ht:N \l__brSidebyside_given_box }
              { \box_use_drop:N \l__brSidebyside_given_box }
          }
    
        \bool_if:nF \l__brSidebyside_only_output_box_bool
          {
            \par
            \noindent
            \hbox:n { }            % pour que le \skip qui suit ne soit pas annulé
            \skip_horizontal:n { 0cm plus 1fill }
          }
    
        \vbox:n { \__brSidebyside_main_vbox_contents: }
    
        \bool_if:nF \l__brSidebyside_only_output_box_bool
          {
            \skip_horizontal:n { 0cm plus 1fill }
            \hbox:n { }
            \par
          }
      }
    
    % Contenu de la \vbox extérieure, que j'appelle la boîte B dans la doc.
    \cs_new_protected:Nn \__brSidebyside_main_vbox_contents:
      {
        % Filet supérieur
        \hrule height \l__brSidebyside_top_rule_thickness_dim \relax
        \skip_vertical:N \l__brSidebyside_top_rule_sep_skip
    
        % On met tout dans une \hbox pour que TeX gueule si jamais ça ne rentre
        % pas dans la largeur indiquée (ceci se produit notamment si le paramètre
        % 'minipage-width' passé est trop grand compte tenu du paramètre 'width'
        % et de la largeur de la “given box”).
        \hbox_to_wd:nn \l__brSidebyside_total_width_dim
          {
            \__brSidebyside_main_hbox_contents:NNnnn
              % Image ou autre, déjà à la bonne hauteur
              { \l__brSidebyside_adjusted_given_box }
              { \l__brSidebyside_minipage_box }
              { \l__brSidebyside_left_spring_stiffness_fp }
              { \l__brSidebyside_middle_spring_stiffness_fp }
              { \l__brSidebyside_right_spring_stiffness_fp }
          }
    
        % Filet inférieur
        \skip_vertical:N \l__brSidebyside_bottom_rule_sep_skip
        \hrule height \l__brSidebyside_bottom_rule_thickness_dim \relax
      }
    
    % Insère un ressort, une boîte, un ressort, une boîte, un ressort.
    \cs_new_protected:Npn \__brSidebyside_main_hbox_contents:NNnnn #1#2#3#4#5
      {
        \skip_horizontal:n { 0cm plus \fp_to_decimal:N #3 fill }
    
        \bool_if:NTF \l__brSidebyside_boxposleft_bool
          { \box_use_drop:N #1 }
          { \box_use_drop:N #2 }
    
        \skip_horizontal:n { 0cm plus \fp_to_decimal:N #4 fill }
    
        \bool_if:NTF \l__brSidebyside_boxposleft_bool
          { \box_use_drop:N #2 }
          { \box_use_drop:N #1 }
    
        \skip_horizontal:n { 0cm plus \fp_to_decimal:N #5 fill }
      }
    
    % Commande permettant de mémoriser les valeurs utilisables dans le paramètre
    % optionnel de l'environnement 'brSidebyside'.
    %
    % l3keys respecte le grouping TeX, donc il peut être utile d'exécuter cette
    % commande dans un groupe pour limiter sa portée. Voir description en haut du
    % fichier.
    %
    \NewDocumentCommand \brSidebysideSetup { m }
      {
        \keys_set:nn { brSidebyside } {#1}
      }
    
    \ExplSyntaxOff
    
    \endinput
    
    On peut placer ce fichier (brsidebyside.sty) dans le même répertoire que le fichier .tex contenant \usepackage{brsidebyside}. Si l'on souhaite partager brsidebyside.sty entre plusieurs documents, il faut l'installer dans un répertoire prévu par la distribution TeX, comme brièvement expliqué dans ce message à partir de « Pour être utilisable, un tel fichier doit être (...) ». Je ne peux pas donner de procédure plus précise, car cela dépend de la distribution TeX utilisée (mais cela doit se trouver assez facilement sur Internet si l'on connaît la distribution TeX en question).

    Enfin, voici une copie de la documentation contenue dans brsidebyside.sty, un peu plus jolie avec les outils de formatage du forum. Elle contient pas mal d'informations déjà données ci-dessus, formulées différemment et avec quelques précisions supplémentaires.

    L'élément central du package 'brsidebyside' est l'environnement 'brSidebyside'.

    Syntaxe :
    \begin{brSidebyside}[option1=valeur1, option2=valeur2, ...]{[i]<given box>[/i]}
      [i]<contenu>[/i]
    \end{brSidebyside}
    
    L'argument obligatoire définit la “given box” qui peut être une boîte quelconque : image ou n'importe quoi d'autre, du moment que c'est une boîte. Le <contenu> sera automatiquement mis dans une minipage par l'environnement 'brSidebyside'.

    Rôle des paramètres que l'on peut indiquer dans l'argument optionnel

    Par défaut, la “given box” est placée à droite de la minipage fabriquée à partir de <contenu>. On peut spécifier ce choix ou le choix inverse avec 'boxpos=left' ou 'boxpos=right' dans l'argument optionnel.

    Le paramètre 'width' indique la largeur de la boîte B à fabriquer, contenant des filets supérieur et inférieur, la “given box” et la minipage remplie avec <contenu> (la boîte B contient aussi des espaces et ressorts que je ne précise pas). La valeur par défaut du paramètre 'width' est \linewidth.

    Le paramètre 'minipage-width' détermine la largeur de la minipage hébergeant <contenu>.
    • Par défaut, 'minipage-width' est vide ; la largeur de la minipage est alors calculée comme 'width' - largeur de la “given box”. Autrement dit, dans ce cas, la minipage et la “given box” remplissent précisément la largeur 'width' sans qu'aucun espace horizontal ne soit nécessaire.
    • Si l'on passe une valeur non vide pour 'minipage-width', elle indique la largeur à utiliser pour la minipage hébergeant <contenu>. La position de cette minipage et de la “given box” au sein de la largeur totale 'width' sont alors déterminées par trois ressorts dont les raideurs sont données par les paramètres 'left', 'middle' et 'right'. Les deux boîtes (minipage et “given box”) entourées des trois ressorts remplissent la largeur 'width' choisie.
    Les paramètres 'top-rule-thickness', 'top-rule-sep', 'bottom-rule-thickness' et 'bottom-rule-sep' déterminent l'épaisseur des filets supérieur et inférieur de la boîte B (ces filets sont des “rules”). Leur « largeur » (dans la direction horizontale de la page) est toujours celle déterminée par le paramètre 'width'. Il suffit de mettre ces quatre paramètres à 0pt pour supprimer les filets et l'espace qui les sépare du contenu « plus interne » de la boîte B.

    Le paramètre 'only-box' précise si l'on veut que l'environnement constitue un paragraphe à lui tout seul (avec contenu centré), ou bien se contente de produire la boîte B. Le réglage par défaut correspond à 'only-box=false' ; l'environnement 'brSidebyside' commence alors par un \par, affiche la boîte B de largeur 'width' centrée dans la ligne et termine par un \par. En revanche, si l'on passe 'only-box=true', l'environnement 'brSidebyside' ne produit rien d'autre que la boîte B. On peut alors en disposer comme on le souhaite (la mettre dans un tableau, lui faire subir une rotation, etc.).

    La commande \brSidebysideSetup permet de mémoriser les valeurs des options décrites ci-dessus, pour ne pas avoir à répéter les mêmes options à chaque fois que l'on utilise l'environnement 'brSidebyside'. Elle respecte la notion de groupe de TeX (délimité par des accolades ou par \begingroup ... \endgroup) et s'utilise comme suit :
    \brSidebysideSetup{option1=valeur1, option2=valeur2, ...}
    
  • Bonjour Brian,

    Bien sûr, je n'ai pas compris grand chose dans tes codes ; mais je me demande si ton texte de droite se réduit automatiquement si tu changes le format de ton document ?

    N'as tu jamais pensé faire de la formation en salle sur Latex ?

    PS : je suis sérieux !
  • Bonjour,

    Si je comprends bien la question, il suffit, comme dans la plupart des exemples que j'ai donnés :
    • soit de ne pas passer l'option 'minipage-width' (ou de mettre sa valeur par défaut, 'minipage-width={}') -> la largeur de la minipage est alors calculée au plus juste en fonction de l'image ;
    • soit d'exprimer le paramètre 'minipage-width' en fonction de \linewidth ou de \textwidth (le premier est modifié dans une colonne ou dans une minipage, le second est la largeur papier moins les marges).
    Par exemple :
    \begin{brSidebyside}[minipage-width=0.4\linewidth]{\rule{4cm}{2cm}}
      bla bla bla
    \end{brSidebyside}
    
    J'ai mis plein d'exemples simples et attaché le PDF correspondant. Y'a qu'à regarder...

    Pour les codes, évidemment que tu ne comprends pas le .sty, c'est normal. Mais c'est facile à utiliser ; ça, tu dois pouvoir. Pour la formation, c'est impossible dans les conditions actuelles, désolé.
  • Bonjour Brian,

    Je viens de comprendre ce dont tu me parlais concernant les codes d'erreurs.
    Je n'avais pas vu qu'il y avait un menu déroulant en bas de la page.

    J'ai actuellement des hbox concernant mes "minipages" ; les voici :
    Overfull \hbox (5.22214pt too wide) in paragraph at lines 1719--1734
    []$[]$ []
    []
    [42 <./Polytech17SuitesNumP6.pdf>]
    pdfTeX warning: pdflatex (file ./carresdanscarre.pdf): PDF inclusion: found PDF
    version <1.7>, but at most version <1.5> allowed
    <carresdanscarre.pdf, id=392, 597.23125pt x 845.1575pt>
    File: carresdanscarre.pdf Graphic file (type pdf)
    <use carresdanscarre.pdf>
    Package pdftex.def Info: carresdanscarre.pdf used on input line 1804.
    (pdftex.def) Requested size: 119.16904pt x 102.56229pt.
    
    

    Penses tu que je réglerai ce problème avec tes codes ?
  • Et voici le code qui provoque ce hbox :


    \newcommand*{\carredanscarres}{\includegraphics[scale=1.2, trim = 16.5cm 9cm 1cm 12cm, clip]{monimage}}
    
    \begin{minipage}{\linewidth-\widthof{\carredanscarres}}% 
    Blablabla…blablabla..
    
    \end{minipage}
    ~\raisebox{-0.5\height}{\carredanscarres}%
    
    
  • Je ne sais pas d'où vient ton overfull \hbox. Tu peux passer temporairement l'option draft à \documentclass, ça met un rectangle noir dans la marge à l'endroit de l'overfull pour le rendre plus visible.

    Mon code ne fait rien d'autre qu'automatiser ce qui a été proposé au-dessus, ajouter des possibilités de réglage faciles à utiliser (p. ex.., raideurs réglables pour les trois ressorts left, middle et right) et éventuellement un trait au-dessus et au-dessous du machin pour faire joli.

    Edit : maintenant que tu as mis le code, oui. Ton overfull \hbox vient probablement du fait que ta minipage est suivie d'un espace et d'un ~ (espace insécable), or tu ne tiens pas compte de leur largeur dans le calcul de la largeur restante pour la minipage.
  • Merci Brian.

    Une question bête... comment passer l'option "draft"? (et surtout après comment la retirer...?)
  • \documentclass[a4paper,11pt,french,draft]{article}
    
    puis
    \documentclass[a4paper,11pt,french]{article}
    
    par exemple. :-)
  • Si je te suis, il me suffit de retirer le ~ dans le code ?
  • J'ai suivi ton conseil et je t'ai mis en pièce jointe ce que j'observe alors.
  • Oui pour l'option draft, c'est ça.

    Pour la solution proposée, attention, tu avais deux espaces après la minipage (le second étant un insécable), car ton
    \end{minipage}
    
    n'est pas immédiatement suivi d'un %. La solution proposée par Math Coss, qui marche, est de supprimer l'espace non insécable et de tenir compte de la largeur de l'autre, le ~, dans le calcul de la largeur de la minipage, comme ceci :
    \begin{minipage}{\linewidth-\widthof{\carredanscarres}-\widthof{~}}% La ligne est remplie à 100 %
      bla bla
    \end{minipage}%
    ~\raisebox{-0.5\height}{\carredanscarres}%
    
    Il faut faire très attention aux fins de ligne en (La)TeX, elles peuvent introduire un espace si on ne met pas un % collé au dernier truc.
  • CA MARCHEEEEEEEEEEEEEEEEEE !!
    J'ai fait sauter ce hbox.

    Je vais le reproduire sur les 10 autres...
  • Bonjour à vous tous,
    j'aimerais mettre une figure à droite d'un texte ; et j'ai utilisé le code suivant.
    \newcommand*{\courbefesic}{\includegraphics[scale=0.7, trim = 2cm 18cm 10cm 2cm,clip ]{courbexo1fesic}}
    
    \begin{minipage}{\linewidth-\widthof{\courbefesic}-\widthof{~}}% 
    blabla bla....
    blabla bla...
    \end{minipage}%
    ~\raisebox{-0.4\height}{\courbefesic}%
    
    Pourriez-vous s'il vous plaît me donner une astuce pour mettre de l'espace entre le texte et la figure ? Car le texte est actuellement collé à la figure et j'aimerais laisser 1 cm entre les deux. J'ai tenté de placer partout des \hspace{1cm} mais cela ne donne rien. Toute suggestion sera bienvenue.
    Bonne journée à vous.
    Franck
  • Bonjour pianiste
    Il suffit de mettre ton image dans une nouvelle minipage, séparée par une espace de 1cm
    \begin{minipage}{\linewidth-\widthof{\courbefesic}[color=#FF0000]-1cm[/color]}% 
    blabla bla....
    blabla bla...
    \end{minipage}%
    [color=#FF0000]\hspace{1cm}%
    \begin{minipage}{\widthof{\courbefesic}}%[/color] 
    \raisebox{-0.4\height}{\courbefesic}%
    [color=#FF0000]\end{minipage}%[/color]
    
    Alain
  • Merci Alain,
    Ça marche du tonnerre !!!
    Avec Brian vous auriez formé le duo de choc !!!

    Merci beaucoup pour cette précieuse aide ; ça faisait 2 jours que je me battais désespérément en plaçant partout des \hspace,
    sans aucun résultat...

    Histoire de ne pas mourir idiot... 2 questions : pourquoi mettre des % en fin de ligne ? (je pensais que ça servait uniquement à mettre des commentaires dans le code...) et que signifie le \widthof qu'on retrouve sur ton code ?

    Il ne me reste plus qu'à reprendre la trentaine de pages où le texte est collé à l'image...
  • Re-bonjour pianiste
    Je te remercie de m'associer à Brian, mais lui est beaucoup plus expert et brillant (sans jeu de mots :-)) en LaTeX et en TeX sous-jacent.
    Pour répondre à tes questions.
    $\triangleright~$Le % placé en fin de ligne permet à LaTeX de ne pas transformer le "retour chariot" en une espace qui dans certains cas apparaîtrait en début de la ligne suivante.
    $\triangleright~$La commande \widthof est placée par toi dans l'exemple que tu as donné. Elle signifie "width of" ou en français "largeur de". Elle retourne la valeur de la largeur de ce que tu places ensuite entre { }. Dans ton cas, c'est une commande qui charge une image, d'où la largeur de ce qui est interprété : image + décorations autour.
    Alain
  • Ok !

    Merci, pour tes explications très claires.
  • Bonjour,

    Je vais peut-être paraître désagréable, mais tant pis. À moyen et long terme, je suis sûr de rendre service. Cette histoire de retour chariot qui est vu comme un espace par TeX, c'est la base de la base de la base de la base de tout ce qui est fait avec TeX (LaTeX, ConTeXt, Texinfo...). C'est dans les toutes premières pages de n'importe quel texte d'introduction à LaTeX, ou alors c'est que le texte est écrit par un charlatan. Des exemples ? Je m'arrête là, mais on pourrait poursuivre la liste sans aucune difficulté.

    S'engager dans un travail avec LaTeX de plus de quelques minutes sans avoir assimilé ce genre de chose, c'est un peu comme commencer un chapitre de maths par les exercices, sans avoir lu aucune définition. C'est une garantie de perte de temps et de frustration, tant que les bases n'auront pas été assimilées. L'apprentissage sérieux des bases, c'est un investissement, pas une perte de temps.

    Il y a eu de nombreuses mises en garde contre les espaces parasites dans ce fil, y compris en gras. Le truc du % en fin de ligne a été mentionné dès le début, puis rappelé . Si les remarques sur les choses de base ne sont pas prises en compte, quel intérêt y a-t-il à les prodiguer ?

    Remarquons qu'il y a malgré tout un point positif : le fait de s'être enfin posé certaines questions comme celle du % en fin de ligne.
  • Salut Brian,

    Je suis sauvé par ta dernière remarque ! (tu)

    Je suis d'accord avec toi sur les connaissances de bases, mais les bases de Latex sont tellement denses qu'on est obligé d'apprendre au pas à pas ; du moins en ce qui me concerne.
    Je pense sérieusement qu'on devrait enseigner en fac à utiliser Latex ou un autre éditeur du genre.
    Je réalise qu'on en apprend 10 fois trop quand on est prof au lycée et qu'on utilise très peu ce qu'on a appris (à l'exception des profs de prépa).
    On ferait bien mieux de nous enseigner à utiliser Latex ou bien faire du théâtre ou bien des cours d'éloquence que de nous enseigner les méthodes des perturbations ou espace de Hilbert ou endomorphismes en tout genre... qui ne nous servirons jamais si ce n'est à passer nos concours.

    Grâce à Latex, je réalise avant tout qu'on peut vite se perdre et c'est une excellente remise en question quand on est prof. On a tendance à penser que tout est facile parce qu'on maîtrise (à peu près) un sujet et on a de plus en plus de mal à comprendre pourquoi l'élève ne comprend pas. L'apprentissage de Latex et sa complexité nous permet de se placer au niveau du ressenti de l'élève face à des nouveaux concepts pour lui et ca fait du bien !

    Pour Brian... si un jour on analyse ton ADN, on va trouver sans peine le code de Latex ! ;-)
    Au risque de me répéter, il faut absolument que tu écrives un bouquin là dessus. Et quelque chose me dit que tu choisiras Latex pour le faire.

    Merci encore pour ton indulgence...

    Bonne journée à vous tous.
  • Content que tu n'aies pas mal pris mon message... mais n'oublie pas de t'en servir.

    Sur les cours d'éloquence, théâtre, etc. : cette histoire d'éloquence me hérisse les poils, car j'ai l'impression qu'elle revient souvent à valoriser le pipotage et la capacité à manipuler autrui (quand on écoute certains avocats...). Je crois que c'est une des plus grosses mauvaises idées de Blanquer. Pour le théâtre, pourquoi pas, à condition de ne pas le faire au détriment de la discipline (maths). En gros, ce serait peut-être positif que les futurs profs fassent quelque chose de ce genre (ou des matchs d'improvisation) régulièrement pendant plusieurs années. Mais je ne suis pas sûr que l'imposer soit une bonne chose (cela engendre souvent le rejet).

    Sur le fait d'étudier les espaces de Hilbert ou que sais-je avant de se retrouver en collège ou lycée : il me semble que c'est positif à condition que les étudiants aient le niveau requis par les cours. Pour plusieurs raisons, mais il y en a une que tu as donnée toi-même : elle permet de se rendre compte que les maths sont un sacré édifice, pas facile d'accès et encore plus difficile à « découvrir » (travail du chercheur). Si les profs de lycée n'avaient à apprendre que les maths de lycée ou à peine plus, non seulement il y aurait un problème de manque de recul/perspective/etc. sur les notions (argument à pondérer compte tenu du niveau effectif des élèves de lycée...), mais cela entraînerait sans doute souvent une arrogance et une assurance mal placées, et celles-ci conduisent invariablement à de graves erreurs. Il n'y a qu'à voir ce qui se passe avec la profession qui croit effectuer les études les plus longues.

    Compte tenu de ce que j'ai reçu comme enseignement en informatique dans le système français (école d'ingénieur et bref passage à la fac), je vois assez mal un enseignement de LaTeX au-delà d'une courte initiation, de qualité suffisante pour ne pas être une pure perte de temps. Je pense qu'il est préférable de prendre un bouquin sérieux et de le lire en prenant le temps qu'il faut. Cela nécessite d'être motivé, mais de toute façon, c'est nécessaire pour bien apprendre.

    TeX est un langage complexe, si l'on compte l'ensemble (incluant les aspects programmation). LaTeX rend plein de choses simples, mais dès qu'on sort des rails, ça se complique. Pour beaucoup de problèmes, il existe un package qui répond au besoin. Grâce à Internet, aux moteurs de recherche généralistes et à TeX.SE, il est infiniment plus facile de trouver un tel package aujourd'hui qu'il y a vingt ans (et l'offre de packages s'est beaucoup améliorée), mais il faut prendre un minimum de temps pour le chercher et pour lire au moins le début de la documentation. Pour pouvoir utiliser tout ça convenablement, il faut un socle de connaissances — en gros, ce que contient le LaTeX book. La gestion des espaces et les commandes de manipulation de boîtes (\makebox, \raisebox...) en font partie, à mon avis.

    Enfin, quand on veut faire un truc qui sort des rails et qui n'est pas prévu par un package, là, ça se complique vraiment. Pour un certain nombre de choses, la lecture du TeXbook devient quasi-indispensable à ce niveau, je pense — en tout cas, très utile. Mais il y a des sites tels que TeX.SE ou ce forum qui permettent souvent d'obtenir du sur-mesure qu'on ne sait pas forcément réaliser soi-même.

    C'est un peu HS, je crois que je vais pour ma part arrêter la discussion là.
Connectez-vous ou Inscrivez-vous pour répondre.