verbatim

supprimer l'espacement double à l'intérieur de {verbatim}

J'utilise la classe uwthesis qui compose généralement avec beaucoup d'espace entre les lignes. C'est généralement bien, cependant, je souhaite remplacer l'espacement dans certains exemples qui apparaissent dans l' environnement verbatim .

Un MWE ressemble à quelque chose comme ça :

\documentclass{uwthesis}
\begin{document}

Double \\
Spaced \\
Lines

\begin{verbatim}
These
lines
are
also
doublespaced
\end{verbatim}
\end{document}

Idéalement,j'aimerais définir un verbatim personnalisé à utiliser dans les exemples qui présente le texte sans l'espace supplémentaire entre les lignes,mais je ne suis pas sûr de ce que je dois écrire.

Vous pouvez mettre à jour la police verbatim pour utiliser un autre \linespread . Plus précisément, incluez \linespread{1} dans le cadre de \verbatim :

\documentclass{uwthesis}% http://ctan.org/pkg/uwthesis
\makeatletter
\def\verbatim{\linespread{1}\normalfont\ttfamily}
\makeatother
\begin{document}

Double \\
Spaced \\
Lines

\begin{verbatim}
These
lines
are
not
doublespaced
\end{verbatim}

Double \\
Spaced \\
Lines
\end{document}

La classe uwthesis verbatim par défaut du noyau LaTeX , d'où la facilité de ne pas avoir à ajouter de packages supplémentaires pour obtenir la sortie souhaitée. Pour une référence à \linespread , voir Pourquoi \linespread ne fonctionne-t-il pas ? sur la FAQ de TeX.

Vous pourriez contenir la redéfinition dans une macro qui agirait comme un interrupteur :

\makeatletter
\newcommand{\nextverbatimspread}[1]{%
  \def\verbatim{%
    \linespread{#1}\normalfont\ttfamily% Updated definition
    \gdef\verbatim{\normalfont\ttfamily}}% Revert to old definition
}
\makeatother

que vous pourriez utiliser sous la forme

\nextverbatimspread{1}
\begin{verbatim}
% ...single-spaced verbatim
\end{verbatim}
% ...some other content
\begin{verbatim}
% ...double-spaced verbatim
\end{verbatim}

Car créer votre propre environnement de type verbatim est un peu plus délicat. Le plus simple serait d'inclure le package verbatim et d'utiliser la suggestion de David d'envelopper l' environnement verbatim sous forme de commande :

\documentclass{uwthesis}% http://ctan.org/pkg/uwthesis
\usepackage{verbatim}% http://ctan.org/pkg/verbatim
\makeatletter
\newcommand{\nextverbatimspread}[1]{%
  \def\verbatim{%
    \linespread{#1}\normalfont\ttfamily% Updated definition
    \gdef\verbatim{\normalfont\ttfamily}}% Revert to old definition
}
\newenvironment{myverbatim}[1][1.5]
  {\def\verbatim{%
     \linespread{#1}\normalfont\ttfamily% Updated definition
     \gdef\verbatim{\normalfont\ttfamily}}% Revert to old definition
   \verbatim}
  {\endverbatim}
\makeatother
\begin{document}

Double \\
Spaced \\
Lines

\nextverbatimspread{1}
\begin{verbatim}
These
lines
are
not
doublespaced
\end{verbatim}

Double \\
Spaced \\
Lines

\begin{myverbatim}
These
lines
are
doublespaced
\end{myverbatim}

Double \\
Spaced \\
Lines

\begin{myverbatim}[1]
These
lines
are
not
doublespaced
\end{myverbatim}
\end{document}

L' environnement myverbatim prend un argument d'option pour spécifier un \linespread modifié . La valeur par défaut est 1.5 , comme spécifié par uwthesis ("pas tout à fait à double espacement", selon uwthesis.cls , ligne 158).




Regardez en utilisant fancyvrb . Il a beaucoup de belles astuces. Mais en particulier, vous pouvez définir le baselineskip dans l'environnement verbatim :

\documentclass{uwthesis}
\usepackage{fancyvrb}
\begin{document}

Double \\
Spaced \\
Lines

\begin{Verbatim}[baselinestretch=0.75]
These
lines
are
also
doublespaced
\end{Verbatim}
\end{document}

0.75 pourrait être un peu juste pour vous.