La question doit être récurrent mais je ne trouve pas le réponse sur le
Web. Existe-t-il un moyen de produire du texte verbatim encadré et centré ?
Pour le centrer, j'utilise un environnement {center} autour d'un
{BVerbatim} de fancyvrb. Pour l'encadrer j'utilise {Verbatim} avec
l'option [frame=single], mais la conjonction des deux fait couiner Latex.
Grasshoper
À (at) Fri, 20 Feb 2009 15:20:21 +0100,
Grasshoper <watc...@stars.invalid> nous disait (told us):
ça dépend du texte, mais s'il y en a beaucoup, peut-être jeter un oeil
du côté du package listings pourrait solutionner le problème... (je
sais qu'on peut encadrer et faire du pseudo-verbatim, le problème sera
peut-être pour centrer...
--
Toutefois, j'ai la nette impression d'avoir à écrire plus de texte que
les Wordistes pour mon mémoire, étant donné que LaTeX fait son
possible pour remplir chaque page :)
-+- Lucas in fr.comp.text.tex -+-
Que voulez-vous centrer ? Le texte verbatim (ce qui me semblerait un
peu paradoxal) ou le cadre contenant le texte verbatim ?
> Pour le centrer, j'utilise un environnement {center} autour d'un
> {BVerbatim} de fancyvrb. Pour l'encadrer j'utilise {Verbatim} avec
> l'option [frame=single], mais la conjonction des deux fait couiner
> Latex.
un truc comme ça semble fonctionner :
\documentclass{article}
\usepackage{fancyvrb}
\begin{document}
{\centering\begin{minipage}{0.5\linewidth}
\begin{Verbatim}[frame=single]
Essai
\end{Verbatim}
\end{minipage}\par}
\end{document}
--
Paul Gaborit - <http://perso.mines-albi.fr/~gaborit/>
C'est effectivement le cadre que je souhaite centrer.
>> Pour le centrer, j'utilise un environnement {center} autour d'un
>> {BVerbatim} de fancyvrb. Pour l'encadrer j'utilise {Verbatim} avec
>> l'option [frame=single], mais la conjonction des deux fait couiner
>> Latex.
>
> un truc comme ça semble fonctionner :
>
> \documentclass{article}
> \usepackage{fancyvrb}
> \begin{document}
>
> {\centering\begin{minipage}{0.5\linewidth}
> \begin{Verbatim}[frame=single]
> Essai
> \end{Verbatim}
> \end{minipage}\par}
>
> \end{document}
Merci, en effet cela fonctionne, à ceci près qu'il faut ajuster à la
main la largeur de la boîte à la taille du verbatim.
Merci également à Thomas vO pour sa piste.
Ça semble sensé !
>>> Pour le centrer, j'utilise un environnement {center} autour d'un
>>> {BVerbatim} de fancyvrb. Pour l'encadrer j'utilise {Verbatim} avec
>>> l'option [frame=single], mais la conjonction des deux fait couiner
>>> Latex.
Il me semble que c'est documenté dans la doc de fancyvrb : on ne peux
pas utiliser frame dans les environnements BVerbatim (et apparentés).
>> un truc comme ça semble fonctionner :
>> [couic]
>
> Merci, en effet cela fonctionne, à ceci près qu'il faut ajuster à la
> main la largeur de la boîte à la taille du verbatim.
Oui, c'est embêtant. J'allais dire que tout est écrit dans la
documentation de fancyvrb mais je m'aperçois que la commande que j'ai
l'habitude d'utiliser n'est en fait pas dans la doc (après une
re-re-relecture attentive). C'est super bizarre parce qu'elle est super
utile ! Du coup, je ne me souviens plus trop où j'avais pêché l'idée :-)
Bref, le truc, c'est d'utiliser la commande \VerbatimEnvironment qui
permet à un environnement quelconque d'utiliser des environnements
Verbatim (ou autre de la même famille). Dans mon code, j'ai utilisé
\begin{SaveVerbatim}{toto} et \end{SaveVerbatim}, on peut aussi utiliser
\SaveVerbatim{toto} et \endSaveVerbatim à la place (j'ai essayé). Il y a
peut-être une solution meilleure que l'autre. Techniquement, je ne sais
pas et philosophiquement, je préférerais finalement la solution sans le
\begin{...}-\end{...}.
Ce façon de faire permet donc de se mettre au chaud le contenu
(verbatim) de notre environnement dans la « boîte » verbatim VerbTmp et
ensuite, on fait ce qu'on veut dans la partie terminale de notre
environnement. Ici, j'ai juste fait ce qui était demandé : encadrer,
centrer. Je me suis permis d'ajouter le gobble=2 pour me permettre de
continuer à indenter -- de deux espaces donc -- le code situé à
l'intérieur de mes environnements. Vous adapterez.
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[latin1]{inputenc}
\usepackage[a4paper]{geometry}
\usepackage{lmodern}
\usepackage{fancyvrb}
\usepackage[frenchb]{babel}
\newenvironment{CaFaitTout}
{%
\VerbatimEnvironment
\begin{SaveVerbatim}[gobble=2]{VerbTmp}%
}
{%
\end{SaveVerbatim}%
\begin{center}
\fbox{\BUseVerbatim{VerbTmp}}%
\end{center}
}
\begin{document}
\begin{CaFaitTout}
&$~$
une ligne un peu plus longue
une ligne plus courte
\end{CaFaitTout}
\end{document}
Jean-Côme Charpentier
--
Si vous êtes sous l'oeil de Josselin, je vous conseille plutôt
Tikz. Sinon, il sera noir et lassé (l'oeil... et Josselin aussi si
l'on veut comprendre mon jeu de mot poussif).
-+- Jean-Côme in fr.comp.text.tex -+-
Pour le « tout ce que vous avez tjs voulu savoir sur LaTeX » j'avais
créé un environment pour produire du code LaTeX et le résultat en face
(ça commence à la veuve de la page 42 [en base 44, désolé] de
http://cours.enise.fr/info/latex/telecharger.php?rubrique=LaTeX&fichier=visu)
Et tu noteras que je suis arrivé à la même conclusion : la commande
\VerbatimEnvironment est effectivement non documentée ;-)
Par contre, en te lisant ce soir je me suis souvenu que j'avais trouvé
cette commande dans le code de Denis Girou pour son package fvrb-ex...
--
Vincent
> Pour le « tout ce que vous avez tjs voulu savoir sur LaTeX » j'avais
> créé un environment pour produire du code LaTeX et le résultat en face
> (ça commence à la veuve de la page 42 [en base 44, désolé] de
> http://cours.enise.fr/info/latex/telecharger.php?rubrique=LaTeX&fichier=visu)
>
Je fais aussi ce genre d'environnement pour mon usage : il faudra que je
regarde comment tu fais à l'occasion, ça peut être intéressant de
comparer.
> Et tu noteras que je suis arrivé à la même conclusion : la commande
> \VerbatimEnvironment est effectivement non documentée ;-)
>
Par contre je n'utilise pas \VerbatimEnvironment, faute d'avoir connu à
temps. En faisant bien gaffe à remplacer \begin{truc} par \truc quand il
faut, on s'en sort aussi en fait.
--
Manuel Pégourié-Gonnard Institut de mathématiques de Jussieu
http://weblog.elzevir.fr/ http://people.math.jussieu.fr/~mpg/
J'ai réfléchi depuis et il me semble que c'est la méthode employée
dans le LaTeX Companion pour les exemples. Ces exemples sont tous des
fichiers TeX traités à part et inclus ensuite en tant qu'image eps. La
première phase est donc de construire un fichier (verbatim) qui servira
à afficher le code d'une part et à produire un source qui sera compilé
pour produire le résultat.
Maintenant, comme j'ai utilisé fancy-vrb avant de faire le LaTeX
Companion, il est bien possible que j'ai trouvé le truc au même endroit
que Vincent.
>> Et tu noteras que je suis arrivé à la même conclusion : la commande
>> \VerbatimEnvironment est effectivement non documentée ;-)
>>
> Par contre je n'utilise pas \VerbatimEnvironment, faute d'avoir connu à
> temps. En faisant bien gaffe à remplacer \begin{truc} par \truc quand il
> faut, on s'en sort aussi en fait.
Pas avec les bidules basé sur Verbatim. Ou alors, je n'ai pas compris
de quoi on parle.
Le truc qui permet au bidule de fonctionner, c'est que les
environnements verbatim (je parle de ceux de fancyvrb, pour les autres,
je n'ai pas regardé) initialisent une macro qui indique quel est le
\end{bidule} qui va être le signe de l'arrêt du verbatim. En temps
normal, cette macro est initialisée avec la valeur de l'environnement en
cours, à savoir \@currenvir ou quelque chose d'approchant... j'ai la
flemme de vérifier :-) Ça, c'est en temps normal. En fait, les
environnements regardent d'abord si cette macro est équivalente à \relax
ou non. Si ce n'est pas \relax, elles font l'initialisation, sinon,
elles ne font rien.
La macro \VerbatimEnvironment fait justement cette initialisation. Du
coup, lorsque le code rencontre \Verbatim, ou \begin{Verbatim}, ou
\SaveVerbatim, ou \begin{SaveVerbatim} ou... la fin du mode verbatim
sera toujours basée sur la rencontre d'un \end{CaFaitTout} et non sur la
rencontre d'un \end{Verbatim}, ou d'un \end{SaveVerbatim} ou...
Jean-Côme Charpentier
--
C'est fou tout ce qui peut se cacher sous une bête formule hein ?
Une vraie boîte de Pandore...
-+- Sébastien in fr.comp.text.tex -+-
>> Par contre je n'utilise pas \VerbatimEnvironment, faute d'avoir connu à
>> temps. En faisant bien gaffe à remplacer \begin{truc} par \truc quand il
>> faut, on s'en sort aussi en fait.
>
> Pas avec les bidules basé sur Verbatim. Ou alors, je n'ai pas compris
> de quoi on parle.
Si, avec Verbatim, code à l'appui si tu y tiens.
> Le truc qui permet au bidule de fonctionner, c'est que les
> environnements verbatim (je parle de ceux de fancyvrb, pour les autres,
> je n'ai pas regardé) initialisent une macro qui indique quel est le
> \end{bidule} qui va être le signe de l'arrêt du verbatim. En temps
> normal, cette macro est initialisée avec la valeur de l'environnement en
> cours, à savoir \@currenvir ou quelque chose d'approchant... j'ai la
> flemme de vérifier :-) Ça, c'est en temps normal.
Et c'est pour ça qu'on peut s'en tirer en faisant gaffe que \@currenvir
ait la bonne valeur. C'est une des différences essentielles entre \truc
et \begin{truc} : le deuxième change \@currenvir, pas le premier.
Exemple à deux sous :
\newenvironment{htcode}{%
\center \BVerbatim
}{%
\endBVerbatim \endcenter}
Bof, un remettage de point sur les i suffit en fait !
>> Le truc qui permet au bidule de fonctionner, c'est que les
>> environnements verbatim (je parle de ceux de fancyvrb, pour les autres,
>> je n'ai pas regardé) initialisent une macro qui indique quel est le
>> \end{bidule} qui va être le signe de l'arrêt du verbatim. En temps
>> normal, cette macro est initialisée avec la valeur de l'environnement en
>> cours, à savoir \@currenvir ou quelque chose d'approchant... j'ai la
>> flemme de vérifier :-) Ça, c'est en temps normal.
>
> Et c'est pour ça qu'on peut s'en tirer en faisant gaffe que \@currenvir
> ait la bonne valeur. C'est une des différences essentielles entre \truc
> et \begin{truc} : le deuxième change \@currenvir, pas le premier.
Ben oui. Tout connement ! Du coup, la macro \VerbatimEnvironment
manque tout à coup d'intérêt puisque j'ai dit que je préférais la
solution sans les \begin à l'intérieur d'une déclaration
d'environnement... et c'est peut-être aussi pour cela qu'elle n'est pas
documentée.
D'un autre côté, elle s'appelle \VerbatimEnvironment et non
\FV@VerbatimEnvironment, c'est donc qu'elle est à priori publique. M'en
vais remuer tout cet aspect philosophique.
Jean-Côme Charpentier
--
s'il faut un béta-lecteur de chez bas-niveau pour savoir si le message
peut passer assez bas, ch'uis présent. Faudra juste prévoir un
mécanisme robuste de sortie de boucle. ;-)
-+- Phil in fr.comp.text.tex -+-