Je souhaiterais créer un environnement Python avec le package \documentclass[a4paper]{article} \usepackage{listings} \usepackage[margin=1cm]{geometry} \setlength{\parindent}{0pt} \usepackage{caption} \captionsetup[prog]{ font={bf,footnotesize}, margin=0pt, skip=0pt } \makeatletter \newcounter{prog} \lstnewenvironment{prog}[1][] { \noindent\minipage{0.3\linewidth} \def\lstlistingname{Programme} \def\lstlistingautorefname{Programme} \let\c@lstlisting=\c@prog \let\thelstlisting=\theprog \clearcaptionsetup{lstlisting} \lstset{#1, language=Python, basicstyle=\ttfamily, numberstyle=\tiny, framexleftmargin=5mm, xleftmargin=5mm, frame=single, captionpos=bc } \captionsetup{options=prog} } {\endminipage} \makeatother \begin{document} Cas1 - avec compteur et légende : \begin{prog}[caption=MaLegende] s=0 for i in range(1,10): s=s+i print(s) \end{prog} \label{MonLabel} Cas2 - sans légende ni compteur : \begin{prog}[] s=0 for i in range(1,10): s=s+i print(s) \end{prog} Cas3 - avec compteur et sans légende : \begin{prog}[caption=~] %ce test n'a pas donné ce que je souhaitais ! s=0 for i in range(1,10): s=s+i print(s) \end{prog} Le programme ~\ref{MonLabel} se trouve à la page~\pageref{MonLabel}. \end{document} Plus précisément, je voudrais : 1- que le nom défini "Programme" et les commandes 2- ne pas afficher les : dans le Cas3 (le cas où la légende n'existe pas). Posée 07 Jul '21, 13:50 insan |
Avant de pouvoir donner une éventuelle réponse, il faut décider ce qui se passe dans lstlistoflistings pour un programme numéroté mais sans légende. Doit-il y apparaître (juste son numéro) ou non (et dans ce cas il y aura un trou dans la numérotation) ?
Je souhaiterais, pour le cas 3, afficher "programme n" dans lstlistoflistings avec "n" le numéro du programme en question.