Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

mode c++ dans mode latex

5 réponses
Avatar
Guillaume Connan
Bonjour,

dans un fichier tex (en mode latex donc), l'environnement VerbatimOut
permet de créer des fichiers extérieurs avec n'importe quelle extension.

Par exemple

8<------8<------8<------8<------8<------8<------8<------8<------8<------


\documentclass[12pt]{article}
\usepackage{fancyvrb}
\usepackage[T1]{fontenc}
\usepackage[french]{babel}

\begin{document}

Bon, là j'écris en mode latex et j'aimerais que dans l'environnement
suivant, ça soit en mode c++

\begin{VerbatimOut}{ScriptC.cxx}
S:=0;
for(k:=1;k<10;k++){S:=S+k};
\end{VerbatimOut}


Et puis que là ça revienne en mode latex

\end{document}

8<------8<------8<------8<------8<------8<------8<------8<------8<------


Comme VerbatimOut est de la famille verbatim, le code est tout rouge.
Mais quand on a un long listing, ça peut être pénible à lire.
Bref, peut-on avoir un "sous-mode" c++ dans le mode latex ?
C'est utile aussi dans des scripts asy à l'intérieur d'un script latex.

--
Guillaume CONNAN

http://gconnan.free.fr

5 réponses

Avatar
Paul Gaborit
À (at) Mon, 02 Jun 2008 09:54:02 +0200,
Guillaume Connan écrivait (wrote):
dans un fichier tex (en mode latex donc), l'environnement VerbatimOut
permet de créer des fichiers extérieurs avec n'importe quelle extension.

Par exemple

8<------8<------8<------8<------8<------8<------8<------8<------8<------


documentclass[12pt]{article}
usepackage{fancyvrb}
usepackage[T1]{fontenc}
usepackage[french]{babel}

begin{document}

Bon, là j'écris en mode latex et j'aimerais que dans l'environnement
suivant, ça soit en mode c++

begin{VerbatimOut}{ScriptC.cxx}
S:=0;
for(k:=1;k<10;k++){S:=S+k};
end{VerbatimOut}


Et puis que là ça revienne en mode latex

end{document}

8<------8<------8<------8<------8<------8<------8<------8<------8<------


Comme VerbatimOut est de la famille verbatim, le code est tout rouge.
Mais quand on a un long listing, ça peut être pénible à lire.
Bref, peut-on avoir un "sous-mode" c++ dans le mode latex ?
C'est utile aussi dans des scripts asy à l'intérieur d'un script latex.



(Je ne savais qu'on pouvait utiliser ':=' en C++... C'est quelle
version de la norme C++ ?)

Dans ce genre de cas, je préfère utiliser un fichier externe que je
crée moi-même (ça me permet de de l'éditer normalement avec (X)emacs
et de l'utiliser vraiment pour être sûr qu'il est correct). Et pour
l'intégrer dans mon document LaTeX, je fais appel à 'lstinputlisting'
du package LaTeX 'listings'.

Sinon, il faudrait regarder du côté de mmm-mode.el (Multiple Major
Modes) qui date un peu mais fonctionne parfaitement bien pour l'usage
que j'en ai (dans 'csound-x').

--
Paul Gaborit - <http://perso.enstimac.fr/~gaborit/>
Avatar
Ph. Ivaldi
Bonjour,

Le 02 juin 2008, Guillaume Connan écrivit :

Comme VerbatimOut est de la famille verbatim, le code est tout rouge.
Mais quand on a un long listing, ça peut être pénible à lire.
Bref, peut-on avoir un "sous-mode" c++ dans le mode latex ?
C'est utile aussi dans des scripts asy à l'intérieur d'un script
latex.



Justement asy-mode permet de basculer automatiquement de asy-mode à
LaTeX-mode; tu peux donc t'inspirer de asy-mode.el mais je te préviens
tout de suite, c'est loin d'être simple (coloration syntaxique quand il
y a un " dans le code LaTeX qui précède ton VerbatimOut, par
exemple).

NB: asy-mode utilise two-mode-mode:
http://www.welton.it/freesoftware/files/two-mode-mode.el
--
Philippe Ivaldi.
http://piprim.tuxfamily.org/
Avatar
Guillaume Connan
Le 2 juin 2008 à 17:06, Ph. Ivaldi a formulé dans un style qui lui est
propre l'idée suivante :


Justement asy-mode permet de basculer automatiquement de asy-mode à
LaTeX-mode; tu peux donc t'inspirer de asy-mode.el mais je te préviens
tout de suite, c'est loin d'être simple



Bon, ya plus qu'à... ou tant pis : j'édite dans un autre buffer sur mon
écran large. C-X 3 m'a l'air plus simple ...

Merci

--
Guillaume CONNAN

http://gconnan.free.fr
Avatar
Guillaume Connan
Le 2 juin 2008 à 14:06, Paul Gaborit vraute ze foloving massage :


(Je ne savais qu'on pouvait utiliser ':=' en C++... C'est quelle
version de la norme C++ ?)



En fait, ce n'est pas du c++, c'est du "xcas" dont la syntaxe est
dérivée du c++...

--
Guillaume CONNAN

http://gconnan.free.fr
Avatar
Vincent Belaïche
Si j'avais le même problème je me ferais une petite commande qui permet
de basculer tout le buffer de latex mode à c mode et vice versa, juste
pour baculer en c mode quand je veux lire ce qui entre begin/end VerbatimOut

Par exemple un truc du genre (pas testé, ça prendrait effet en tapant F10) :

(global-set-key
[f10]
(lambda () (interactive)
(cond
( (derived-mode-p 'c-mode) (latex-mode))
( (derived-mode-p 'latex-mode) (c-mode))
)
)
)

A+,
Vincent.

Guillaume Connan a écrit :
Le 2 juin 2008 à 17:06, Ph. Ivaldi a formulé dans un style qui lui est
propre l'idée suivante :


Justement asy-mode permet de basculer automatiquement de asy-mode à
LaTeX-mode; tu peux donc t'inspirer de asy-mode.el mais je te préviens
tout de suite, c'est loin d'être simple



Bon, ya plus qu'à... ou tant pis : j'édite dans un autre buffer sur mon
écran large. C-X 3 m'a l'air plus simple ...

Merci