Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Accolades de taille variable

53 views
Skip to first unread message

Jeremy JUST

unread,
Nov 26, 2009, 12:19:26 PM11/26/09
to

Bonjour,

J'avais posé une question il y a quelques semaines à propos
d'accolades et d'épaisseur de trait, et, sauf erreur de ma part,
personne n'avait répondu. Mon exemple n'était pas vraiment minimal, je
recommence donc avec plus simple.


En résumé, la question est: j'ai un truc moche, comment en faire un
truc beau?
Voilà le code, vous devriez comprendre:

<<<<<
\documentclass{article}

\usepackage[T1]{fontenc}
\usepackage[latin1]{inputenc}

\begin{document}

\(\left\{
\begin{array}{l}
1 \\
2 \\
\end{array}
\right.
\)

\(\left\{
\begin{array}{l}
1 \\
2 \\
3 \\
\end{array}
\right.
\)

\end{document}
>>>>>

Le contenu des deux accolades a des hauteurs différentes. Donc les
accolades s'adaptent en hauteur ET en largeur ET en épaisseur de trait.
Je préfèrerais qu'elle ne s'adaptent qu'en hauteur, et gardent la même
largeur et la même épaisseur de trait dans les deux cas.
Est-ce possible simplement?

--
Jérémy Just <jerem...@netcourrier.com>

Manuel Pégourié-Gonnard

unread,
Nov 26, 2009, 12:59:34 PM11/26/09
to
Jeremy JUST scripsit :
>
> Le contenu des deux accolades a des hauteurs diff�rentes. Donc les
> accolades s'adaptent en hauteur ET en largeur ET en �paisseur de trait.
> Je pr�f�rerais qu'elle ne s'adaptent qu'en hauteur, et gardent la m�me
> largeur et la m�me �paisseur de trait dans les deux cas.
> Est-ce possible simplement?
>
� ma connaissance non. Il me semble qu'on peut fair des accolades en
TikZ (j'avais demand� et obtenu ici m�me du code pour faire l'�quivalent
d'\underbrace) mais c'est pas du tout pareil que celles de LaTeX dans le
sens o� le trait a un �paisseur constante.

Si c'est susceptible de te convenir, je dois pouvoir retrouver le code
dont je parlais, � moins qu'un gourou TikZ ne soit plus rapide.

--
Manuel P�gouri�-Gonnard Institut de math�matiques de Jussieu
http://weblog.elzevir.fr/ http://people.math.jussieu.fr/~mpg/


Jeremy JUST

unread,
Nov 26, 2009, 1:48:14 PM11/26/09
to
Le Thu, 26 Nov 2009 18:59:34 +0100 (CET),
Manuel Pégourié-Gonnard <m...@elzevir.fr> a écrit :

> Il me semble qu'on peut faire des accolades en TikZ (j'avais demandé
> et obtenu ici même du code pour faire l'équivalent d'\underbrace)

Mouais, mais les accolades de TikZ sont un peu moches par rapport à
celles de LaTeX: elles ont une épaisseur de trait constante le long de
leur tracé.
Mais faute de meilleure solution, je vais sans doute devoir faire ça.


> Si c'est susceptible de te convenir, je dois pouvoir retrouver le code

> dont je parlais, à moins qu'un gourou TikZ ne soit plus rapide.

Avec un style de décoration « brace » (pour ceux qui voudraient
chercher dans la doc, que je n'ai temporairement pas sous la main).


--
Jérémy Just <jerem...@netcourrier.com>

Christophe Caignaert

unread,
Nov 26, 2009, 3:52:18 PM11/26/09
to
On 26 nov, 18:19, Jeremy JUST <jeremy_j...@netcourrier.com> wrote:
>     Bonjour,

>
>   Le contenu des deux accolades a des hauteurs différentes. Donc les
> accolades s'adaptent en hauteur ET en largeur ET en épaisseur de trait.
> Je préfèrerais qu'elle ne s'adaptent qu'en hauteur, et gardent la même
> largeur et la même épaisseur de trait dans les deux cas.

Juste une précision :

il y a dans les polices une série d'accolades de taille (hauteur)
variable, qui ont souvent une largeur et une épaisseur différente, TeX
choisit selon la hauteur de la boite qu'elle encadre, ensuite, quand
on dépasse la hauteur de la plus haute, c'est un empilement de 4
éléments :

- la partie supérieure
- la partie inférieure
- le milieu
- et des traits verticaux, en nombre variable selon la hauteur à
produire.

A partir de ce moment, la largeur et l'épaisseur du trait restent
constants.

Ca n'aide pas, mais ça cultive ;-)

Christophe

Jeremy JUST

unread,
Nov 27, 2009, 4:23:55 AM11/27/09
to
Le Thu, 26 Nov 2009 12:52:18 -0800 (PST),
Christophe Caignaert <christophe...@tele2.fr> a écrit :

> il y a dans les polices une série d'accolades de taille (hauteur)
> variable, qui ont souvent une largeur et une épaisseur différente, TeX
> choisit selon la hauteur de la boite qu'elle encadre, ensuite, quand
> on dépasse la hauteur de la plus haute, c'est un empilement de 4
> éléments :
>
> - la partie supérieure
> - la partie inférieure
> - le milieu
> - et des traits verticaux, en nombre variable selon la hauteur à
> produire.

Je me souviens de ces quatre éléments, dans la liste des symboles, et
sûrement le Lamport. Mais y a-t-il moyen de forcer le choix de TeX en
lui disant « je veux une accolade de deux lignes de haut » puis de
l'étirer en hauteur pour lui faire embrasser trois lignes?

Je n'ai pas encore fait d'essais avec un \resizebox, car je crains
de galérer pour restaurer des alignements verticaux et espacement
horizontaux corrects, mais je vais me lancer.


--
Jérémy Just <jerem...@netcourrier.com>

Lucas Levrel

unread,
Nov 27, 2009, 11:31:34 AM11/27/09
to
Le 27 novembre 2009, Jeremy JUST a écrit :

> Je n'ai pas encore fait d'essais avec un \resizebox,

Je suppose que la majorité silencieuse avait eu la même idée...

> car je crains de galérer pour restaurer des alignements verticaux et
> espacement horizontaux corrects,

... et s'était fait la même remarque ;-p

--
LL

Jeremy JUST

unread,
Nov 27, 2009, 11:55:40 AM11/27/09
to
Le Fri, 27 Nov 2009 17:31:34 +0100,
Lucas Levrel <lucas....@univ-paris12.fr> a écrit :

>> car je crains de galérer pour restaurer des alignements verticaux
>> et espacement horizontaux corrects,
>
> ... et s'était fait la même remarque ;-p

Belle solidarité!... :}


--
Jérémy Just <jerem...@netcourrier.com>

Christophe Caignaert

unread,
Nov 27, 2009, 4:59:43 PM11/27/09
to
On 27 nov, 17:55, Jeremy JUST <jeremy_j...@netcourrier.com> wrote:
> Le Fri, 27 Nov 2009 17:31:34 +0100,
> Lucas Levrel <lucas.lev...@univ-paris12.fr> a écrit :

>
> >> car je crains de galérer pour restaurer des alignements verticaux
> >> et espacement horizontaux corrects,
>
> > ... et s'était fait la même remarque ;-p
>
>   Belle solidarité!...    :}
>
> --
> Jérémy Just  <jeremy_j...@netcourrier.com>

Ok, soyons solidaire, je sens mal aussi le \rezisebox...

1) La deuxième taille de parenthèse ouvrante est le caractère O 10
(en octal !) du fichier $$$ex.tfm que ta compilation lit, O 11 pour la
deuxième fermante.

2) Tu cherches un $$$ex.pl dans ta distribution, si tu le trouve passe
en 4

3) tu cherches un $$$ex.vf, si tu les trouves, tu convertis $$$ex.vf
et $$$ex.tfm en $$$.vpl (que tu trouveras peut-être dans ta
distribution, via vftovp, sinon, tu convertis le $$ex.tfm en $$$ex.pl
via tftopl

4) tu as donc maintenant un $$ex.pl ou $$ex.vpl, tu l'ouvres dasn un
éditeur de texte "basique"

5) le deuxiéme niveau de parenthèse est le caractère O 10, tu auras un
truc du genre


(CHARACTER O 10
(CHARWD R 0.365)
(CHARHT R 0.059)
(CHARDP R 0.943999)
(NEXTLARGER C n)
)

le nextlarger indique la taille suivante, tu suis cette piste jusqu'au
dernier, probablement C 8, tu as alors l'assemblage décrit dans mon
premier post


(CHARACTER C 8
(CHARWD R 0.601)
(CHARHT R 0.059)
(CHARDP R 0.672)
(VARCHAR
(TOP C 8)
(MID O 74)
(BOT O 72)
(REP O 76)
)
)

Tu remplaces C n par C 8 dans O 10, ce qui donne


(CHARACTER O 10
(CHARWD R 0.365)
(CHARHT R 0.059)
(CHARDP R 0.943999)
(NEXTLARGER C 8)
)

Tu retransformes en tfm (ou couple vf-tfm) par pltotf (ou vptovf),
selon le cas (très probablement le premier)

6) tu places le nouveau $$$ex.tfm (ou les nouveaux vf-tfm) dans le
répertoire courant quand tu veux ton effet spécial, ainsi TeX passera
très vite au caractère assemblé avec donc largeur et épaisseur de
trait fixes.

En principe tu devrais renommer ces fichiers (licence oblige) mais on
part encore dans du plus lourd

Il faut aussi faire pareil avec les $$$bex.$$$ pour utiliser le gras

J'espère avoir été clair ;-)

Christophe

Laurent Méhats

unread,
Nov 27, 2009, 5:23:36 PM11/27/09
to
Jeremy JUST a ᅵcrit :

> Le Fri, 27 Nov 2009 17:31:34 +0100,
> Lucas Levrel <lucas....@univ-paris12.fr> a ᅵcrit :
>
>>> car je crains de galᅵrer pour restaurer des alignements verticaux
>>> et espacement horizontaux corrects,
>> ... et s'ᅵtait fait la mᅵme remarque ;-p
>
> Belle solidaritᅵ!... :}

Un dᅵbut d'idᅵe avec les pieds.

\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[latin1]{inputenc}

\usepackage{graphicx}
\newcommand{\refbrace}{\Biggl\{}
\newcommand{\scaledbrace}[1]{%
\raisebox{\the\fontdimen22\textfont2}% 4
{\scalebox{1}[#1]{% 3
\raisebox{-\the\fontdimen22\textfont2}% 2
{$\refbrace$}% 1
}}}

% De bas en haut :
% 1. on part de notre accolade de rᅵfᅵrence;
% 2. on l'abaisse de la hauteur de l'axe mathᅵmatique, de sorte que sa
% pointe se trouve sur la ligne de base;
% 3. on l'ᅵtire verticalement d'un facteur de #1;
% 4. puis on la remonte de sorte que sa pointe se trouve ᅵ nouveau sur
% l'axe mathᅵmatique.

\begin{document}
\(
\begin{array}{c}
-\refbrace-\\\\
-\scaledbrace{1.5}-\\\\
-\scaledbrace{2}-
\end{array}
\)
\end{document}

Mᅵme largeur et mᅵme ᅵpaisseur de trait dans tous les cas. Reste ᅵ dᅵfinir
l'accolade de rᅵfᅵrence, ᅵ dᅵterminer les facteurs adᅵquats, ᅵ rendre ces
accolades utilisables comme dᅵlimiteurs et sans doute des tas de choses
encore :) Autant de choses que je ne sais pas faire ...

Laurent Mᅵhats

Christophe Caignaert

unread,
Nov 28, 2009, 5:49:40 AM11/28/09
to
La nuit porte conseil, et, plus simplement, beaucoup plus simplement
je propose cela :

___________________________


\documentclass{article}

\usepackage[T1]{fontenc}
\usepackage[latin1]{inputenc}

\let\{\undefined
\let\}\undefined

\DeclareMathDelimiter{\{}{\mathopen}{largesymbols}{56}{largesymbols}
{56}
\DeclareMathDelimiter{\}}{\mathclose}{largesymbols}{57}{largesymbols}
{57}

\begin{document}

\(\left\{
\begin{array}{l}
1 \\
2 \\
\end{array}
\right.
\)

\(\left\{
\begin{array}{l}
1 \\
2 \\
3 \\
\end{array}
\right.
\)

\end{document}

____________________________________

Le problème, c'est qu'il y a une hauteur minimale à l'assemblage
formant une accolade ouvrante, ici 5 caractères empilés, qui
visiblement correspondent à environ 3 lignes...

la voie que je suivais est un échec,

désolé

Christophe

Jeremy JUST

unread,
Nov 30, 2009, 1:32:08 PM11/30/09
to
Le Sat, 28 Nov 2009 02:49:40 -0800 (PST),

Christophe Caignaert <christophe...@tele2.fr> a écrit :

> Le problème, c'est qu'il y a une hauteur minimale à l'assemblage


> formant une accolade ouvrante, ici 5 caractères empilés, qui
> visiblement correspondent à environ 3 lignes...

Ouais. J'ai essayé de ruser en changeant de taille de police, mais ça
n'aide pas. Dommage, c'était une bonne idée car ça faisait un code
propre dans le corps du document.
Tant pis.


--
Jérémy Just <jerem...@netcourrier.com>

Jeremy JUST

unread,
Nov 30, 2009, 1:37:00 PM11/30/09
to
Le Fri, 27 Nov 2009 23:23:36 +0100,
Laurent Méhats <laurent...@gmail.com> a écrit :

> \newcommand{\scaledbrace}[1]{%
> \raisebox{\the\fontdimen22\textfont2}% 4
> {\scalebox{1}[#1]{% 3
> \raisebox{-\the\fontdimen22\textfont2}% 2
> {$\refbrace$}% 1
> }}}
>
> % De bas en haut :

> % 1. on part de notre accolade de référence;
> % 2. on l'abaisse de la hauteur de l'axe mathématique, de sorte que sa


> % pointe se trouve sur la ligne de base;

> % 3. on l'étire verticalement d'un facteur de #1;
> % 4. puis on la remonte de sorte que sa pointe se trouve à nouveau sur
> % l'axe mathématique.

J'ai adopté cette solution, en modifiant un peu l'espacement
horizontal autour de l'accolade, à la main.

Merci beaucoup!


> Reste à définir l'accolade de référence, à déterminer les facteurs
> adéquats, à rendre ces accolades utilisables comme délimiteurs et


> sans doute des tas de choses encore :)

Pour le cas qui m'intéresse, ce n'est pas grave d'avoir à tâtonner
pour trouver le facteur idéal, ni que l'accolade ne soit pas un vrai
délimiteur.

L'accolade \Biggl\{ (la plus grande disponible sous forme d'un vrai
caractère) n'a pas des très jolies pointes, une fois agrandie, mais
malgré ça, le résultat est bien plus beau qu'avec mes accolades
d'épaisseur différente.


Merci pour vos différentes suggestions!


--
Jérémy Just <jerem...@netcourrier.com>

0 new messages