[Résolu] Boite avec titre

Tout ce qui concerne l'utilisation ou l'installation de LaTeX.

Modérateur: gdm_tex

Règles du forum
Merci d'éviter le style SMS dans vos messages et de penser à utiliser la fonction Recherche avant de poster un message. Pour joindre des fichiers à vos messages, consulter ce sujet.
> Penser à utiliser les balises Code pour poster du code.

[Résolu] Boite avec titre

Messagepar albenic » Mercredi 22 Décembre 2010, 16:38

Bonjour,

Mon objectif est de construire une commande qui crée une boite avec un titre pour présenter mes cours. J'ai parcouru le web et trouvé différentes solutions. Évidemment aucune ne me convient parfaitement. Donc, en partant, d'un exemple j'ai modifié et complété pour arriver à ce que je voulais :

Code: Tout sélectionner
\documentclass[french,11pt]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage{babel}
\usepackage{calc}
\usepackage{pstricks,pst-plot,pst-text,pst-tree,pst-eps,pst-fill,pst-node,pst-math}
\usepackage[a4paper,left=1cm,right=1cm,top=1cm,bottom=2cm]{geometry}

\parindent=0pt

\newpsstyle{boiteinterieure}{framearc=0.2,fillstyle=solid,fillcolor=white,framesep=5mm}
\newpsstyle{boitetitre}{fillstyle=solid,fillcolor=white}
\newsavebox\boitetitre
\newsavebox\boiteint
\def\boite#1#2{%
 \sbox\boiteint{\psframebox[style=boiteinterieure]{%
 \begin{minipage}{0.95\linewidth}%
  #2%
 \end{minipage}}}%
 \sbox\boitetitre{\psframebox[style=boitetitre]{%
  #1%
  }}%
  %\newlength{\hauteurmax}%
  %\setlength{\hauteurmax}{\real{0.5}+\ht\boitetitre*\real{0.5}}%
  %\newlength{\yminboitetitre}%
  %\setlength{\yminboitetitre}{-\ht\boitetitre}%
 \begin{pspicture}(0,-\ht\boiteint)(\wd\boiteint,1.5\ht\boiteint)%\psgrid
   \rput[l](0,0){\usebox\boiteint}
   \rput[l](5\fboxsep,\ht\boiteint){\usebox\boitetitre}
 \end{pspicture}%
}

\begin{document}

\boite{Définition}{
L'écriture $z = x + i y$ est appelée forme algébrique du nombre complexe $z$.
\begin{enumerate}
 \item $x$ est appelé partie réelle de $z$ et est noté
 \item $y$ est appelé partie imaginaire de $z$ et est noté
\end{enumerate}
}

\boite{Remarque}{\vspace{10cm}\hspace{15cm}}

%\boite{avec saut de lignes}{
%
%Essai avec saut de ligne
%
%}

\end{document}


Mais plusieurs petits soucis subsistent.

Le premier est que la taille des arrondis de mes boites dépend des dimensions de celle-ci (lu dans la doc pstricks) et du coup le rendu est très laid. Je souhaiterais un rayon fixe, mais je ne sais pas comment faire.

Le deuxième est que j'aimerais placer finement le titre par rapport à la boite. Pour cela j'utilise le package calc pour faire des calculs savants à partir des dimensions de mes deux boites (le titre et le contenu). Le hic c'est que cela ne marche pas. Là je n'ai aucune certitude mais je pense que cela vient de la commande \ht qui permet de récupérer la hauteur d'une boite mais qui ne doit être reconnu que dans l'environnement pspicture. La question est donc comment récupérer les hauteurs de mes boites définies par \sbox et m'en servir ensuite ?

Le troisième est qu'en utilisant ma commande, je ne peux insérer aucun saut de ligne (voir le dernier essai que j'ai commenté). C'est réellement handicapant pour la lisibilité du fichier tex. Et là soyons franc, je n'ai aucune idée tant sur ce qui pose problème que sur la solution.

Si l'un d'entre vous peut me faire avancer dans mon apprentissage de latex et par la même occasion apporter une nouvelle "boite avec titre" à la communauté, je lui en serai gré.

Cordialement, Benoît.
Dernière édition par albenic le Lundi 27 Décembre 2010, 14:02, édité 1 fois.
albenic
Déca-utilisateur
 
Messages: 19
Inscription: Dimanche 17 Octobre 2010, 09:57
Statut actuel: Actif et salarié | Enseignant

Publicité

Re: Boite avec titre

Messagepar albenic » Mercredi 22 Décembre 2010, 17:25

Je me réponds à moi-même,

Le deuxième point est réglé. Voici le nouveau code de la commande boite avec titre :

Code: Tout sélectionner
\newpsstyle{boiteinterieure}{framearc=0.2,fillstyle=solid,fillcolor=white,framesep=5mm}
\newpsstyle{boitetitre}{fillstyle=solid,fillcolor=white}
\newsavebox\boitetitre
\newsavebox\boiteint
\newlength{\hauteurboitetitre}%
\newlength{\hauteurboiteint}%
\newlength{\ymaxboitetitre}%
\newlength{\hauteurmax}%
\newlength{\xminboitetitre}%
\def\boite#1#2{%
 \sbox\boiteint{\psframebox[style=boiteinterieure]{%
 \begin{minipage}{0.95\linewidth}%
  #2%
 \end{minipage}}}%
 \sbox\boitetitre{\psframebox[style=boitetitre]{%
  #1%
  }}%
  \settoheight{\hauteurboitetitre}{\usebox{\boitetitre}}%
  \settoheight{\hauteurboiteint}{\usebox{\boiteint}}%
  \setlength{\ymaxboitetitre}{\hauteurboiteint+\hauteurboitetitre*\real{0.5}}%
  \setlength{\hauteurmax}{\ymaxboitetitre+3mm}%
  \setlength{\xminboitetitre}{20pt}%
 \begin{pspicture}(0,-\ht\boiteint)(\wd\boiteint,\hauteurmax)%\psgrid
   \rput[l](0,0){\usebox\boiteint}
   \rput[tl](\xminboitetitre,\ymaxboitetitre){\usebox\boitetitre}
 \end{pspicture}%
}


Les autres points sont encore à résoudre.... Mais j'y arriverai un jour...
albenic
Déca-utilisateur
 
Messages: 19
Inscription: Dimanche 17 Octobre 2010, 09:57
Statut actuel: Actif et salarié | Enseignant

Re: Boite avec titre

Messagepar albenic » Mercredi 22 Décembre 2010, 20:24

Re bonsoir,

Le premier point est tombé. En lisant une autre doc anglaise, j'ai trouvé les bonnes options. Voici la nouvelle version :

Code: Tout sélectionner
\newpsstyle{boiteinterieure}{cornersize=absolute,linearc=0.2,fillstyle=solid,fillcolor=white,framesep=5mm}
\newpsstyle{boitetitre}{fillstyle=solid,fillcolor=white}
\newsavebox\boitetitre
\newsavebox\boiteint
\newlength{\hauteurboitetitre}%
\newlength{\hauteurboiteint}%
\newlength{\ymaxboitetitre}%
\newlength{\hauteurmax}%
\newlength{\xminboitetitre}%
\def\boite#1#2{%
 \sbox\boiteint{\psframebox[style=boiteinterieure]{%
 \begin{minipage}{0.95\linewidth}%
  #2%
 \end{minipage}}}%
 \sbox\boitetitre{\psframebox[style=boitetitre]{%
  #1%
  }}%
  \settoheight{\hauteurboitetitre}{\usebox{\boitetitre}}%
  \settoheight{\hauteurboiteint}{\usebox{\boiteint}}%
  \setlength{\ymaxboitetitre}{\hauteurboiteint+\hauteurboitetitre*\real{0.5}}%
  \setlength{\hauteurmax}{\ymaxboitetitre+3mm}%
  \setlength{\xminboitetitre}{20pt}%
 \begin{pspicture}(0,-\ht\boiteint)(\wd\boiteint,\hauteurmax)%\psgrid
   \rput[l](0,0){\usebox\boiteint}
   \rput[tl](\xminboitetitre,\ymaxboitetitre){\usebox\boitetitre}
 \end{pspicture}%
}


Il reste le dernier point, celui que je crains le plus...
albenic
Déca-utilisateur
 
Messages: 19
Inscription: Dimanche 17 Octobre 2010, 09:57
Statut actuel: Actif et salarié | Enseignant

Re: Boite avec titre

Messagepar evariste_G » Mercredi 22 Décembre 2010, 21:30

Bonsoir ... Je ne vais pas t'aider à résoudre ton problème, mais as-tu regardé du côté du package :

Code: Tout sélectionner
\usepackage{fancybox}


Il y a quand-même des boîtes qui semblent faire ce que tu veux (en termes d'arrondis).
Mathématiques, LaTeX et Python : http://www.mathweb.fr
Cours particuliers de maths et de NSI : https://cours-particuliers-bordeaux.fr/
evariste_G
Téra-utilisateur
 
Messages: 1433
Inscription: Vendredi 19 Décembre 2008, 19:13
Localisation: Bordeaux
Statut actuel: Actif et salarié | Enseignant

Re: Boite avec titre

Messagepar un bon petit » Mercredi 22 Décembre 2010, 22:11

J'ai un truc dans mes cartons qui pourrait te convenir.

Il s'agit d'environnements qui peuvent s'étendre sur plusieurs pages (ce qui est bien pratique) et qui tracent des boites à coins arrondis ou droits. Pour les coins arrondis, il s'agit de l'environnement "roundedtitlebox" dont l'argument optionnel est le rayon des arcs de cercle. Pour les coins droits, c'est l'environnement "titlebox".

Par choix, je n'ai utilisé ni tikz (Alain pourrait me le reprocher) ni pstricks (je me le reproche). Mais il est très facile de remplacer les instructions de dessin par celles de l'un de ces deux packages. Bref, je me suis contenté du dessin avec le package "pict2e" qui est le minimum syndical pour qui veut dessiner des trucs simples.

Voici le code :
Code: Tout sélectionner
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{boites}
\usepackage{pict2e}
\makeatletter
\newenvironment{roundedtitlebox}[2][5pt]{%
   \fboxrule0.4pt
   \unitlength1pt \linethickness{0.4pt}% réglage des arrondis
   \let\breakboxparindent\z@
   \def\bkvz@bottom{%
      \hbox{\kern\dimexpr\linewidth/2\put(0,0){\oval(\strip@pt\dimexpr\linewidth-0.4pt,\strip@pt\dimexpr#1*2)[b]}}%
      \vskip#1\relax}%
   \let\bkvz@before@breakbox\medbreak
   \def\bkvz@set@linewidth{\advance\linewidth\dimexpr-2\fboxrule-2\fboxsep}%
   \def\bkvz@left{\vrule\@width\fboxrule\hskip\fboxsep}%
   \def\bkvz@right{\hskip\fboxsep\vrule\@width\fboxrule}%
   \def\bkvz@top{\hbox to \hsize{%
      \put(\strip@pt\dimexpr#1+\fboxrule/2,\strip@pt\dimexpr-#1+\fboxrule/2){\oval(\strip@pt\dimexpr#1*2,\strip@pt\dimexpr#1*2)[lt]}\kern#1
      \leaders\hrule\@height\fboxrule\hskip1cm % <-- 1cm = espace avant le cadre du titre
      \begingroup
         \fboxsep1pt
         \setbox\z@\hbox{\kern0.5ex #2\kern0.5ex }%
         \setbox\z@\hbox{\lower\dimexpr(\ht\z@-\dp\z@)/2\hbox{\fbox{\box\z@}}}%
         \dp\z@\z@\ht\z@\z@\box\z@% encombrement vertical nul
      \endgroup
      \leaders\hrule\@height\fboxrule\hskip0pt plus 1fil
      \kern#1 \put(-\strip@pt\dimexpr#1+\fboxrule/2,\strip@pt\dimexpr-#1+\fboxrule/2){\oval(\strip@pt\dimexpr#1*2,\strip@pt\dimexpr#1*2)[rt]}%
      }}%
   \breakbox\vskip\dimexpr#1/2\relax}\endbreakbox

\newenvironment{titlebox}[1]{%
   \fboxrule0.4pt
   \let\breakboxparindent\z@
   \def\bkvz@bottom{\hrule\@height\fboxrule}%
   \let\bkvz@before@breakbox\medbreak
   \def\bkvz@set@linewidth{\advance\linewidth\dimexpr-2\fboxrule-2\fboxsep}%
   \def\bkvz@left{\vrule\@width\fboxrule\hskip\fboxsep}%
   \def\bkvz@right{\hskip\fboxsep\vrule\@width\fboxrule}%
   \def\bkvz@top{\hbox to \hsize{%
      \vrule\@width\fboxrule\@height\fboxrule
      \leaders\hrule\@height\fboxrule\hskip1cm % <-- 1cm = espace avant le cadre du titre
      \begingroup
         \fboxsep1pt
         \setbox\z@\hbox{\kern0.5ex #1\kern0.5ex }%
         \setbox\z@\hbox{\lower\dimexpr(\ht\z@-\dp\z@)/2\hbox{\fbox{\box\z@}}}%
         \dp\z@\z@\ht\z@\z@\box\z@% encombrement vertical nul
      \endgroup
      \leaders\hrule\@height\fboxrule\hskip0pt plus 1fil
      \vrule\@width\fboxrule\@height\fboxrule}}%
   \breakbox\kern1.5ex\relax}\endbreakbox
\makeatother

\begin{document}
\parindent0pt
Début
\begin{roundedtitlebox}[3mm]{Propriétés}
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 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 bla bla bla bla bla bla bla bla bla.

Bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla.
\end{roundedtitlebox}
Suite
\begin{roundedtitlebox}{Définition}
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 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 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 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 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.

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 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 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 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 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. 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 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 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 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 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.

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 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 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 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 bla bla bla.
\end{roundedtitlebox}
\textbf{Et la suite avec des boites rectangulaires}
\begin{titlebox}{Propriétés}
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 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 bla bla bla bla bla bla bla bla bla.

Bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla.
\end{titlebox}
Suite
\begin{titlebox}{Définition}
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 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 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 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 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.

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 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 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 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 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. 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 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 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 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 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.

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 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 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 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 bla bla bla.
\end{titlebox}
fin
\end{document}
un bon petit
Giga-utilisateur
 
Messages: 748
Inscription: Vendredi 12 Juin 2009, 21:35
Localisation: Chambéry
Statut actuel: Actif et salarié | Enseignant

Re: Boite avec titre

Messagepar balf » Mercredi 22 Décembre 2010, 23:46

Il me semble inutile de se compliquer la vie à tout réinventer : dans la mesure où il s'agit, si j'ai bien compris, d'environnements de type "theorem", l'extension ntheorem définit des environnements framed theorem ou shaded theorem, qui font tout cela en supportant les changements de page. Cette extension collabore avec framed, qui permet d'utiliser n'importe quelle commande d'encadrement (p. ex. une de celles de fancybox).
Je conseille de regarder la documentation de ntheorem, qui fournit quelques exemples très intéressants.

B.A.
balf
Zetta-utilisateur
 
Messages: 3857
Inscription: Mercredi 02 Janvier 2008, 23:18
Statut actuel: Actif et salarié | Maître de conférence

Re: Boite avec titre

Messagepar un bon petit » Jeudi 23 Décembre 2010, 00:14

balf a écrit:Il me semble inutile de se compliquer la vie à tout réinventer : dans la mesure où il s'agit, si j'ai bien compris, d'environnements de type "theorem", l'extension ntheorem définit des environnements framed theorem ou shaded theorem, qui font tout cela en supportant les changements de page. Cette extension collabore avec framed, qui permet d'utiliser n'importe quelle commande d'encadrement (p. ex. une de celles de fancybox).
Je conseille de regarder la documentation de ntheorem, qui fournit quelques exemples très intéressants.
Ben voilà comment on se fait refroidir :oops:

Quelques remarques juste en passant :
  • qui a dit que je me compliquais la vie ? Ce code est dans mes archives prêt à servir !
  • pourquoi, puisque c'est si simple, ne donnes-tu pas un ECM montrant les possibilités de ntheorem et répondant à la question posée en début de fil ?
  • plein de bonne volonté, je tape "texdoc ntheorem" et je tombe sur la "documentation" de ce package. En anglais, hum, mauvais point déjà... Et il faut vraiment chercher les exemples pour les trouver. Nulle part je n'ai vu de boites qui s'étendait sur plusieurs pages (si c'est possible, pourquoi ne le montrent-ils pas ?). Je hais ces documentations toutes théoriques où il faut se taper la lecture en détail pour commencer à comprendre un peu.
  • je n'ai pas vu non plus d'exemples où le titre était sur la ligne supérieure comme le demande l'initiateur de ce fil. S'il faut en plus lire la doc d'un autre package pour y arriver, on va commencer à devenir fou.
Voilà ma petite réaction à chaud. Je ne cherchais pourtant qu'à aider celui qui avait posé la question.

Christian
un bon petit
Giga-utilisateur
 
Messages: 748
Inscription: Vendredi 12 Juin 2009, 21:35
Localisation: Chambéry
Statut actuel: Actif et salarié | Enseignant

Re: Boite avec titre

Messagepar balf » Jeudi 23 Décembre 2010, 00:45

@ un bon petit : je suis désolé de t'avoir froissé, ce n'était pas du tout dans mes intentions. Simplement, ma philosophie particulière en matière de macros ou de fichiers de style est d'abord de chercher si ce que je veux réaliser ne peut pas l'être avec ce qui existe déjà. Je pense que les extensions faites par des spécialistes (pas comme moi) sont en principe bien faites (je veux dire que, p.ex., il n'y a pas d'effets de bord plus ou moins imprévisibles). Et je préfère bien sûr ce qui me permet de paramétrer à ma guise.
Pour ntheorem lui-même, que j'utilise depuis au bas mot une douzaine d'année, la collaboration avec framed n'a été introduite que dans la dernière version. Pour la documentation en anglais... je ne connais pas beaucoup de documentations en français, sauf pour des extensions écrites par des Français. Et encore, vu les auteurs, elle aurait pu être en allemand...

pour les exemples de boîtes, honnêtement, je n'en utilise pas moi-même. Je me suis fié à la documentation de framed (qui ne comporte pas d'exemple). Mais dès que j'ai un peu de temps pour expérimenter, je vérifierai.

B.A.
balf
Zetta-utilisateur
 
Messages: 3857
Inscription: Mercredi 02 Janvier 2008, 23:18
Statut actuel: Actif et salarié | Maître de conférence

Re: Boite avec titre

Messagepar un bon petit » Jeudi 23 Décembre 2010, 09:18

balf a écrit:@ un bon petit : je suis désolé de t'avoir froissé, ce n'était pas du tout dans mes intentions.

Froissé est un bien grand mot. Je n'étais quand même pas au bord du suicide !
balf a écrit:Simplement, ma philosophie particulière en matière de macros ou de fichiers de style est d'abord de chercher si ce que je veux réaliser ne peut pas l'être avec ce qui existe déjà.

Moi aussi, sauf quand je sais que j'ai un truc dans mes répertoires qui répond à la question.
balf a écrit:Je pense que les extensions faites par des spécialistes (pas comme moi) sont en principe bien faites (je veux dire que, p.ex., il n'y a pas d'effets de bord plus ou moins imprévisibles).

Et bien, tu penses mal. Les "spécialistes" font beaucoup d'erreurs. Il n'y a qu'à voir les fréquentes mises à jour disponibles sur le CTAN pour s'apercevoir que les "spécialistes" commettent des bugs et provoquent des incompatibilités entre packages (ce qui est tout à fait normal d'ailleurs, personne ne peut coder un truc parfait, à part Knuth, et même lui ne l'a pas fait du premier coup, et de loin).
balf a écrit:Et je préfère bien sûr ce qui me permet de paramétrer à ma guise.

Dans ce cas, rien de tel qu'un code que tu as fait toi même.
balf a écrit:Pour ntheorem lui-même, que j'utilise depuis au bas mot une douzaine d'année, la collaboration avec framed n'a été introduite que dans la dernière version. Pour la documentation en anglais... je ne connais pas beaucoup de documentations en français, sauf pour des extensions écrites par des Français. Et encore, vu les auteurs, elle aurait pu être en allemand...

pour les exemples de boîtes, honnêtement, je n'en utilise pas moi-même. Je me suis fié à la documentation de framed (qui ne comporte pas d'exemple). Mais dès que j'ai un peu de temps pour expérimenter, je vérifierai.

Oui, je te laisse cette tâche ingrate. Je trouve les documentations de ntheorem et frames très peu pédagogiques en ce sens qu'elle ne comportent pas d'exemples. C'est à croire que certains auteurs de doc se drappent le plus possible dans la théorie et le verbiage, quitte à être particulièrement chiants (alors que lire une doc "normale" est déjà très pénible en soi). Je ne comprendrai jamais cette attitude...

Bref, connaissant framed, j'ai préféré le package "boites", écrit par un français qui parle français (oui, il y a des français qui écrivent des docs uniquement en anglais, les fous, ils ne se rendent même pas compte de ce qu'il font). De plus, le code est abondamment commenté en français et qu'il est très instructif de lire !
un bon petit
Giga-utilisateur
 
Messages: 748
Inscription: Vendredi 12 Juin 2009, 21:35
Localisation: Chambéry
Statut actuel: Actif et salarié | Enseignant

Re: Boite avec titre

Messagepar albenic » Jeudi 23 Décembre 2010, 11:09

Bonjour,

Je me sens mal à l'aise, je ne voulais absolument pas créé une polémique.

Pour répondre en vrac.

Il est évident que je ne veux pas réinventer le fil à couper le beurre, je cherche juste à présenter mes théorèmes et autres définitions selon mon goût.

Pour l'historique, le voici.

En premier lieu, j'ai trouvé une solution via tikz mais celui-ci était en conflit avec framed dont j'avais besoin en parallèle. Donc je l'ai lâché.

Ensuite je suis tombé sur fancybox que j'ai aussi laissé tombé mais je ne sais plus pourquoi (de mémoire soit un conflit soit un problème dans les arrondis des boites)

Mes recherches sur le web m'ont ramené vers pstricks avec un code que je comprenais !!! C'était inespéré. Je l'ai donc adopté et modifié pour arriver à ce que je voulais.

Maintenant sur ntheorem, il est très complet, très paramétrable mais il me semble qu'il ne permet pas de faire des onglets comme je voudrais. Le code étant hors de mes capacités, je ne me sens pas de le modifier pour obtenir ce que je veux.

Voila l'historique. Il se peut que j'ai réinventé la roue mais honnêtement j'ai pas mal cherché sur le web et je n'ai rien trouvé de tout de suite exploitable à mon goût.

Cordialement, Benoît.

PS : Et pour ces problèmes de saut de lignes, vous n'auriez pas une idée ? ;-)
albenic
Déca-utilisateur
 
Messages: 19
Inscription: Dimanche 17 Octobre 2010, 09:57
Statut actuel: Actif et salarié | Enseignant

Re: Boite avec titre

Messagepar un bon petit » Jeudi 23 Décembre 2010, 11:23

albenic a écrit:PS : Et pour ces problèmes de saut de lignes, vous n'auriez pas une idée ? ;-)

Je n'ai pas très bien compris ce que tu entends par "saut de lignes".

Peux tu me dire ce qui ne se fait pas concernant ces "sauts de lignes" dans le code que je t'ai donné ?
un bon petit
Giga-utilisateur
 
Messages: 748
Inscription: Vendredi 12 Juin 2009, 21:35
Localisation: Chambéry
Statut actuel: Actif et salarié | Enseignant

Re: Boite avec titre

Messagepar Francky » Jeudi 23 Décembre 2010, 11:58

Pour tes problèmes d'arrondis avec fancybox, il s'agit peut-être du visionneur pdf en cause.
J'ai déjà vu ça, et je garde fancybox pour mes boîtes arrondies, je choisis un bon lecteur - imprimeur. (evince (léger) et reader (lourd))

Tu pourrais réessayer, c'est simple.
Linux Mint | TeXLive - TexMaker - asymptote | Python3 & C - Geany - Project Euler - SPOJ
Entia non sunt multiplicanda praeter necessitatem
Francky
Giga-utilisateur
 
Messages: 683
Inscription: Dimanche 11 Avril 2010, 13:01
Statut actuel: Actif et salarié | Enseignant

Re: Boite avec titre

Messagepar albenic » Jeudi 23 Décembre 2010, 13:43

Bonjour,

un bon petit a écrit:Je n'ai pas très bien compris ce que tu entends par "saut de lignes".


En fait dans les exemples que tu m'as fourni, tu fais des sauts de lignes

Code: Tout sélectionner

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 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 bla bla bla bla bla bla bla bla bla.



ton environnement les gère bien. Si dans ma commande, je fais la même chose, j'ai une erreur à la compilation. Je suis obligé de faire :

Code: Tout sélectionner
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 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 bla bla bla bla bla bla bla bla bla.\\


pour que cela fonctionne.

un bon petit a écrit:Peux tu me dire ce qui ne se fait pas concernant ces "sauts de lignes" dans le code que je t'ai donné ?


Merci pour ce code. Je viens de faire des essais. Il est parfait. Le seul hic c'est que je n'y comprends pas grand-chose...

En fait, le problème de fond est là : je ne sais pas programmer correctement mes commandes et autres environnements. Je bidouille. Pour l'usage que j'en fais cela est suffisant mais je ne suis pas à l'abri de rencontrer un cas plus complexe où ma commande ne fonctionnnera plus car trop simpliste. Existe t-il un livre qui aborde cela ou un tuto sur le web ?

Quoi qu'il en soit merci pour ce code, je fais tacher de le cerner et l'utiliser, Benoît.
albenic
Déca-utilisateur
 
Messages: 19
Inscription: Dimanche 17 Octobre 2010, 09:57
Statut actuel: Actif et salarié | Enseignant

Re: Boite avec titre

Messagepar albenic » Jeudi 23 Décembre 2010, 16:30

Bonsoir,

Francky a écrit:Pour tes problèmes d'arrondis avec fancybox, il s'agit peut-être du visionneur pdf en cause.
J'ai déjà vu ça, et je garde fancybox pour mes boîtes arrondies, je choisis un bon lecteur - imprimeur. (evince (léger) et reader (lourd))

Tu pourrais réessayer, c'est simple.


Je suis sous linux et j'utilise evince. En refouillant dans mon code et avec l'expérience de l'essai avec pstricks, j'ai trouvé une solution presque parfaite :

Code: Tout sélectionner
\newcommand{\boite}[2]{%
  \boxput*(-0.9,1){\colorbox{white}{\fbox{#1}}}%
  {\setlength{\fboxsep}{12pt}%
  \cornersize*{2.5mm}%
    \Ovalbox{%
    \begin{minipage}{0.95\linewidth}
    #2%
    \end{minipage}
    }}}


Il faut les packages color et fancybox et cela s'utilise avec la commande :

Code: Tout sélectionner
\boite{titre}{mon texte}


Le seul hic est la jonction du filet supérieur avec la boite contenant le titre.

Je me doute qu'il y a une solution simple mais je cherche encore.
albenic
Déca-utilisateur
 
Messages: 19
Inscription: Dimanche 17 Octobre 2010, 09:57
Statut actuel: Actif et salarié | Enseignant

Re: Boite avec titre

Messagepar c-top » Samedi 25 Décembre 2010, 08:21

un bon petit a écrit:Je hais ces documentations toutes théoriques où il faut se taper la lecture en détail pour commencer à comprendre un peu.


Je rigole :lol: :lol: :lol:
c-top
Déca-utilisateur
 
Messages: 42
Inscription: Samedi 11 Juillet 2009, 19:20
Statut actuel: Actif et salarié | Enseignant

Re: Boite avec titre

Messagepar un bon petit » Samedi 25 Décembre 2010, 09:39

c-top a écrit:Je rigole :lol: :lol: :lol:

Puis-je te demander pourquoi ?
un bon petit
Giga-utilisateur
 
Messages: 748
Inscription: Vendredi 12 Juin 2009, 21:35
Localisation: Chambéry
Statut actuel: Actif et salarié | Enseignant

Re: Boite avec titre

Messagepar albenic » Lundi 27 Décembre 2010, 13:52

Bonjour,

Le dernier point est tombé (les sauts de ligne sont désormais possible). C'était juste une erreur dans la façon de déclarer la commande. Voici le code qui va bien pour ceux que cela intéresse (ce code utilise juste pstricks :

Code: Tout sélectionner
\newpsstyle{boiteinterieure}{cornersize=absolute,linearc=0.2,fillstyle=solid,fillcolor=white,framesep=5mm}
\newpsstyle{boitetitre}{fillstyle=solid,fillcolor=white}
\newsavebox\boitetitre
\newsavebox\boiteint
\newlength{\hauteurboitetitre}%
\newlength{\hauteurboiteint}%
\newlength{\ymaxboitetitre}%
\newlength{\hauteurmax}%
\newlength{\xminboitetitre}%
\newcommand{\boite}[2]{%
 \sbox\boiteint{\psframebox[style=boiteinterieure]{%
 \begin{minipage}{0.95\linewidth}%
  #2%
 \end{minipage}}}%
 \sbox\boitetitre{\psframebox[style=boitetitre]{%
  #1%
  }}%
  \settoheight{\hauteurboitetitre}{\usebox{\boitetitre}}%
  \settoheight{\hauteurboiteint}{\usebox{\boiteint}}%
  \setlength{\ymaxboitetitre}{\hauteurboiteint+\hauteurboitetitre*\real{0.5}}%
  \setlength{\hauteurmax}{\ymaxboitetitre+3mm}%
  \setlength{\xminboitetitre}{20pt}%
 \begin{pspicture}(0,-\ht\boiteint)(\wd\boiteint,\hauteurmax)%\psgrid
   \rput[l](0,0){\usebox\boiteint}
   \rput[tl](\xminboitetitre,\ymaxboitetitre){\usebox\boitetitre}
 \end{pspicture}%
}


On l'utilise comme suit :

Code: Tout sélectionner
\boite{Définition}{Contenu de la définition}


Benoît.
albenic
Déca-utilisateur
 
Messages: 19
Inscription: Dimanche 17 Octobre 2010, 09:57
Statut actuel: Actif et salarié | Enseignant

Re: Boite avec titre

Messagepar un bon petit » Lundi 27 Décembre 2010, 17:41

albenic a écrit:Voici le code qui va bien pour ceux que cela intéresse (ce code utilise juste pstricks


Si je peux me permettre, ce code utilise aussi le package calc me semble t-il. De plus, le code est inutilement compliqué.
Je propose cette solution un peu plus simple :

Code: Tout sélectionner
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{pstricks}
\makeatletter
\def\body@sep{5pt}% marge entre texte et traits de la boite principale
\def\body@width{0.8pt}% épaisseur des traits de la boite principale
\def\title@sep{3pt}% marge entre titre et traits de la boite de titre
\def\title@width{0.5pt}% épaisseur des traits de la boite de titre
\def\title@bottom{3pt}% espace vertical entre boite de titre et texte principal
\newcommand\boite[2]{%
   \medbreak\noindent
   \setbox\z@\vtop{\hsize\dimexpr\linewidth-\body@sep*2-\body@width*2
         \setbox\@ne\hbox{#1}%
         \xdef\title@midht{\the\dimexpr(\dp\@ne+\ht\@ne)/2+\title@sep+\title@width}%
         \vskip\dimexpr\title@midht-\body@sep+\title@bottom\relax
         \parindent\z@% pas d'indentation dans la boite principale
         #2}%
   \pspicture(0,-\dimexpr\ht\z@+\dp\z@+\body@sep+\body@width)(0,\title@midht)%
      \rput[tl](0,0){\psframebox[cornersize=absolute,linearc=0.2,fillstyle=solid,fillcolor=white,framesep=\body@sep,linewidth=\body@width]{\box\z@}}%
      \rput[l](20pt,0){\psframebox[fillstyle=solid,fillcolor=white,framesep=\title@sep,linewidth=\title@width]{#1}}%
   \endpspicture
   \vskip\dimexpr\body@sep+\body@width\relax}
\makeatother
\begin{document}
Du texte au dessus. Du texte au dessus. Du texte au dessus. Du texte au dessus. Du texte au dessus. Du texte au dessus. Du texte au dessus. Du texte au dessus. Du texte au dessus. Du texte au dessus. Du texte au dessus. Du texte au dessus. Du texte au dessus. Du texte au dessus. Du texte au dessus.
\boite{Définition}{Contenu de la boite principale. Contenu de la boite principale. Contenu de la boite principale. Contenu de la boite principale. Contenu de la boite principale. Contenu de la boite principale. Contenu de la boite principale. Contenu de la boite principale. Contenu de la boite principale. Contenu de la boite principale.}
Du  texte au dessous. Du  texte au dessous. Du  texte au dessous. Du  texte au dessous. Du  texte au dessous. Du  texte au dessous. Du  texte au dessous. Du  texte au dessous. Du  texte au dessous. Du  texte au dessous. Du  texte au dessous. Du  texte au dessous. Du  texte au dessous. Du  texte au dessous.
\end{document}
un bon petit
Giga-utilisateur
 
Messages: 748
Inscription: Vendredi 12 Juin 2009, 21:35
Localisation: Chambéry
Statut actuel: Actif et salarié | Enseignant


Retourner vers LaTeX

 


  • Articles en relation
    Réponses
    Vus
    Dernier message

Qui est en ligne

Utilisateurs parcourant ce forum: Google [Bot], Google Adsense [Bot], Grapeshot [Crawler], pzorba75 et 17 invités