Comment préserver les tabulations en mode verbatim ?

Avec l'extension moreverb

L'extension moreverb propose un environnement verbatimtab qui permet de conserver des tabulations. En voici un exemple :

\documentclass{article}
\usepackage{moreverb}
\pagestyle{empty}
\begin{document}
\begin{verbatimtab}
int pattern(char *p, int n, int m)
{
        int orig = current_position();
        int new_pos;
 
        // Piège : la ligne suivante commence
	// par 4 espaces puis une tabulation
        goto_line(n);
 
        if (p && forward_search(p) 
              && (current_line()<m)){
                new_pos = current_position();
                goto_char(orig);
                return(new_pos);
        }
        return(-1);
}
\end{verbatimtab}
\end{document}

\documentclass{article}
\usepackage{moreverb}
\pagestyle{empty}
\begin{document}
\begin{verbatimtab}
int pattern(char *p, int n, int m)
{
        int orig = current_position();
        int new_pos;

        // Piège : la ligne suivante commence
	// par 4 espaces puis une tabulation
        goto_line(n);

        if (p && forward_search(p) 
              && (current_line()<m)){
                new_pos = current_position();
                goto_char(orig);
                return(new_pos);
        }
        return(-1);
}
\end{verbatimtab}
\end{document}

Avec l'extension verbasef

L'extension verbasef (pour verbatim automatic segmentation of external files) l'environnement figure.

Avec des commandes de base

On peut également inclure les lignes suivantes dans le préambule du document :

\makeatletter
{\catcode`\^^I=\active
\gdef\verbatim{
  \catcode`\^^I=\active
  \def^^I{\hspace*{4em}}%
  \@verbatim
  \frenchspacing
  \@vobeyspaces
  \@xverbatim}}
\makeatother

Mais le résultat sera médiocre. Ainsi dans le « piège » de l'exemple initial, \LaTeX se laissera avoir et ratera son alignement.

2_composition/texte/paragraphes/preserver_les_tabulations_en_mode_verbatim.txt · Dernière modification: 2021/01/30 16:13 par yannick.tanguy
CC Attribution-Share Alike 4.0 International
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0