J'ajouterais à la réponse de samcarter que, si j'ai bien compris, votre but ultime est de mettre en forme des commandes et ce qu'elles renvoient de façon semblable à ce que peut afficher un terminal.
Pour cela, je recommande le package `tcolorbox` et sa librairie `listingsutf8`.
- Pour le prompt récurrent, on peut recourir à l'option `every listing line` pour éviter les saisies multiples. On peut même faire usage du package `accsupp` pour que, en cas de copié-collé de la ligne où la commande apparaît, ce prompt soit exclu de la copie. Les commandes saisies en entrée sont ci-dessous insérées dans l'environnement `shellinput`.
- Les commandes ne sont pas colorées manuellement : c'est fait au moyen de la coloration syntaxique que permet le package `listings` (en déclarant si nécessaire de nouveaux mots clés.
clés).
- Ce qui est renvoyé en sortie est ci-dessous inséré dans l'environnement `shelloutput`.
Je n'ai pas le temps de détailler davantage et la mise en forme est surement sûrement améliorable mais je livre la chose telle quelle.
\documentclass[french]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{lmodern}
\usepackage{tcolorbox}
\usepackage[a4paper]{geometry}
\usepackage{accsupp}
\usepackage{upquote}
\usepackage{babel}
\tcbuselibrary{listingsutf8,skins,breakable}
\colorlet{keyword}{red}
\colorlet{keyword2}{teal}
\lstset{%
keywordstyle=\color{keyword},
keywordstyle=[2]\color{keyword2},
alsoletter={-_},%
}
\lstdefinelanguage{bash}[]{sh}%
{
morekeywords={%
lsb_release,sudo,apt,update,list%
},%
morekeywords=[2]{% options
a%
}%
}
\tcbset{mylistingstyle/.style={%
breakable,
blank,
listing only,
listing options={%
style=tcblatex,
% language=bash,
escapeinside={(*@}{@*)},
upquote=true,
showstringspaces=false
},
}%
}%
\newtcblisting{shellinput}[1][]{%
mylistingstyle,
after skip=0cm,
listing options={%
style=tcblatex,
language=bash,
escapeinside={(*@}{@*)},
upquote=true,
showstringspaces=false
},
every listing line={%
\textcolor{blue}{%
\ttfamily\bfseries%
\BeginAccSupp{method=plain,ActualText={}}%
dfqsdf@Dominique-PC: \$
\EndAccSupp{}%
}%
},
#1
}
\newtcblisting{shelloutput}[1][]{%
mylistingstyle,
before skip=0cm,
#1
}
\begin{document}
\begin{shellinput}
lsb_release -a
\end{shellinput}
\begin{shelloutput}
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 18.04.2 LTS
Release: 18.04
Codename: bionic
\end{shelloutput}
\begin{shellinput}
sudo apt update
\end{shellinput}
\begin{shelloutput}
Hit:1 http://archive.ubuntu.com/ubuntu bionic InRelease
Get:2 http://archive.ubuntu.com/ubuntu bionic-updates InRelease [88.7 kB]
...
Get:24 http://archive.ubuntu.com/ubuntu bionic-backports/universe Translation-en [1696 B]
Fetched 17.6 MB in 14s (1271 kB/s)
Reading package lists... Done
Building dependency tree
Reading state information... Done
66 packages can be upgraded. Run 'apt list --upgradable' to see them.
\end{shelloutput}
\end{document}
<img src="/upfiles/test_kNxoBYB.png" style="width: 100%;"/>