Obtenir une taille raisonnable — Les-mathematiques.net The most powerful custom community solution in the world

Obtenir une taille raisonnable

Bonjour
Je débute en latex et j'aimerais savoir s'il existe un moyen relativement simple d'avoir des tailles de polices convenables dans une équation.

Par exemple si j'écris $P (\frac{| \overline{X}_n - \overline{Y}_p |}{W} \leq \sqrt{\frac{\frac{1}{n}+\frac{1}{p}}{n+p-2}}{t_{n+p-2}(1-\frac{\alpha}{2})})$

J'aimerais par exemple avoir $t_{n+p-2}(1-\frac{\alpha}{2})$ en plus petit, $P$ en beaucoup plus gros etc.
Le problème c'est que j'ai déjà tout mis en Huge car je n'y vois pas grand chose. Donc je peux pas trop bricoler grâce à cela (sauf pour rapetisser des trucs...)
Merci pour votre aide ! :)

Réponses

  • j'ai déja tout mis en Huge car je n'y vois pas grand chose
    :-S

    Qu'est-ce que tu cherches à produire, comme document ?
    un article à imprimer sur du papier A4 ?
    une affiche grand format ?
    une présentation sur écran, avec des slides (type PowerPoint : un beamer) ?

    En tous cas, si tu trouves que la police est trop petite, ce n'est pas comme ça qu'on fait, tu changes la taille de la police dans le préambule.
    \documentclass[12pt]{article} % 12pt donne la taille de la police
    \usepackage{monPréambule} % renvoie à un fichier monPréambule.sty où tu peux 
                              %stocker ton préambule avec tes packages, 
                              %tes "raccourcis" etc
    \begin{documentclass}
    <blablabla>
    \end{documentclass}
    

    Après, pour ton $P$, qui ressemble à une probabilité, peut-être que ce n'est pas une très très bonne idée de le mettre plus gros. Si tu veux qu'il soit plus lisible et reconnaissable, tu peux définir une commande à cet effet.

    Au choix :
    \renewcommand{\P}{\mathbb{P}} % pour utiliser \P comme "raccourci" %\newcommand si la commande n'existe pas déjà
    %\renewcommand{\P}{\mathbf{P}} % autre choix possible, un P en gras.
    

    Enfin, en tous cas, le problème dans ta formule, c'est surtout que les parenthèses sont trop petites, je trouve.
    Pour qu'elles s'ajustent automatiquement, j'écrirais plutôt :
    \P \left(\frac{| \overline{X}_n - \overline{Y}_p |}{W} \leq \sqrt{\frac{\frac{1}{n}+\frac{1}{p}}{n+p-2}}{t_{n+p-2}(1-\frac{\alpha}{2})}\right)
    


    $$
    \def\P{\mathbb{P}}
    \P \left(\frac{| \overline{X}_n - \overline{Y}_p |}{W} \leq \sqrt{\frac{\frac{1}{n}+\frac{1}{p}}{n+p-2}}{t_{n+p-2}(1-\frac{\alpha}{2})}\right)
    \\
    \def\P{\mathbf{P}}
    \P \left(\frac{| \overline{X}_n - \overline{Y}_p |}{W} \leq \sqrt{\frac{\frac{1}{n}+\frac{1}{p}}{n+p-2}}{t_{n+p-2}(1-\frac{\alpha}{2})}\right)
    $$
    En ligne ("\textstyle"), les fractions sont plus petites, et le $\P$ aura l'air moins perdu par rapport aux parenthèses.
    Ainsi : $\P \left(\frac{| \overline{X}_n - \overline{Y}_p |}{W} \leq \sqrt{\frac{\frac{1}{n}+\frac{1}{p}}{n+p-2}}{t_{n+p-2}(1-\frac{\alpha}{2})}\right)$
    (et je ne trouve pas que les indices soient écrits trop gros, pour info cette taille de police s'appelle "\scriptsize" (non, en fait en mode maths, c'est "\scriptstyle"), si vraiment tu veux plus petit, c'est "\tiny", mais ce sera sans doute assez moche.)
  • En effet, \scriptsize est la commande qui, utilisée en mode texte, donne au texte(*) la taille de police qu'ont les indices ou exposants d'une formule insérée en \normalsize. Précisons cependant que :
    {\scriptsize texte $formule$ autre texte}
    
    (ou la même chose avec \tiny) affecte tout ce qu'il y a entre accolades, mais que \scriptsize n'est pas utilisable en mode maths, donc ce ne serait pas une commande convenable pour changer seulement la taille d'un indice au sein d'une formule (sauf à passer par le mode texte dans la formule... bof bof).

    Les commandes que l'on peut utiliser à l'intérieur d'une formule mathématique pour changer le style de ce qui suit (jusqu'à la fin du groupe courant) sont \displaystyle, \textstyle, \scriptstyle et \scriptscriptstyle. Je ne dis pas que changer la taille de l'indice serait une bonne idée ici.

    (*) Et aux symboles mathématiques qui sont en \displaystyle ou en \textstyle.
  • Ah oui, merci en mode maths, ça s'appelle \scriptstyle, en effet ! Merci de la correction.
  • Merci pour vos réponses, alors pour les raccourcis de commande j'avais déjà vu cette (incroyable ) fonctionnalité donc je m'en sers bien :)
    Effectivement le \right( me met des parenthèses bien plus cohérentes, et pour ce qui est du $t(\alpha)$ je me suis arrangé autrement (en le nommant simplement t avant).

    Par ailleurs pour la police je suis bloqué sur une police de petite taille (12 maxi), mais il doit y avoir des packages je vais regarder cela.

    C'est pour rédiger un mini mémoire d'une trentaine de page en statistiques, donc j'ai choisi le type article a4.

    Une autre question : j'ai toujours le même problème de taille des parenthèses mais cette fois avec les accolades. J'utilise rbrace et lbrace mais j'aimerais des accolades plus grandes. Je dois utiliser un group comme vous le suggériez du coup ?

    Merci :)
  • ah oui j'oubliais, y a-t-il un moyen de faire comprendre par exemple deux espaces consécutifs en mode maths comme par exemple un \; ou dois-je taper cela a chaque fois ?

    Ou alors augmenter ce paramètre au niveau global de tout mon texte ?

    Et idem pour l'interligne en entrée et sortie de mode maths ; j'ai trouvé des formules locales mais y a-t-il un moyen efficient afin de réaliser cela ?
    Merci :)
  • pour les accolades, le coup du "\left et \right" fonctionne aussi : $P\left\lbrace\dfrac{\sqrt{\dfrac{1}{1}}}{\sqrt{\dfrac{1}{1}}}\right\rbrace$.
    P\left\lbrace\dfrac{\sqrt{\dfrac{1}{1}}}{\sqrt{\dfrac{1}{1}}}\right\rbrace
    
    pour la police je suis bloqué sur une police de petite taille (12 maxi),
    Oui, chez moi, le package extsizes fonctionne pour ça avec pdflatex.
    \documentclass[14pt]{article}
    \usepackage{extsizes}
    \begin{document}
    ABCDE
    \end{document}
    

    y a t-il un moyen de faire comprendre par exemple deux espaces consécutifs en mode maths comme par exemple un \;
    Ça, je ne pense vraiment pas que ce soit possible simplement, en tous cas ça me dépasse. (et de toutes façons, ça m'a l'air d'une vraiment très très mauvaise idée.)
    l'interligne en entrée et sortie de mode maths;
    Essaie à partir de :
    \setlength{\abovedisplayskip}{1cm}
    \setlength{\belowdisplayskip}{1cm}
    \setlength{\abovedisplayshortskip}{1cm}
    \setlength{\belowdisplayshortskip}{1cm}
    
  • Ohlalala mille mercis marsup pour ta précieuse aide !!!

    Impeccable pour les accolades et le package extsizes, toutefois les commandes setlength que tu m'a proposées ne font rien chez moi (texmaker +miktex). Faut-il un package particulier ?

    Ah et j'ai un petit souci technique que je n'arrive pas à bricoler, voilà je souhaiterais utiliser $\varepsilon$ mais d'une plus grande taille que celle qui m'est proposée ; et de même pour $\mathbb{P}$.
    J'ai fait comme ceci :
    \newcommand{\eps}{\begin{huge}
    \varepsilon \end{huge} }
    
    mais le problème c'est que cela ne marche pas dans les formules alignées ou doubles dollars... une idée ? :)
  • (J'ai également essayé de remplacer l'environnement huge par des textsyle sans succès), j'aimerai un $\varepsilon$ de la même hauteur que $X$)
  • D'accord avec marsup. Pour extsizes, le résultat va fortement dépendre des polices choisies. En effet, pour des raisons historiques, les polices par défaut de TeX (famille Computer Modern en codage OT1) ne sont disponibles que pour un petit nombre de tailles (cf. tex/latex/base/ot1cmr.fd) :
    \DeclareFontShape{OT1}{cmr}{m}{n}%
         {<5><6><7><8><9><10><12>gen*cmr%
          <10.95>cmr10%
          <14.4>cmr12%
          <17.28><20.74><24.88>cmr17}{}
    \DeclareFontShape{OT1}{cmr}{m}{sl}%
         {%
          <5><6><7>cmsl8%
          <8><9>gen*cmsl%
          <10><10.95>cmsl10%
          <12><14.4><17.28><20.74><24.88>cmsl12%
          }{}
    ...
    
    Lorsqu'on demande une autre taille, on a droit à un warning et LaTeX utilise une des tailles définies ci-dessus. (Le package fix-cm a été écrit pour écraser ces définitions avec des définitions qui passent à l'échelle tant qu'on veut, mais il redéfinit également les polices par défaut pour le codage de fonte T1 d'une manière peu satisfaisante — voir le LaTeX Companion 2e édition pp. 355-356.) Pour les polices plus récentes comme Latin Modern ou plein plein d'autres, ce problème n'existe pas (passer à l'échelle une police vectorielle ne coûte rien ; avant, les tailles très nombreuses pouvaient poser problème car on fabriquait une version bitmap de la police pour chaque taille utilisée). Donc si tes polices (Féfé) ne grossissent pas comme souhaité, il faut voir ce que tu utilises précisément et si LaTeX affiche des warnings.

    Pour les espaces en mode maths, il faut utiliser les commandes prévues pour :
    \!
    \,
    \: ou \>
    \;
    \mskip 3mu plus 0.5mu minus 0.1mu\relax
    \mkern 2mu
    
    On peut aussi utiliser des commandes comme \quad, \qquad, \hspace{0.7em}, etc. mais dans ce cas, la largeur de l'espace dépend de la police texte courante et ne varie pas selon que le truc se trouve en indice ou en exposant (i.e., ne dépend pas du style mathématique, contrairement aux commandes utilisant l'unité mu).

    Les espaces et retours à la ligne en mode maths servent à rendre le code source lisible. Ce serait donc effectivement une très mauvaise idée de les redéfinir pour autre chose (techniquement, on pourrait les rendre actifs avec \obeyspaces ou leur affecter un \mathcode de "8000... brrrr !).

    Pour les accolades, on peut aussi utiliser \bigl\{ ... \bigr\}, ..., \Biggl\{ ... \Biggr\}, ou encore \left\{ ... \right\}.
  • Féfé, on t'a dit que \Huge, \huge, \LARGE, \Large, \large, ... \tiny ne sont pas utilisables en mode mathématique. Il faut lire la sortie textuelle de LaTeX ! Tu peux bricoler quelque chose comme ça :
    \documentclass{article}
    \usepackage{graphicx}
    
    \makeatletter
    \newcommand*{\grosepsilon}[1][1.09]{%
      \scalebox{#1}{\Large $\m@th \mkern -0.2mu \varepsilon \mkern -0.2mu$}%
    }
    \makeatother
    
    \begin{document}
    
    \[ XABL \grosepsilon T Z \]
    
    \end{document}
    
    Je te laisse ajuster les valeurs numériques. Si c'est utilisé plein de fois dans le document, cette variante accélèrera un peu la compilation :
    \documentclass{article}
    \usepackage{graphicx}
    
    \makeatletter
    \newsavebox{\monGrosEpsilon}
    \sbox{\monGrosEpsilon}{%
      \scalebox{1.09}{\Large $\m@th \mkern -0.2mu \varepsilon \mkern -0.2mu$}%
    }
    \newcommand*{\grosepsilon}{\usebox{\monGrosEpsilon}}
    \makeatother
    
    \begin{document}
    
    \[ XABL \grosepsilon T Z \]
    
    \end{document}
    
    Si la taille doit s'adapter en indice ou exposant dans une formule, j'ai quelques idées, mais c'est plus compliqué.

    Autre chose : il ne faut pas utiliser les double dollars avec LaTeX. Il faut utiliser $\backslash [$ et $\backslash ]$ à la place.104102
  • Pour le gros \varepsilon, voici une solution qui s'adapte automatiquement à la taille de la police, y compris en indice, sous-indice, exposant ou « sous-exposant » dans une formule mathématique :
    \documentclass{article}
    \usepackage{pgffor}             % juste pour la boucle de test
    \usepackage{multicol}           % juste pour le code de test
    
    \DeclareFontFamily{OML}{mybigcmm}{\skewchar\font127 }
    
    \begingroup
      \makeatletter
      \nfss@catcodes
      \DeclareFontShape{OML}{mybigcmm}{m}{it}{
          <-3.5484>       s * [1.55] cmmi5
          <3.5484-4.1935> s * [1.55] cmmi6
          <4.1935-4.8387> s * [1.55] cmmi7
          <4.8387-5.4839> s * [1.55] cmmi8
          <5.4839-6.129>  s * [1.55] cmmi9
          <6.129-7.0968>  s * [1.55] cmmi10
          <7.0968->       s * [1.55] cmmi12
        }{}
    \endgroup
    
    \DeclareSymbolFont{MyBigCmm}{OML}{mybigcmm}{m}{it}
    \DeclareMathSymbol{\grosepsilon}{\mathord}{MyBigCmm}{"22}
    
    \begin{document}
    
    \setlength{\columnsep}{0pt}% nous évite un petit overfull \hbox
    \begin{multicols}{2}
    \foreach \taille in {%
      \tiny, \scriptsize, \footnotesize, \small, \normalsize, \large, \Large,
      \LARGE, \huge, \Huge} {
      \taille
      \[ AX \grosepsilon Z \quad
         u_{P\grosepsilon_{Q\grosepsilon}}^{E\grosepsilon^{F\grosepsilon}} \]
    }
    \end{multicols}
    
    \end{document}
    
    104106
    eps.png 29.4K
  • Même chose avec un meilleur ajustement du facteur d'échelle et une gestion des formules en gras (qui sont obtenues avec \mathversion{bold}) :
    \documentclass[border=1mm]{standalone}
    \usepackage{pgffor}                % juste pour la boucle de test
    \usepackage{etoolbox}              % juste pour le code de test
    
    \DeclareFontFamily{OML}{mybigcmm}{\skewchar\font127 }
    
    \begingroup
      \makeatletter
      \nfss@catcodes
      \DeclareFontShape{OML}{mybigcmm}{m}{it}{
          <-3.6424>       s * [1.51] cmmi5
          <3.6424-4.3046> s * [1.51] cmmi6
          <4.3046-4.9669> s * [1.51] cmmi7
          <4.9669-5.6291> s * [1.51] cmmi8
          <5.6291-6.2914> s * [1.51] cmmi9
          <6.2914-7.2848> s * [1.51] cmmi10
          <7.2848->       s * [1.51] cmmi12
        }{}
      \DeclareFontShape{OML}{mybigcmm}{b}{it}{
          <-4.0541>       s * [1.48] cmmib5
          <4.0541-5.7432> s * [1.48] cmmib7
          <5.7432->       s * [1.48] cmmib10
      }{}
      \DeclareFontShape{OML}{mybigcmm}{bx}{it}{<-> ssub * mybigcmm/b/it}{}
    \endgroup
    
    \DeclareSymbolFont{MyBigCmm}{OML}{mybigcmm}{m}{it}
    \SetSymbolFont{MyBigCmm}{bold}{OML}{mybigcmm}{b}{it}
    \DeclareMathSymbol{\grosepsilon}{\mathord}{MyBigCmm}{"22}
    
    \newcommand*{\formuleDeTest}[1]{%
      \begingroup
        \mathversion{#1}%
        $AX \grosepsilon Z \quad
         u_{P\grosepsilon_{Q\grosepsilon}}^{E\grosepsilon^{F\grosepsilon}}$%
      \endgroup
    }
    
    \begin{document}
    \newcommand*{\contenu}{}%
    \newcommand{\mytmpappend}[1]{%
      \gappto\contenu{%
        #1\formuleDeTest{normal} & #1\formuleDeTest{bold}\\
      }%
    }
    %
    \foreach \taille in {%
      \tiny, \scriptsize, \footnotesize, \small, \normalsize, \large, \Large,
      \LARGE, \huge, \Huge} {%
        \expandafter\mytmpappend\expandafter{\taille}%
    }
    %
    \noindent
    \begin{tabular}{@{}cc@{}}
      \contenu
    \end{tabular}
    \end{document}
    
    104110
  • Féfé, pour le réglage de \abovedisplayskip et Cie, tu peux regarder ici et (TeX.SE).
  • Impressionnant, ces démos avec les polices, brian, merci ! (tu)
    (Après, il me semble que Féfé cherche à produire un style typographique assez "personnel", et je ne suis pas sûr qu'il faille vraiment l'encourager dans cette voie, mais c'est une autre histoire...)
  • Merci, marsup. Je suis d'accord sur l'aspect "style typographique assez personnel"... On dirait que c'est souvent comme ça quand les gens viennent d'un autre traitement de texte. Bref. Le dernier bout de code était un peu un exercice pour moi car je viens de relire le LaTeX Companion sur ces choses-là. Le principal inconvénient de cette méthode est que chaque symbol font correspond à une valeur de \fam, or il n'y en a que 16 d'utilisables (les alphabets mathématiques non spéciaux(*) tels que \mathbf, \mathsf, \mathit et \mathtt comptent aussi là-dedans, mais uniquement s'ils sont utilisés dans le document). C'est une limitation de TeX... Je pense qu'une autre façon de faire pas aussi jolie mais sans cet inconvénient serait d'utiliser \mathpalette pour appeler une macro utilisant \scalebox comme dans ma première solution. Hélas, je n'ai plus le temps de jouer...

    (*) C'est-à-dire ceux définis avec \DeclareMathAlphabet, par opposition aux alphabets mathématiques définis avec \DeclareSymbolFontAlphabet. \mathrm, \mathnormal et \mathcal sont ainsi « spéciaux » selon ma terminologie : même utilisés dans une formule, ils ne consomment aucun des 16 slots disponibles car les glyphes correspondants sont situés dans une symbol font déjà chargée dans un de ces slots (\mathrm correspond à \fam0, i.e. cmr/cmbx par défaut ; \mathnormal à \fam1, i.e. cmmi/cmmib par défaut ; \mathcal à \fam2, i.e. cmsy/cmbsy par défaut [avec la convention normal/bold selon la \mathversion choisie]) :
    \DeclareSymbolFontAlphabet{\mathrm}    {operators}
    \DeclareSymbolFontAlphabet{\mathnormal}{letters}
    \DeclareSymbolFontAlphabet{\mathcal}   {symbols}
    \DeclareMathAlphabet      {\mathbf}{OT1}{cmr}{bx}{n}
    \DeclareMathAlphabet      {\mathsf}{OT1}{cmss}{m}{n}
    \DeclareMathAlphabet      {\mathit}{OT1}{cmr}{m}{it}
    \DeclareMathAlphabet      {\mathtt}{OT1}{cmtt}{m}{n}
    
    (code présent dans fontmath.ltx, lequel est généré par fontdef.dtx).
  • Ha ! En ajoutant un lien vers le message précédent dans mes petites notes, j'ai redécouvert l'existence du package scalerel. Je crois que ce package implémente à quelque chose près la dernière méthode que j'ai évoquée (avec \mathchoice directement au lieu de \mathpalette). La solution tient alors en une seule ligne (!) et ne présente a priori pas l'inconvénient d'occuper un des 16 slots réservés aux familles mathématiques :
    \newcommand*{\grosepsilon}{\scalerel*{\varepsilon}{X}} % on vise la hauteur d'un X en mode mathématique
    
    Code complet avec les même tests que ci-dessus :
    \documentclass[border=1mm]{standalone}
    \usepackage{scalerel}
    \usepackage{pgffor}                % juste pour la boucle de test
    \usepackage{etoolbox}              % juste pour le code de test
    
    \newcommand*{\grosepsilon}{\scalerel*{\varepsilon}{X}}
    
    \newcommand*{\formuleDeTest}[1]{%
      \begingroup
        \mathversion{#1}%
        $AX \grosepsilon Z \quad
         u_{P\grosepsilon_{Q\grosepsilon}}^{E\grosepsilon^{F\grosepsilon}}$%
      \endgroup
    }
    
    \begin{document}
    \newcommand*{\contenu}{}%
    \newcommand{\mytmpappend}[1]{%
      \gappto\contenu{%
        #1\formuleDeTest{normal} & #1\formuleDeTest{bold}\\
      }%
    }%
    %
    \foreach \taille in {%
      \tiny, \scriptsize, \footnotesize, \small, \normalsize, \large, \Large,
      \LARGE, \huge, \Huge} {%
        \expandafter\mytmpappend\expandafter{\taille}%
    }%
    %
    \noindent
    \begin{tabular}{@{}cc@{}}
      \contenu
    \end{tabular}
    \end{document}
    
    104126
Connectez-vous ou Inscrivez-vous pour répondre.
Success message!