Afficher un code Latex et son rendu côte à côte

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.

Afficher un code Latex et son rendu côte à côte

Messagepar projetmbc » Samedi 08 Janvier 2011, 19:17

Bonjour,
quelqu'un aurait-il une environnement qui afficherait d'un côté une code LaTeX et à côté son rendu ? Un environnement affichant le code LaTeX suivi de son rendu m'irait aussi.

Ceci va me permettre de faire des tests pour mon programme Python donc le rendu n'a pas à être nickel.
projetmbc
Péta-utilisateur
 
Messages: 1895
Inscription: Samedi 29 Décembre 2007, 00:58
Statut actuel: Actif et salarié | Enseignant

Publicité

Re: Afficher un code Latex et son rendu côte à côte

Messagepar pg » Samedi 08 Janvier 2011, 19:23

Tu as le package showexpl qui est fait pour cela. Voir le fichier d'exemple sur CTAN pour comment s'en servir.
pg
Modérateur
 
Messages: 2588
Inscription: Jeudi 14 Juin 2007, 23:31

Re: Afficher un code Latex et son rendu côte à côte

Messagepar projetmbc » Samedi 08 Janvier 2011, 19:29

Merci.

"J'm'en" vais de ce pas "zieuter" cela.
projetmbc
Péta-utilisateur
 
Messages: 1895
Inscription: Samedi 29 Décembre 2007, 00:58
Statut actuel: Actif et salarié | Enseignant

Re: Afficher un code Latex et son rendu côte à côte

Messagepar Francky » Samedi 08 Janvier 2011, 19:41

EDIT : grillé par pg qui a surement la meilleure réponse. :wink:

J'utilise le package listings
Code: Tout sélectionner
\usepackage{listings}
\lstset{extendedchars=true,
literate={é}{{\'e}}1 {è}{{\`e}}1 {à}{{\`a}}1 {ç}{{\c{c}}}1 {œ}{{\oe}}1 {ù}{{\`u}}1
{É}{{\'E}}1 {È}{{\`E}}1 {À}{{\`A}}1 {Ç}{{\c{C}}}1 {Œ}{{\OE}}1 {Ê}{{\^E}}1
{ê}{{\^e}}1 {î}{{\^i}}1 {ô}{{\^o}}1 {û}{{\^u}}1 }
%pour les listings sans soucis d'accents (il en reste encore un peu)
%

Ceci me permet d'avoir des accents dans le code $LaTeX$,
mais je ne comprends pas extendedchars=true, c'est peut-être pour
ceux qui ne font pas d'inputenc ?????

Ensuite, pour $\LaTeX$, je rajoute :
Code: Tout sélectionner
\definecolor{my-gray}{gray}{0.95}


\lstset{%
language=[LaTeX]TeX,
basicstyle=\ttfamily, 
       % the size of the fonts that are used for the code
numbers=left,
               % where to put the line-numbers
numberstyle=\footnotesize,
  % the size of the fonts that are used for the line-numbers
stepnumber=1, 
   % the step between two line-numbers. If it's 1 each line
                                % will be numbered
numbersep=5pt,
                 % how far the line-numbers are from the code
backgroundcolor=\color{my-gray},
      % choose the background color. You must add \usepackage{color}
showspaces=false,
               % show spaces adding particular underscores
showstringspaces=false,
        % underline spaces within strings
showtabs=false,   
              % show tabs within strings adding particular underscores
frame=single,    
              % adds a frame around the code
tabsize=2,    
              % sets default tabsize to 2 spaces
captionpos=b,   
              % sets the caption-position to bottom
breaklines=true,
               % sets automatic line breaking
breakatwhitespace=false,   
    % sets if automatic breaks should only happen at whitespace
title=\lstname,   
             % show the filename of files included with \lstinputlisting;
                                % also try caption instead of title
escapeinside={*!}{!*},   
     % if you want to add a comment within your code
%morekeywords={???}            % if you want to add more keywords to the set
framexleftmargin=5mm, frame=shadowbox, rulesepcolor=\color{SkyBlue},
commentstyle=\color{link}\small,
emphstyle=\color{blue},
keywordstyle=\ttfamily\bfseries\color{red},
moredelim=*[s][\color{purple}]{"}{"},
moredelim=**[s][\color{OliveGreen}]{{$}{$}}
}% à compléter au besoin
%
%

il faut le package xcolor pour la couleur, évidement.
C'est beaucoup de bricoles, ça doit pouvoir se peaufiner à l'aise,
mais j'ai quand même lu avec mon bad english la doc de listings plusieurs fois.

J'ai bricolé un truc récemment, pour avoir la coloration syntaxique en vert olive des maths, même dans une "string",
utile pour le code asymptote !!!!

Ensuite, il faudrait savoir si tu disposes de ton bout de code dans un fichier annexe,
j'ai testé ça hier avec du code asy, et ça passe.
Code: Tout sélectionner
\newcommand{\codeasy}[2]{%
\lstinputlisting[firstline=5,caption={#2}, label={#1}]{./Images/#1.asy}%
}

\newcommand{\exasy}[3][0.5]{%
\begin{minipage}[h]{#1\textwidth}
\codeasy{#2}{#3}
%\lstinputlisting[firstline=5,caption={#3}, label={#2}]{./Images/#2.asy}
\end{minipage}
\hfill
\begin{minipage}{0.98\textwidth - #1\textwidth}
\centering
\includegraphics{#2}
\end{minipage}
}

Je pense qu'on peut le modifier pour une version latex,
Code: Tout sélectionner
\newcommand{\codelatex}[2]{%
\lstinputlisting[firstline=1,caption={#2}, label={#1}]{./RepCodeLatex/#1.tex}%
}

\newcommand{\exlatex}[3][0.5]{%
\begin{minipage}[h]{#1\textwidth}
\codelatex{#2}{#3}
\end{minipage}
\hfill
\begin{minipage}{0.98\textwidth - #1\textwidth}
\input{#2}
\end{minipage}
}

À tester, mais j'ai peur du comportement d'input (changement de page ?)
Utilisation :
Code: Tout sélectionner
\exlatex{nomfich}{titre plus long} % 50% 50%

\exlatex[0.3]{nomfich}{titre plus long} % 30% 70% environ

Il faut le package calc pour faire la soustraction (mais je veux bien une solution sans calc, au cas où)

Voilà, si ça peut t'aider.
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: Afficher un code Latex et son rendu côte à côte

Messagepar projetmbc » Samedi 08 Janvier 2011, 19:44

francky, aurais-tu un ECM clé en main à poster ici, ce serait sympa ?

Pour le package proposé par pg, voici un petit exemple trouvé sur le net :
Code: Tout sélectionner
% Source : http://tex.stackexchange.com/questions/6337/showexpl-ltxexample-and-references-inside-enumerate

\documentclass{article}
   \usepackage{showexpl}

\begin{document}
   \let\orilabel\label
   \begin{LTXexample}[frame=none,preset=\let\label\orilabel]
\begin{enumerate}
    \item No need to manually number items here!
    \item\label{second} Number two added automatically
    \item Third item
\end{enumerate}
And here is a reference to item number \ref{second}
   \end{LTXexample}
\end{document}
projetmbc
Péta-utilisateur
 
Messages: 1895
Inscription: Samedi 29 Décembre 2007, 00:58
Statut actuel: Actif et salarié | Enseignant

Re: Afficher un code Latex et son rendu côte à côte

Messagepar Francky » Samedi 08 Janvier 2011, 20:15

OK, ça marche, et en couleur,
ça vous plait ?
test.zip
les sources complètes
(42.16 Kio) Téléchargé 78 fois
testeur.pdf
Le résultat
(33.41 Kio) Téléchargé 141 fois
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: Afficher un code Latex et son rendu côte à côte

Messagepar projetmbc » Dimanche 09 Janvier 2011, 14:04

Bon je trouve ceci très joli. J'aime bien l'effet d'ombre.

Ta solution pour les accents est très intéressante.
projetmbc
Péta-utilisateur
 
Messages: 1895
Inscription: Samedi 29 Décembre 2007, 00:58
Statut actuel: Actif et salarié | Enseignant

Re: Afficher un code Latex et son rendu côte à côte

Messagepar un bon petit » Dimanche 09 Janvier 2011, 15:18

projetmbc a écrit:Bon je trouve ceci très joli. J'aime bien l'effet d'ombre.

Au contraire, j'adore la sobriété donc exit couleurs, effet de bordures, surlignage en fluo et tutti quanti.

Ma solution risque donc de ne pas plaire. C'est une légère adaptation de celle qu'on trouve dans le code de la doc de chemfig :
Code: Tout sélectionner
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{fancybox}
\usepackage{xcolor}
\usepackage{geometry}
\usepackage{boites}

\makeatletter
\newcommand\make@car@active[2]{%
   \catcode`#1\active
   \begingroup
      \lccode`\~`#1\relax
      \lowercase{\endgroup\def~{#2}}}

\newif\if@exstar
\newif\if@shownumline
\newcount\code@line
\newcommand\shownumline{\@shownumlinetrue}
\newcommand\hidenumline{\@shownumlinefalse}
\hidenumline

\newcommand\showcode{%
   \begingroup
   \parskip\z@\parindent\z@
   \code@line\z@
   \@makeother\;\@makeother\!\@makeother\?\@makeother\:
   \@ifstar{\@exstartrue\showcode@}{\@exstarfalse\showcode@}}

\newcommand\showcode@[2][65]{%
   \medbreak\noindent
   \begingroup
      \let\do\@makeother\dospecials
      \make@car@active\ { {}}%
      \make@car@active\^^M{\par\leavevmode}%
      \make@car@active\,{\leavevmode\kern\z@\string,}%
      \make@car@active\-{\leavevmode\kern\z@\string-}%
      \showcode@@{#1}{#2}}

\newcommand\showcode@@[3]{%
   \def\@tempa##1#3{\showcode@@@{#1}{#2}{##1}}%
   \@tempa}

\newcommand\showcode@@@[3]{%
   \xdef\the@code{#3}%
   \endgroup
   \if@exstar
      \begingroup
         \fboxrule0.4pt
         \let\breakboxparindent\z@
         \def\bkvz@bottom{\hrule\@height\fboxrule}%
         \let\bkvz@before@breakbox\relax
         \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\bkvz@bottom\hfill
            \fboxsep\z@
            \colorbox{black}{\kern0.25em\bfseries\color{white}\footnotesize\lower0.5ex\hbox{\strut#2}\kern0.25em}%
            \leaders\bkvz@bottom\hfill
            \vrule\@width\fboxrule\@height\fboxrule}}%
         \breakbox
            \kern.5ex\relax
            \ttfamily\footnotesize
            \begingroup
            \if@shownumline\everypar{\num@code}\fi
            \the@code\par
            \endgroup
            \normalfont
            \kern3pt
            \hrule height0.1pt width\linewidth depth0.1pt
            \vskip5pt
            \rightskip0pt plus 1fill
            \newlinechar`\^^M\everyeof{\noexpand}\scantokens{#3}\par
         \endbreakbox
      \endgroup
   \else
      \vskip0.5ex
      \boxput*(0,1)
         {\fboxsep\z@
         \hbox{\colorbox{black}{\leavevmode\kern0.25em{\bfseries\color{white}\footnotesize\strut#2}\kern0.25em}}%
         }%
         {\fboxsep5pt
         \fbox{%
            $\vcenter{\hsize\dimexpr0.#1\linewidth-\fboxsep-\fboxrule\relax
               \kern5pt\parskip0pt \ttfamily\footnotesize
               \begingroup
                  \if@shownumline\everypar{\num@code}\fi
                  \the@code\par
               \endgroup}%
            \vcenter{\kern5pt\hsize\dimexpr\linewidth-0.#1\linewidth-\fboxsep-\fboxrule\relax
               \footnotesize\newlinechar`\^^M\everyeof{\noexpand}\scantokens{#3}}$%
            }%
         }%
   \fi
   \medbreak
   \endgroup}

\newcommand\num@code{\hb@xt@4pt{\hss\global\advance\code@line\@ne\tiny\number\code@line}\kern3.5pt }
\makeatother

\usepackage[frenchb]{babel}
\begin{document}
Début du texte
\showcode{Un exemple par défaut}|Dans cet exemple, le partage entre
code et résultat se fait par défaut à 65\% de
la largeur du cadre qui est \verb-\linewidth-.

On peut définir des macros
\def\truc#1{Bonjour #1}% et mettre des commentaires
et les utiliser ensuite :

\truc{le monde} et \truc{toi}.|

\showcode[55]{Un exemple par défaut}|Dans cet exemple, le partage entre
code et résultat se fait à 55\% de
la largeur du cadre qui est \verb-\linewidth-.|

\showcode*{Un exemple étoilé par défaut}|Dans cet exemple où la macro \verb-\showcode- est étoilée, le partage entre code et résultat
se fait \textbf{verticalement}. En procédant de cette façon, le cadre peut passer les
coupures de pages.|

\shownumline
\showcode{Un exemple avec numéro de lignes}/En écrivant la macro \verb-\shownumline-,
les numéros de ligne apparaissent à gauche
du code. Pour revenir au comprtement par
défaut, il faut écrire \verb-\hidenumline-/
Suite du texte
\end{document}
un bon petit
Giga-utilisateur
 
Messages: 640
Inscription: Vendredi 12 Juin 2009, 21:35
Localisation: Chambéry
Statut actuel: Actif et salarié | Enseignant

Re: Afficher un code Latex et son rendu côte à côte

Messagepar Francky » Dimanche 09 Janvier 2011, 15:44

La solution avec listings a surement pleins de défaut, mais
- on peut customiser les couleurs, de sobre à flashi à souhait. (Cadre, fond, ombre, ...)
- on peut numéroter ou non les lignes, et customizer les n°
- on dispose de coloration syntaxique séparée pour les mot-clés, si on en veut ...
- on peut se bricoler des délimiteurs (inclus dans d'autres !!!) <- plus dur
- on peut ajouter ou enlever des mot-clés
- on peut avec emph={nouveau, autre}, emphstyle={ \"fluo clignotant" } (humour)
mettre en avant localement un mot nouveau, ou d'autres, avec un style sobre ou non
- Les commentaires peuvent être mis en style distincts aussi (plus petits, autre couleur ...)
- Le principe est le même pour d'autres langages : latex, python, asymptote, ce que vous voulez ...
C'est donc une solution "renouvelable", adaptable
- on peut, avec escapeinside, exécuter du code latex dans le listing, ça peut servir ...
- listings semble bien maintenu.

--
Les défauts que je ressens
il faut bricoler pour n'avoir aucuns soucis d'accents, plus haut, il y a l'essentiel de prêt.

--
Merci à albenic qui m'a montré l'astuce de literate, pour les accents
http://forum.mathematex.net/latex-f6/probleme-avec-listings-dans-une-commande-t12167.html#p117450
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: Afficher un code Latex et son rendu côte à côte

Messagepar un bon petit » Dimanche 09 Janvier 2011, 15:59

Je crois que tu as vraiment mal compris. Je n'ai jamais dit que ma solution concurrençait celle avec listings.

Tu as beau jeu d'avancer toutes les possibilités de listings face à ma solution, très basique certes, mais au moins, c'est la mienne que j'ai codé avec mes petits doigts et j'ai compris ce qu'elle faisait. Alors oui, tu as gagné, listings est bien plus puissant. Ceci dit, je le savais déjà et je ne comptais pas me comparer à un package ultra lourd et très élaboré. N'oublie pas que ma solution ne compte que quelques lignes...

Voilà, je m'incline :cry:
un bon petit
Giga-utilisateur
 
Messages: 640
Inscription: Vendredi 12 Juin 2009, 21:35
Localisation: Chambéry
Statut actuel: Actif et salarié | Enseignant

Re: Afficher un code Latex et son rendu côte à côte

Messagepar Francky » Dimanche 09 Janvier 2011, 16:10

Arrête, c'est pas une compète, et c'est moi qui m'incline car je suis incapable de comprendre TeX (aujourd'hui et pour longtemps encore)

Si ça t'ennuie pas, je sèche sur les a, c et b qui marche, tu sais quoi ...
Et mon £ ou § c'est jouable ou pas ? Sinon, un autre caractère me convient, mais pas | ni @, ni # , trop "fréquents"

Merci
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: Afficher un code Latex et son rendu côte à côte

Messagepar un bon petit » Dimanche 09 Janvier 2011, 16:17

Francky a écrit:Si ça t'ennuie pas, je sèche sur les a, c et b qui marche, tu sais quoi ...

Si un caractère est actif, on ne peut pas s'en servir pour écrire le nom d'une commande.
Et mon £ ou § c'est jouable ou pas ? Sinon, un autre caractère me convient, mais pas | ni @, ni # , trop "fréquents"

Tu as un problème avec la fréquence des caractères toi ! Pourquoi ne pas prendre @ ou & ??? Je me le demande toujours...

Oui, c'est jouable, mais pas tout de suite, je travaille. Au plus, si tu veux vraiment vraiment un caractère utf8, je te laisse chercher du côté de \DeclareUnicodeCharacter
un bon petit
Giga-utilisateur
 
Messages: 640
Inscription: Vendredi 12 Juin 2009, 21:35
Localisation: Chambéry
Statut actuel: Actif et salarié | Enseignant

Re: Afficher un code Latex et son rendu côte à côte

Messagepar un bon petit » Dimanche 09 Janvier 2011, 16:56

Francky a écrit:Et mon £ ou § c'est jouable ou pas ?


Voilà le code légèrement modifié pour que la "£" disparaissent à l'intérieur de l'environnement "nullchar". Je n'ai pas testé ce qui se passe avec ton listings d'amour puisque je ne comprends pas exactement ce que tu fais ni ce que tu cherches...

Code: Tout sélectionner
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\newenvironment{nullchar}{%
   \expandafter\let\csname u8\string:\string^^c2\string^^a3\expandafter\endcsname
   \csname @empty\endcsname}\relax
\begin{document}
Voici une belle livre : £

\begin{nullchar}
   Et elle £disp£a£££rait£££.
\end{nullchar}

Puis ellle redevient comme avant : £
\end{document}
un bon petit
Giga-utilisateur
 
Messages: 640
Inscription: Vendredi 12 Juin 2009, 21:35
Localisation: Chambéry
Statut actuel: Actif et salarié | Enseignant

Re: Afficher un code Latex et son rendu côte à côte

Messagepar projetmbc » Dimanche 09 Janvier 2011, 17:56

Merci pour ton code qui est effectivement plus sobre.

un bon petit a écrit:Tu as un problème avec la fréquence des caractères toi ! Pourquoi ne pas prendre @ ou & ??? Je me le demande toujours...

& est utilisé pour les tests logiques dans pas mal de langages de programmation, quant à @ il peut apparaître sur un bout de code traitant de mails par exemple, ou tout simple dans les lignes de code TeX ou LaTeX.

Pour ce qui est de la couleur, j'apprécie beaucoup cela car cela améliore la lisibilité du code. Après il faut arriver à trouver une juste milieu.
Dernière édition par projetmbc le Dimanche 09 Janvier 2011, 17:58, édité 1 fois.
projetmbc
Péta-utilisateur
 
Messages: 1895
Inscription: Samedi 29 Décembre 2007, 00:58
Statut actuel: Actif et salarié | Enseignant

Re: Afficher un code Latex et son rendu côte à côte

Messagepar projetmbc » Dimanche 09 Janvier 2011, 17:57

Francky a écrit:Merci à albenic qui m'a montré l'astuce de literate, pour les accents
http://forum.mathematex.net/latex-f6/probleme-avec-listings-dans-une-commande-t12167.html#p117450

On peut aussi passer par une compilation XeLaTeX.
projetmbc
Péta-utilisateur
 
Messages: 1895
Inscription: Samedi 29 Décembre 2007, 00:58
Statut actuel: Actif et salarié | Enseignant

Re: Afficher un code Latex et son rendu côte à côte

Messagepar projetmbc » Dimanche 09 Janvier 2011, 18:07

Le partage vertical du code et de son rendu d'un bon petit est très pratique.

Deux questions à francky :
  1. Le partage vertical du code et de son rendu te parait-il possible avec ta solution ?
  2. Peut-on taper directement le code dans le code LaTeX avec ta solution ?
projetmbc
Péta-utilisateur
 
Messages: 1895
Inscription: Samedi 29 Décembre 2007, 00:58
Statut actuel: Actif et salarié | Enseignant

Re: Afficher un code Latex et son rendu côte à côte

Messagepar un bon petit » Dimanche 09 Janvier 2011, 18:08

projetmbc a écrit:& est utilisé pour les tests logiques dans pas mal de langages de programmation, quant à @ il peut apparaître sur un bout de code traitant de mails par exemple, ou tout simple dans les lignes de code TeX ou LaTeX.

Je sais tout cela. Je peux même te dire que "&" sert aussi en TeX et LaTeX ! Il va bien se trouver un cas où "£" est utilisé dans un langage. Que faire alors ?

C'est bien pour cette raison que je proposais un environnement où l'on peut choisir le caractère à ignorer. Je trouvais ça pas mal mais bon, ça n'a pas été jugé satisfaisant...
un bon petit
Giga-utilisateur
 
Messages: 640
Inscription: Vendredi 12 Juin 2009, 21:35
Localisation: Chambéry
Statut actuel: Actif et salarié | Enseignant

Re: Afficher un code Latex et son rendu côte à côte

Messagepar projetmbc » Dimanche 09 Janvier 2011, 18:13

un bon petit a écrit:
projetmbc a écrit:& est utilisé pour les tests logiques dans pas mal de langages de programmation, quant à @ il peut apparaître sur un bout de code traitant de mails par exemple, ou tout simple dans les lignes de code TeX ou LaTeX.

Je sais tout cela. Je peux même te dire que "&" sert aussi en TeX et LaTeX ! Il va bien se trouver un cas où "£" est utilisé dans un langage. Que faire alors ?

C'est pour cela que je pensais utiliser le caractère ⠿ de code unicode 283F.
projetmbc
Péta-utilisateur
 
Messages: 1895
Inscription: Samedi 29 Décembre 2007, 00:58
Statut actuel: Actif et salarié | Enseignant

Re: Afficher un code Latex et son rendu côte à côte

Messagepar Francky » Dimanche 09 Janvier 2011, 19:25

1]
Francky a écrit:Utilisation :
Code: Tout sélectionner
\exlatex{nomfich}{titre plus long} % 50% 50%

\exlatex[0.3]{nomfich}{titre plus long} % 30% 70% environ

Il faut le package calc pour faire la soustraction (mais je veux bien une solution sans calc, au cas où)

Voilà, si ça peut t'aider.

Le principe n'a pas changé, est-ce bien un partage vertical variable que tu voulais ?
Il y est depuis le depuis le début, 50% par défaut, puis en option
0.3 donne environ 30%++ et 70%--
Je dis environ par ce qu'il y a une marge au milieu (que tu peux régler en bidouillant) qui fausse le coup.

EDIT : je pense qu'avec partage vertical, tu voulais dire l'un au dessus de l'autre, pour pouvoir franchir une page,
oui ça doit être jouable, à toi de faire ton organisation : deux minipage, ou l'un puis l'autre, voir plus bas.

2] Si tu fais du python (c'est le cas je sais), tu peux te créer une macro qui :
en entrée prend une section de code latex, notons la £atex (oh le salo, il utilise pound), et un ratio de partage, notons le ®
en sortie te crache du code LaTeX qui t'affiche le code et à côté le rendu.

ta fonction doit sortir:
Code: Tout sélectionner
\begin{minipage}[h]{®\textwidth}
\begin{lstlisting}
£atex
\end{lstlisting}
\end{minipage}
\hfill
\begin{minipage}{0.85\textwidth - ®\textwidth}
\begin{nullchar}
£atex
\end{nullchar}
\end{minipage}

où nullchar est l'environnement de un bon petit, (inutile pour toi avec ton caractère braille, mais utile pour moi et mon §)
on peut se débrouiller pour que le caractère d'échappement soit un paramètre de nullchar. (comme ®, £ ou §)

À toi de jouer, mais si tu avais regardé le code, tu l'aurais vu depuis le début.

EDIT : et pour l'un au dessus de l'autre, au lieu des minipage, tu fais l'un puis l'autre.
listing accepte les sauts de pages, donc ...
Dernière édition par Francky le Dimanche 09 Janvier 2011, 19:53, édité 1 fois.
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: Afficher un code Latex et son rendu côte à côte

Messagepar Francky » Dimanche 09 Janvier 2011, 19:44

Code: Tout sélectionner
\documentclass[10pt, a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{kpfonts}
\usepackage[scaled]{beramono}% mécane avec du gras
\usepackage[frenchb]{babel}
\usepackage[usenames,dvipsnames]{xcolor}%pour de la couleur
\definecolor{link}{RGB}{150, 81, 0}
\usepackage{listings}
\lstset{extendedchars=true,
literate={é}{{\'e}}1 {è}{{\`e}}1 {à}{{\`a}}1 {ç}{{\c{c}}}1 {œ}{{\oe}}1 {ù}{{\`u}}1
{É}{{\'E}}1 {È}{{\`E}}1 {À}{{\`A}}1 {Ç}{{\c{C}}}1 {Œ}{{\OE}}1 {Ê}{{\^E}}1
{ê}{{\^e}}1 {î}{{\^i}}1 {ô}{{\^o}}1 {û}{{\^u}}1 {§}{{\S}}1 }
%pour les listings sans soucis d'accents (il en reste encore un peu)
%
\definecolor{my-gray}{gray}{1}
%
\lstset{%
language=[LaTeX]TeX,
basicstyle=\ttfamily, 
       % the size of the fonts that are used for the code
numbers=left,
               % where to put the line-numbers
numberstyle=\footnotesize,
  % the size of the fonts that are used for the line-numbers
stepnumber=1, 
   % the step between two line-numbers. If it's 1 each line
                                % will be numbered
numbersep=5pt,
                 % how far the line-numbers are from the code
backgroundcolor=\color{my-gray},
      % choose the background color. You must add \usepackage{color}
showspaces=false,
               % show spaces adding particular underscores
showstringspaces=false,
        % underline spaces within strings
showtabs=false,   
              % show tabs within strings adding particular underscores
frame=single,    
              % adds a frame around the code
tabsize=2,    
              % sets default tabsize to 2 spaces
captionpos=b,   
              % sets the caption-position to bottom
breaklines=true,
               % sets automatic line breaking
breakatwhitespace=false,   
    % sets if automatic breaks should only happen at whitespace
title=\lstname,   
             % show the filename of files included with \lstinputlisting;
                                % also try caption instead of title
     % if you want to add a comment within your code
%morekeywords={???}            % if you want to add more keywords to the set
framexleftmargin=5mm, frame=shadowbox, rulesepcolor=\color{SkyBlue},
commentstyle=\color{link}\small,
emphstyle=\color{blue},
keywordstyle=\ttfamily\bfseries\color{red},
moredelim=*[s][\color{purple}]{"}{"},
moredelim=**[s][\color{OliveGreen}]{{$}{$}},
escapeinside={§}{§}
}% à compléter au besoin
%
\renewcommand*{\lstlistlistingname}{Codes sources \LaTeX}
\renewcommand*{\lstlistingname}{Code source}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\newenvironment{nullpar}{%
   \expandafter\let\csname u8\string:\string^^c2\string^^a7\expandafter\endcsname
   \csname @empty\endcsname}\relax%
\newcommand{\codelatex}[2]{%
\lstinputlisting[firstline=1,caption={#2}, label={#1}]{./codelatex/#1.tex}%
}

\newcommand{\exlatex}[3][0.5]{%
\medskip
\begin{minipage}[h]{#1\textwidth}
\codelatex{#2}{#3}
\end{minipage}
\hfill
\begin{minipage}{0.85\textwidth - #1\textwidth}
\begin{nullpar}
\input{./codelatex/#2}
§Bon alors ?
\end{nullpar}
§Hi§Hi§
\end{minipage}
}
\usepackage{lipsum}
\usepackage{calc}
\begin{document}
\lipsum[1]
\lstset{emph={itemize}, emphstyle=\colorbox{yellow}}
\exlatex{test01}{Une liste colorée}

Grâce à :

\verb!\lstset{emph={itemize}, emphstyle=\colorbox{yellow}}!

\bigskip
\lipsum[2]
\newpage
\lstlistoflistings
\end{document}

Avec un extrait de code dans le fichier test01 d'un sous répertoire codelatex que voilà
Code: Tout sélectionner
\begin{itemize}
\item "Être ou ne pas être",
\item Avec des accents ?
\item "telle est la question"
\item Et en couleur ?% comment
\item \(a^2<0\), merci la puce,
               pour une fois
\item "$A$"
\item §$a\notin\mathbb{R}$§, bizarre
\end{itemize}

Voici le résultat où évidement les couleurs sont volontairement exagérées,
tout est paramétrable par le package de listing.
Mon boulot se résume à avoir fait deux minipage, une pour lstinputlisting et l'autre pour input de latex. C'est tout. (j'ai rien fait en somme)
un bon petit m'a fourni l'environnement pour pouvoir utiliser le caractère d'échappement sans l'afficher ensuite avec input !!!
capture.jpg
Résultat
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

Suivante

Retourner vers LaTeX

 


  • Articles en relation
    Réponses
    Vus
    Dernier message

Qui est en ligne

Utilisateurs parcourant ce forum: Google Adsense [Bot] et 17 invités