Récupérer la hauteur d'une figure asylatex
-
- Utilisateur éprouvé
- Messages : 228
- Inscription : samedi 18 août 2007, 21:57
- Localisation : Caen
Récupérer la hauteur d'une figure asylatex
Bonjour,
Est-il possible de récupérer la hauteur (et la largeur tant qu'on y est) d'une figure asymptote créée dans un fichier latex dans un environnement asy ?
Merci.
Est-il possible de récupérer la hauteur (et la largeur tant qu'on y est) d'une figure asymptote créée dans un fichier latex dans un environnement asy ?
Merci.
Dernière modification par alekhine le mardi 02 mars 2010, 18:32, modifié 1 fois.
Re: [asylatex] hauteur figure
Pour ?alekhine a écrit :Est-il possible de récupérer la hauteur (et la largeur tant qu'on y est) d'une figure asymptote créer dans un fichier latex dans un environnement asy ?
Tu ne peux pas fixer la hauteur avec un size(0,hauteurchoisie) ?
Index des fonctions Asymptote- Pour consulter ou me demander des exemples : Galerie et AsyForum - Notepad++, l'éditeur qu'il faut pour Asymptote sous Windows - TexWorks+LaTexMk+Asymptote
-
- Utilisateur éprouvé
- Messages : 228
- Inscription : samedi 18 août 2007, 21:57
- Localisation : Caen
Re: [asylatex] hauteur figure
Pour créer une minipage de la même hauteur que la figure afin d'écrire du texte à côté. Par exemple :
Pour la hauteur, je l'ai récupérée dans le log
Et puis ce serait pour pouvoir créer une commande, et donc récupérer automatiquement cette hauteur.
Code : Tout sélectionner
\documentclass[11pt,a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage[frenchb]{babel}
\usepackage[ headheight=14pt, margin=2.8cm]{geometry}
\usepackage{graphics,asymptote}
\begin{document}
\begin{minipage}[][172.20335pt][t]{0.45\linewidth}
Texte à côté de la figure (genre un magnifique énoncé d'exercice).
\end{minipage}
\hfill
\begin{minipage}[]{0.5\linewidth}
\begin{center}
\begin{asy}
unitsize(0.65cm);
path chemin=(0,0)..(2,1)..(5,4)..cycle;
filldraw(chemin,red,1bp+black);
\end{asy}
\end{center}
\end{minipage}
\end{document}
Si je veux créer des figures "en vraie grandeur" je ne maîtrise pas la hauteur finale.GMaths a écrit :Tu ne peux pas fixer la hauteur avec un size(0,hauteurchoisie) ?
Et puis ce serait pour pouvoir créer une commande, et donc récupérer automatiquement cette hauteur.
Re: [asylatex] hauteur figure
Il y a une chose que je ne comprends : la quantité de texte va être variable... donc :alekhine a écrit :Et puis ce serait pour pouvoir créer une commande, et donc récupérer automatiquement cette hauteur.
Qu'espères-tu obtenir... si tu as moins de texte à mettre que de "place disponible" dans ta minipage de hauteur fixée ?
Qu'espères-tu obtenir... si tu as plus de texte à mettre que de "place disponible" dans ta minipage de hauteur fixée ?
Index des fonctions Asymptote- Pour consulter ou me demander des exemples : Galerie et AsyForum - Notepad++, l'éditeur qu'il faut pour Asymptote sous Windows - TexWorks+LaTexMk+Asymptote
-
- Utilisateur éprouvé
- Messages : 228
- Inscription : samedi 18 août 2007, 21:57
- Localisation : Caen
Re: [asylatex] hauteur figure
Dans les deux cas j'aimerais que le texte débute en haut de la figure. Quitte à ce qu'il dépasse en bas s'il y a plus de texte que la hauteur de la figure.GMaths a écrit : Qu'espères-tu obtenir... si tu as moins de texte à mettre que de "place disponible" dans ta minipage de hauteur fixée ?
Qu'espères-tu obtenir... si tu as plus de texte à mettre que de "place disponible" dans ta minipage de hauteur fixée ?
Mais je me rend compte avec ta question que ça ne marcherait que si le texte est plus court que la hauteur de la figure :(
Re: [asylatex] hauteur figure
Cela, c'est possible sans chercher à calculer la hauteur... donc je ne vois pas ce que la hauteur de la figure va t'apporter... puisque tout va dépendre de la quantité de texte que tu décideras de mettre dans la minipage et de celle que tu décideras de mettre à la suite de la minipage.alekhine a écrit :Dans les deux cas j'aimerais que le texte débute en haut de la figure.
Je te conseille de proposer des exemples qui ne font pas ce que tu veux... et on pourra alors te dire comment faire.
Index des fonctions Asymptote- Pour consulter ou me demander des exemples : Galerie et AsyForum - Notepad++, l'éditeur qu'il faut pour Asymptote sous Windows - TexWorks+LaTexMk+Asymptote
-
- Utilisateur éprouvé
- Messages : 228
- Inscription : samedi 18 août 2007, 21:57
- Localisation : Caen
Re: [asylatex] hauteur figure
Donc je précise ma question :
comment faire pour qu'avec deux minipages côte à côte, l'une contenant du texte et l'autre une figure, le texte débute en haut de la figure.
Car si on ne passe pas d'options aux deux minipages, le texte est centré verticalement par rapport à la figure.
comment faire pour qu'avec deux minipages côte à côte, l'une contenant du texte et l'autre une figure, le texte débute en haut de la figure.
Car si on ne passe pas d'options aux deux minipages, le texte est centré verticalement par rapport à la figure.
-
- Utilisateur éprouvé
- Messages : 228
- Inscription : samedi 18 août 2007, 21:57
- Localisation : Caen
Re: [asylatex] hauteur figure
Voilà ce que je ne veux pas :
Code : Tout sélectionner
\documentclass[11pt,a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage[frenchb]{babel}
\usepackage[ headheight=14pt, margin=2.8cm]{geometry}
\usepackage{graphics,asymptote}
\begin{document}
\begin{minipage}{0.45\linewidth}
Texte à côté de la figure (genre un magnifique énoncé d'exercice).
\end{minipage}
\hfill
\begin{minipage}{0.5\linewidth}
\begin{center}
\begin{asy}
unitsize(0.65cm);
path chemin=(0,0)..(2,1)..(5,4)..cycle;
filldraw(chemin,red,1bp+black);
\end{asy}
\end{center}
\end{minipage}
\end{document}
- Pièces jointes
-
- hauteur_figure.pdf
- (28.79 Kio) Téléchargé 228 fois
Dernière modification par alekhine le mercredi 03 mars 2010, 20:37, modifié 1 fois.
Re: [asylatex] hauteur figure
Il fallait commencer par cela. :-)alekhine a écrit :Donc je précise ma question :
comment faire pour qu'avec deux minipages côte à côte, l'une contenant du texte et l'autre une figure, le texte débute en haut de la figure.
Car si on ne passe pas d'options aux deux minipages, le texte est centré verticalement par rapport à la figure.
Tu écris ceci, en remplaçant les points par le texte et l'image...
Code : Tout sélectionner
\setlength{\largeurimage}{5cm}
\alignevert[T]{%[c]ou[b]ou[t]ou[T]
\begin{minipage}{\textwidth-\largeurimage-.5cm}
•
\end{minipage}%
}\hfill
\alignevert[T]{%
\begin{minipage}{\largeurimage}
•
\end{minipage}%
}
Code : Tout sélectionner
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%% PLACEMENT VERTICAL DES IMAGES ET TABLEAUX %%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%% Définition de la commande \alignevert (ajout du 28/03/09)
%%%% \alignevert[c]{objet} place le centre de l'objet au milieu d'un x
%%%% \alignevert[b]{objet} place le bas de l'objet sur la ligne de base
%%%% \alignevert[t]{objet} place le haut de l'objet sur la ligne de base
%%%% \alignevert[T]{objet} place le haut de l'objet au niveau du haut d'un H
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\newlength{\largeurimage}
\setlength{\largeurimage}{5cm}
\makeatletter
\newlength{\temp@alignevert@length}
\newsavebox{\temp@alignevert@box}
\long\def\alignevert[#1]#2{%
\sbox{\temp@alignevert@box}{#2}%
\ifx#1c%
\setlength{\temp@alignevert@length}{\heightof{\usebox\temp@alignevert@box}/2*(-1)+0.5ex}%
\else\ifx#1t%
\setlength{\temp@alignevert@length}{\heightof{\usebox\temp@alignevert@box}*(-1)}%
\else\ifx#1T%
\setlength{\temp@alignevert@length}{\heightof{\usebox\temp@alignevert@box}*(-1)+\heightof{I}}%
\else\ifx#1b%
\setlength{\temp@alignevert@length}{\depthof{\usebox\temp@alignevert@box}}%
\else\PackageWarning{alignevert}{option #1 unknown, using b instead}%
\setlength{\temp@alignevert@length}{\depthof{\usebox\temp@alignevert@box}}%
\fi\fi\fi\fi
\raisebox{\temp@alignevert@length}{\usebox\temp@alignevert@box}%
}
\makeatother
Index des fonctions Asymptote- Pour consulter ou me demander des exemples : Galerie et AsyForum - Notepad++, l'éditeur qu'il faut pour Asymptote sous Windows - TexWorks+LaTexMk+Asymptote
-
- Utilisateur éprouvé
- Messages : 228
- Inscription : samedi 18 août 2007, 21:57
- Localisation : Caen
Re: [asylatex] hauteur figure
Il faut que je regarde de plus près car pour l'instant LaTeX m'envoie balader pour une accolade en trop.
Et puis avec ça ce serait bien d'obtenir automatiquement la LARGEUR de l'image
Code : Tout sélectionner
Argument of \ProcessAsymptoteLine has an extra }.
<inserted text>
\par
l.63 }
Re: [asylatex] hauteur figure
J'ai le problème : cela fonctionnerait avec des figures tikz... et pas avec l'environnement asy ?
Je vais tester aussi... (mais seulement un peu... car je suis débordé)
Je vais tester aussi... (mais seulement un peu... car je suis débordé)
Index des fonctions Asymptote- Pour consulter ou me demander des exemples : Galerie et AsyForum - Notepad++, l'éditeur qu'il faut pour Asymptote sous Windows - TexWorks+LaTexMk+Asymptote
-
- Modérateur spécialisé
- Messages : 2293
- Inscription : lundi 12 mars 2007, 11:20
- Localisation : Rouen
Re: [asylatex] hauteur figure
Bonsoir
C'est normal (réponse de prof). L'environnment asy est basé sur comments et est très chatouilleux, il n'accepte pas d'être en argument. Mis à part cela, j'ai recopié, adapté la solution de subfloat sans du tout comprendre (le prof en action donc). Comme je suis tex-incompétent, je n'arrive pas à faire passer l'argument t,T,c,b de \begin{machin}{t} blabla \end{machin} à alignevert (alignevert m'écrit option b unknow, using b instead, quel comique !, une histoire de cattruc ?)
Un expert TeX pourra certainement améliorer et faire un \begin{machin}[t,T,b ou c].
En attendant, j'ai défini 4 {t,T,c,b}alignevert environnements
O.G.
C'est normal (réponse de prof). L'environnment asy est basé sur comments et est très chatouilleux, il n'accepte pas d'être en argument. Mis à part cela, j'ai recopié, adapté la solution de subfloat sans du tout comprendre (le prof en action donc). Comme je suis tex-incompétent, je n'arrive pas à faire passer l'argument t,T,c,b de \begin{machin}{t} blabla \end{machin} à alignevert (alignevert m'écrit option b unknow, using b instead, quel comique !, une histoire de cattruc ?)
Un expert TeX pourra certainement améliorer et faire un \begin{machin}[t,T,b ou c].
En attendant, j'ai défini 4 {t,T,c,b}alignevert environnements
Code : Tout sélectionner
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%% PLACEMENT VERTICAL DES IMAGES ET TABLEAUX %%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%% Définition de la commande \alignevert (ajout du 28/03/09)
%%%% \alignevert[c]{objet} place le centre de l'objet au milieu d'un x
%%%% \alignevert[b]{objet} place le bas de l'objet sur la ligne de base
%%%% \alignevert[t]{objet} place le haut de l'objet sur la ligne de base
%%%% \alignevert[T]{objet} place le haut de l'objet au niveau du haut d'un H
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\newlength{\largeurimage}
\setlength{\largeurimage}{5cm}
\makeatletter
\newlength{\temp@alignevert@length}
\newsavebox{\temp@alignevert@box}
\long\def\alignevert[#1]#2{%
\sbox{\temp@alignevert@box}{#2}%
\ifx#1c%
\setlength{\temp@alignevert@length}{\heightof{\usebox\temp@alignevert@box}/2*(-1)+0.5ex}%
\else\ifx#1t%
\setlength{\temp@alignevert@length}{\heightof{\usebox\temp@alignevert@box}*(-1)}%
\else\ifx#1T%
\setlength{\temp@alignevert@length}{\heightof{\usebox\temp@alignevert@box}*(-1)+\heightof{I}}%
\else\ifx#1b%
\setlength{\temp@alignevert@length}{\depthof{\usebox\temp@alignevert@box}}%
\else\PackageWarning{alignevert}{option #1 unknown, using b instead}%
\setlength{\temp@alignevert@length}{\depthof{\usebox\temp@alignevert@box}}%
\fi\fi\fi\fi
\raisebox{\temp@alignevert@length}{\usebox\temp@alignevert@box}%
}
\newsavebox{\sfe@box}
\newenvironment{balignevert}{%
\setbox\sfe@box\hbox\bgroup\color@setgroup}%
{\color@endgroup\egroup\alignevert[b]%
{\usebox{\sfe@box}}}
\newenvironment{Talignevert}{%
\setbox\sfe@box\hbox\bgroup\color@setgroup}%
{\color@endgroup\egroup\alignevert[T]%
{\usebox{\sfe@box}}}
\newenvironment{talignevert}{%
\setbox\sfe@box\hbox\bgroup\color@setgroup}%
{\color@endgroup\egroup\alignevert[t]%
{\usebox{\sfe@box}}}
\newenvironment{calignevert}{%
\setbox\sfe@box\hbox\bgroup\color@setgroup}%
{\color@endgroup\egroup\alignevert[c]%
{\usebox{\sfe@box}}}
\makeatother
Code : Tout sélectionner
\begin{calignevert}
\begin{minipage}{\textwidth-\largeurimage-.5cm}
Voici le texte de l'exercice,
Voici le texte de l'exercice, Voici le texte de l'exercice, Voici le
texte de l'exercice, Voici le texte de l'exercice,
\end{minipage}
\end{calignevert}
\hfill H
\begin{Talignevert}
\begin{minipage}{4cm}
\begin{asy}
size(4cm,0);
draw(unitcircle);
\end{asy}
\end{minipage}
\end{Talignevert}
Re: [asylatex] hauteur figure
Merci Olivier de t'être penché sur le problème.
J'ai lu, pas testé (je le ferai plus tard)... et vais retourner à mes copies (urgentes !) pour laisser éventuellement des spécialistes $\TeX$ répondre à ta demande.
J'ai lu, pas testé (je le ferai plus tard)... et vais retourner à mes copies (urgentes !) pour laisser éventuellement des spécialistes $\TeX$ répondre à ta demande.
Index des fonctions Asymptote- Pour consulter ou me demander des exemples : Galerie et AsyForum - Notepad++, l'éditeur qu'il faut pour Asymptote sous Windows - TexWorks+LaTexMk+Asymptote
-
- Modérateur spécialisé
- Messages : 2293
- Inscription : lundi 12 mars 2007, 11:20
- Localisation : Rouen
Re: [Asymptote] Hauteur d'une figure asylatex
J'ajoute que comme l'environnement asy est basé sur comments, qu'il ne faut absolument pas indenter \begin{asy} et \end{asy}.
Bon courage à Gaëtan pour ses copies.
O.G.
Bon courage à Gaëtan pour ses copies.
O.G.
Re: [Asymptote] Hauteur d'une figure asylatex
Je viens de le faire avec ce qui suit.GMaths a écrit :Merci Olivier de t'être penché sur le problème.
J'ai lu, pas testé (je le ferai plus tard)...
Code : Tout sélectionner
% !TEX TS-program = pdflatex
% !TEX encoding = Latin1
\documentclass[11pt]{article}
\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage[frenchb]{babel}
\usepackage[a4paper,%
landscape=false,%
hmargin={1cm,1cm},%
vmargin={1cm,1cm},%
headheight=15pt,%
includeheadfoot]{geometry}
\usepackage{graphics,asymptote}
\usepackage{calc}
\usepackage{lipsum}
\setlength{\parindent}{0pt}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%% PLACEMENT VERTICAL DES IMAGES ET TABLEAUX %%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%% Définition de la commande \alignevert (ajout du 28/03/09)
%%%% \alignevert[c]{objet} place le centre de l'objet au milieu d'un x
%%%% \alignevert[b]{objet} place le bas de l'objet sur la ligne de base
%%%% \alignevert[t]{objet} place le haut de l'objet sur la ligne de base
%%%% \alignevert[T]{objet} place le haut de l'objet au niveau du haut d'un H
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\newlength{\largeurimage}
\setlength{\largeurimage}{5cm}
\makeatletter
\newlength{\temp@alignevert@length}
\newsavebox{\temp@alignevert@box}
\long\def\alignevert[#1]#2{%
\sbox{\temp@alignevert@box}{#2}%
\ifx#1c%
\setlength{\temp@alignevert@length}{\heightof{\usebox\temp@alignevert@box}/2*(-1)+0.5ex}%
\else\ifx#1t%
\setlength{\temp@alignevert@length}{\heightof{\usebox\temp@alignevert@box}*(-1)}%
\else\ifx#1T%
\setlength{\temp@alignevert@length}{\heightof{\usebox\temp@alignevert@box}*(-1)+\heightof{I}}%
\else\ifx#1b%
\setlength{\temp@alignevert@length}{\depthof{\usebox\temp@alignevert@box}}%
\else\PackageWarning{alignevert}{option #1 unknown, using b instead}%
\setlength{\temp@alignevert@length}{\depthof{\usebox\temp@alignevert@box}}%
\fi\fi\fi\fi
\raisebox{\temp@alignevert@length}{\usebox\temp@alignevert@box}%
}
\newsavebox{\sfe@box}
\newenvironment{balignevert}{%
\setbox\sfe@box\hbox\bgroup\color@setgroup}%
{\color@endgroup\egroup\alignevert[b]%
{\usebox{\sfe@box}}}
\newenvironment{Talignevert}{%
\setbox\sfe@box\hbox\bgroup\color@setgroup}%
{\color@endgroup\egroup\alignevert[T]%
{\usebox{\sfe@box}}}
\newenvironment{talignevert}{%
\setbox\sfe@box\hbox\bgroup\color@setgroup}%
{\color@endgroup\egroup\alignevert[t]%
{\usebox{\sfe@box}}}
\newenvironment{calignevert}{%
\setbox\sfe@box\hbox\bgroup\color@setgroup}%
{\color@endgroup\egroup\alignevert[c]%
{\usebox{\sfe@box}}}
\makeatother
\begin{document}
\setlength{\largeurimage}{4cm}
\begin{Talignevert}
\begin{minipage}{\linewidth-\largeurimage-1cm}
\lipsum[0-1]
\end{minipage}
\end{Talignevert}
\hfill
\begin{Talignevert}
\begin{minipage}{\largeurimage}
\begin{asy}
size(4cm,0);
draw(unitcircle,red);
\end{asy}
\end{minipage}
\end{Talignevert}
\begin{enumerate}
\item
\setlength{\largeurimage}{4cm}
\begin{Talignevert}%
\begin{minipage}{\linewidth-\largeurimage-1cm}
\lipsum[0-1]
\end{minipage}
\end{Talignevert}
\hfill
\begin{Talignevert}
\begin{minipage}{\largeurimage}
\begin{asy}
size(4cm,0);
draw(polygon(7),blue);
\end{asy}
\end{minipage}
\end{Talignevert}
\item Cela fonctionne bien, non ?
\end{enumerate}
\end{document}
... et effectivement si un expert de TeX pouvait nous trouver un truc pour retrouver la syntaxe initiale... ce serait sympa.
Index des fonctions Asymptote- Pour consulter ou me demander des exemples : Galerie et AsyForum - Notepad++, l'éditeur qu'il faut pour Asymptote sous Windows - TexWorks+LaTexMk+Asymptote
Re: [Asymptote] Hauteur d'une figure asylatex
GMaths a écrit :Je viens de le faire avec ce qui suit.GMaths a écrit :Merci Olivier de t'être penché sur le problème.
J'ai lu, pas testé (je le ferai plus tard)...
...
Cela fonctionne, merci...
... et effectivement si un expert de TeX pouvait nous trouver un truc pour retrouver la syntaxe initiale... ce serait sympa.
Je suis loin d'être un expert, mais je propose ceci :
Code : Tout sélectionner
\documentclass[11pt]{article}
\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage[frenchb]{babel}
\usepackage[a4paper,%
landscape=false,%
hmargin={1cm,1cm},%
vmargin={1cm,1cm},%
headheight=15pt,%
includeheadfoot]{geometry}
\usepackage{graphics,asymptote}
\usepackage{calc}
\usepackage{lipsum}
\setlength{\parindent}{0pt}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%% PLACEMENT VERTICAL DES IMAGES ET TABLEAUX %%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%% Définition de la commande \alignevert (ajout du 28/03/09)
%%%% \alignevert[c]{objet} place le centre de l'objet au milieu d'un x
%%%% \alignevert[b]{objet} place le bas de l'objet sur la ligne de base
%%%% \alignevert[t]{objet} place le haut de l'objet sur la ligne de base
%%%% \alignevert[T]{objet} place le haut de l'objet au niveau du haut d'un H
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\newlength{\largeurimage}
\setlength{\largeurimage}{5cm}
\makeatletter
\newlength{\temp@alignevert@length}
\newsavebox{\temp@alignevert@box}
\long\def\alignevert[#1]#2{%
\sbox{\temp@alignevert@box}{#2}%
\ifx#1c%
\setlength{\temp@alignevert@length}{\heightof{\usebox\temp@alignevert@box}/2*(-1)+0.5ex}%
\else\ifx#1t%
\setlength{\temp@alignevert@length}{\heightof{\usebox\temp@alignevert@box}*(-1)}%
\else\ifx#1T%
\setlength{\temp@alignevert@length}{\heightof{\usebox\temp@alignevert@box}*(-1)+\heightof{I}}%
\else\ifx#1b%
\setlength{\temp@alignevert@length}{\depthof{\usebox\temp@alignevert@box}}%
\else\PackageWarning{alignevert}{option #1 unknown, using b instead}%
\setlength{\temp@alignevert@length}{\depthof{\usebox\temp@alignevert@box}}%
\fi\fi\fi\fi
\raisebox{\temp@alignevert@length}{\usebox\temp@alignevert@box}%
}
\newsavebox{\sfe@box}
\newenvironment{alignementvert}[1][c]{%
\ifx#1b\gdef\place{0}\else\ifx#1c\gdef\place{1}\else\ifx#1t\gdef\place{2}\else\ifx#1T\gdef\place{3}\fi\fi\fi\fi%
\setbox\sfe@box\hbox\bgroup\color@setgroup}%
{\color@endgroup\egroup%
\ifcase\place
\alignevert[b]{\usebox{\sfe@box}}%
\or
\alignevert[c]{\usebox{\sfe@box}}%
\or
\alignevert[t]{\usebox{\sfe@box}}%
\or
\alignevert[T]{\usebox{\sfe@box}}%
\fi}
\makeatother
\begin{document}
\setlength{\largeurimage}{4cm}
\begin{alignementvert}[b]
\begin{minipage}{\linewidth-\largeurimage-1cm}
\lipsum[0-1]
\end{minipage}
\end{alignementvert}
\hfill
\begin{alignementvert}[b]
\begin{minipage}{\largeurimage}
\begin{asy}
size(4cm,0);
draw(unitcircle,red);
\end{asy}
\end{minipage}
\end{alignementvert}
\begin{enumerate}
\item
\setlength{\largeurimage}{4cm}
\begin{alignementvert}[T]%
\begin{minipage}{\linewidth-\largeurimage-1cm}
\lipsum[0-1]
\end{minipage}
\end{alignementvert}
\hfill
\begin{alignementvert}[T]
\begin{minipage}{\largeurimage}
\begin{asy}
size(4cm,0);
draw(polygon(7),blue);
\end{asy}
\end{minipage}
\end{alignementvert}
\item Cela fonctionne bien, non ?
\end{enumerate}
\end{document}
Re: [Asymptote] Hauteur d'une figure asylatex
Cela m'a l'air très bien : merci beaucoup.fp a écrit :Je suis loin d'être un expert, mais je propose ceci :
FPCode : Tout sélectionner
\documentclass[11pt]{article} \usepackage[latin1]{inputenc} \usepackage[T1]{fontenc} \usepackage{lmodern} \usepackage[frenchb]{babel} \usepackage[a4paper,% landscape=false,% hmargin={1cm,1cm},% vmargin={1cm,1cm},% headheight=15pt,% includeheadfoot]{geometry} \usepackage{graphics,asymptote} \usepackage{calc} \usepackage{lipsum} \setlength{\parindent}{0pt} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%% PLACEMENT VERTICAL DES IMAGES ET TABLEAUX %%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%% Définition de la commande \alignevert (ajout du 28/03/09) %%%% \alignevert[c]{objet} place le centre de l'objet au milieu d'un x %%%% \alignevert[b]{objet} place le bas de l'objet sur la ligne de base %%%% \alignevert[t]{objet} place le haut de l'objet sur la ligne de base %%%% \alignevert[T]{objet} place le haut de l'objet au niveau du haut d'un H %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \newlength{\largeurimage} \setlength{\largeurimage}{5cm} \makeatletter \newlength{\temp@alignevert@length} \newsavebox{\temp@alignevert@box} \long\def\alignevert[#1]#2{% \sbox{\temp@alignevert@box}{#2}% \ifx#1c% \setlength{\temp@alignevert@length}{\heightof{\usebox\temp@alignevert@box}/2*(-1)+0.5ex}% \else\ifx#1t% \setlength{\temp@alignevert@length}{\heightof{\usebox\temp@alignevert@box}*(-1)}% \else\ifx#1T% \setlength{\temp@alignevert@length}{\heightof{\usebox\temp@alignevert@box}*(-1)+\heightof{I}}% \else\ifx#1b% \setlength{\temp@alignevert@length}{\depthof{\usebox\temp@alignevert@box}}% \else\PackageWarning{alignevert}{option #1 unknown, using b instead}% \setlength{\temp@alignevert@length}{\depthof{\usebox\temp@alignevert@box}}% \fi\fi\fi\fi \raisebox{\temp@alignevert@length}{\usebox\temp@alignevert@box}% } \newsavebox{\sfe@box} \newenvironment{alignementvert}[1][c]{% \ifx#1b\gdef\place{0}\else\ifx#1c\gdef\place{1}\else\ifx#1t\gdef\place{2}\else\ifx#1T\gdef\place{3}\fi\fi\fi\fi% \setbox\sfe@box\hbox\bgroup\color@setgroup}% {\color@endgroup\egroup% \ifcase\place \alignevert[b]{\usebox{\sfe@box}}% \or \alignevert[c]{\usebox{\sfe@box}}% \or \alignevert[t]{\usebox{\sfe@box}}% \or \alignevert[T]{\usebox{\sfe@box}}% \fi} \makeatother \begin{document} \setlength{\largeurimage}{4cm} \begin{alignementvert}[b] \begin{minipage}{\linewidth-\largeurimage-1cm} \lipsum[0-1] \end{minipage} \end{alignementvert} \hfill \begin{alignementvert}[b] \begin{minipage}{\largeurimage} \begin{asy} size(4cm,0); draw(unitcircle,red); \end{asy} \end{minipage} \end{alignementvert} \begin{enumerate} \item \setlength{\largeurimage}{4cm} \begin{alignementvert}[T]% \begin{minipage}{\linewidth-\largeurimage-1cm} \lipsum[0-1] \end{minipage} \end{alignementvert} \hfill \begin{alignementvert}[T] \begin{minipage}{\largeurimage} \begin{asy} size(4cm,0); draw(polygon(7),blue); \end{asy} \end{minipage} \end{alignementvert} \item Cela fonctionne bien, non ? \end{enumerate} \end{document}
Et je viens de réaliser que la minipage autour de l'environnement asy ne semble plus utile.
(Je ne sais plus quand et pourquoi... je l'avais ajoutée. Il faudra que je réessaie avec une figure tikz... et avec du texte au dessus et en dessous de la figure.)
Code : Tout sélectionner
\documentclass[11pt]{article}
\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage[frenchb]{babel}
\usepackage[a4paper,%
landscape=false,%
hmargin={1cm,1cm},%
vmargin={1cm,1cm},%
headheight=15pt,%
includeheadfoot]{geometry}
\usepackage{graphics,asymptote}
\usepackage{calc}
\usepackage{lipsum}
\setlength{\parindent}{0pt}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%% PLACEMENT VERTICAL DES IMAGES ET TABLEAUX %%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%% Définition de la commande \alignevert (ajout du 28/03/09)
%%%% \alignevert[c]{objet} place le centre de l'objet au milieu d'un x
%%%% \alignevert[b]{objet} place le bas de l'objet sur la ligne de base
%%%% \alignevert[t]{objet} place le haut de l'objet sur la ligne de base
%%%% \alignevert[T]{objet} place le haut de l'objet au niveau du haut d'un H
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\newlength{\largeurimage}
\setlength{\largeurimage}{5cm}
\makeatletter
\newlength{\temp@alignevert@length}
\newsavebox{\temp@alignevert@box}
\long\def\alignevert[#1]#2{%
\sbox{\temp@alignevert@box}{#2}%
\ifx#1c%
\setlength{\temp@alignevert@length}{\heightof{\usebox\temp@alignevert@box}/2*(-1)+0.5ex}%
\else\ifx#1t%
\setlength{\temp@alignevert@length}{\heightof{\usebox\temp@alignevert@box}*(-1)}%
\else\ifx#1T%
\setlength{\temp@alignevert@length}{\heightof{\usebox\temp@alignevert@box}*(-1)+\heightof{I}}%
\else\ifx#1b%
\setlength{\temp@alignevert@length}{\depthof{\usebox\temp@alignevert@box}}%
\else\PackageWarning{alignevert}{option #1 unknown, using b instead}%
\setlength{\temp@alignevert@length}{\depthof{\usebox\temp@alignevert@box}}%
\fi\fi\fi\fi
\raisebox{\temp@alignevert@length}{\usebox\temp@alignevert@box}%
}
\newsavebox{\sfe@box}
\newenvironment{alignementvert}[1][c]{%
\ifx#1b\gdef\place{0}\else\ifx#1c\gdef\place{1}\else\ifx#1t\gdef\place{2}\else\ifx#1T\gdef\place{3}\fi\fi\fi\fi%
\setbox\sfe@box\hbox\bgroup\color@setgroup}%
{\color@endgroup\egroup%
\ifcase\place
\alignevert[b]{\usebox{\sfe@box}}%
\or
\alignevert[c]{\usebox{\sfe@box}}%
\or
\alignevert[t]{\usebox{\sfe@box}}%
\or
\alignevert[T]{\usebox{\sfe@box}}%
\fi}
\makeatother
\begin{document}
\setlength{\largeurimage}{4cm}
\begin{alignementvert}[b]
\begin{minipage}{\linewidth-\largeurimage-1cm}
\lipsum[0-1]
\end{minipage}
\end{alignementvert}
\hfill
\begin{alignementvert}[b]
\begin{asy}
size(4cm,0);
draw(unitcircle,purple);
\end{asy}
\end{alignementvert}
\begin{enumerate}
\item
\setlength{\largeurimage}{4cm}
\begin{alignementvert}[T]%
\begin{minipage}{\linewidth-\largeurimage-1cm}
\lipsum[0-1]
\end{minipage}
\end{alignementvert}
\hfill
\begin{alignementvert}[T]
\begin{asy}
size(4cm,0);
draw(polygon(9),orange);
\end{asy}
\end{alignementvert}
\item Cela fonctionne bien, non ?
\end{enumerate}
\end{document}
Index des fonctions Asymptote- Pour consulter ou me demander des exemples : Galerie et AsyForum - Notepad++, l'éditeur qu'il faut pour Asymptote sous Windows - TexWorks+LaTexMk+Asymptote
-
- Sujets similaires
- Réponses
- Vues
- Dernier message