3
1

Cherchant à ajuster en largeur les codes écrits avec listings, je suis tombé sur cette solution qui me convient parfaitement : https://www.mathweb.fr/euclide/2019/10/13/ajuster-en-largeur-un-listing-sous-latex/

Mais elle rentre en conflit avec les listes de type enumerate comme le montre l'exemple ci-dessous : le code est décalé vers la droite, la marge gauche est exagérée et le code déborde à droite. Je bloque complètement. Est-ce un conflit entre tikz et enumerate ou entre listings et enumerate ? Comment faire ?

\documentclass[10pt]{article}
\usepackage[utf8]{inputenc}
\usepackage{lmodern}
\usepackage[a4paper,margin=1.5cm,includefoot]{geometry}
\usepackage{amssymb}
\usepackage[frenchb]{babel}
\usepackage{colortbl}
\usepackage{listingsutf8}
\usepackage{tikz}
\newlength\largeurboxlisting
\newsavebox{\pythonbox}%
\lstnewenvironment{python}[1][5]{%
\begingroup \lrbox{\pythonbox}%
\lstset{%
language = python,
inputencoding=utf8,
basicstyle = \ttfamily,
numbers = left,
numberstyle = \color{gray}\tiny,
tabsize = 2,
showstringspaces = false,
keywordstyle = \color{orange}\bfseries,
commentstyle = \color{green!50!black}\itshape,
stringstyle=\color{yellow!50!black},
emph = {somme},
emphstyle = \color{red!50!black},
literate=
{á}{{\'a}}1 {é}{{\'e}}1 {í}{{\'i}}1 {ó}{{\'o}}1 {ú}{{\'u}}1
{Á}{{\'A}}1 {É}{{\'E}}1 {Í}{{\'I}}1 {Ó}{{\'O}}1 {Ú}{{\'U}}1
{à}{{\a}}1 {è}{{\e}}1 {ì}{{\i}}1 {ò}{{\o}}1 {ù}{{\u}}1
{À}{{\A}}1 {È}{{\'E}}1 {Ì}{{\I}}1 {Ò}{{\O}}1 {Ù}{{\`U}}1
{ä}{{\"a}}1 {ë}{{\"e}}1 {ï}{{\"i}}1 {ö}{{\"o}}1 {ü}{{\"u}}1
{Ä}{{\"A}}1 {Ë}{{\"E}}1 {Ï}{{\"I}}1 {Ö}{{\"O}}1 {Ü}{{\"U}}1
{â}{{\^a}}1 {ê}{{\^e}}1 {î}{{\^i}}1 {ô}{{\^o}}1 {û}{{\^u}}1
{Â}{{\^A}}1 {Ê}{{\^E}}1 {Î}{{\^I}}1 {Ô}{{\^O}}1 {Û}{{\^U}}1
{Ã}{{\~A}}1 {ã}{{\~a}}1 {Õ}{{\~O}}1 {õ}{{\~o}}1
{œ}{{\oe}}1 {Œ}{{\OE}}1 {æ}{{\ae}}1 {Æ}{{\AE}}1
}%
}{%
 
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Posée 19 Déc '23, 10:00

yvig's gravatar image

yvig
4214
Taux d'acceptation : 0%

Modifiée 20 Déc '23, 15:32

denis's gravatar image

denis ♦♦
7.3k2510

Bienvenue sur TeXnique.fr !

(19 Déc '23, 10:18) denis ♦♦ denis's gravatar image

Les formules de politesse et les signatures sont à éviter : celle(s) de votre contribution a (ont) été supprimée(s).

(19 Déc '23, 10:18) denis ♦♦ denis's gravatar image

@yvig : bienvenue sur TeXnique.fr !

(19 Déc '23, 21:22) Pathe ♦♦ Pathe's gravatar image

@yvig : vous avez marqué la question comme résolue sans choisir la réponse qui vous a le plus aidé. Pour ce faire, pourriez-vous utiliser la boîte à cocher prévue à cet effet, en haut à gauche de chaque réponse ? Ce serait utile aux prochains visiteurs de cette page.

(20 Déc '23, 10:47) Pathe ♦♦ Pathe's gravatar image

Je ne réponds pas directement à la question, mais il est possible de régler votre problème tout en simplifiant votre code, avec le recours :

  • au package tcolorbox et sa bibliothèque listingsutf8 ;
  • à l'option hbox pour que le listing ait sa largeur naturelle ;
  • à l'option inputencoding=utf8/latin1 du package listingsutf8 permettant d'éviter l'option literate ;
  • au package xsim pour la gestion des exercices.

Voici un exemple :

\documentclass[french]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{lmodern}
\usepackage{tcolorbox}
\usepackage[a4paper]{geometry}
\usepackage[use-files]{xsim}
\usepackage{babel}
\tcbuselibrary{listingsutf8}
% \tcbset{listing utf8=latin1}
\tcbset{
python/.style={
colback=blue!10,
colframe=blue!50!black,
fonttitle=\bfseries,
listing only,
hbox,
listing options={
language = python,
basicstyle = \ttfamily,
numbers = left,
numberstyle = \color{gray}\tiny,
tabsize = 2,
inputencoding=utf8/latin1,
showstringspaces = false,
keywordstyle = \color{orange}\bfseries,
commentstyle = \color{green!50!black}\itshape,
stringstyle=\color{yellow!50!black},
emph = {somme},
emphstyle = \color{red!50!black},
}
},
}
\NewTCBListing{python}{ O{}}{%
python,
#1
}
 
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Lien permanent

Publiée 19 Déc '23, 11:02

denis's gravatar image

denis ♦♦
7.3k2510
Taux d'acceptation : 53%

Merci beaucoup, c'est effectivement ce que je veux obtenir ! Malheureusement, la ligne 37 \NewTCBListing{python}{ O{}}{% provoque une erreur Undefined Control Sequence chez moi.

Pourtant tcolorbox est bien installé.

J'ai consulté la doc de tcolorbox (https://texdoc.org/serve/tcolorbox.pdf/0), essayé \newtcblisting et \DeclareTCBListing mais rien n'a changé. tcolorbox a pourtant l'air bien...

(19 Déc '23, 13:25) yvig yvig's gravatar image
1

Vous devez avoir une version sacrément ancienne du package tcolorbox car \NewTCBListing a été introduit lors de sa version 2.80 (2014/03/31) et il en est à sa version 6.1.0 (2023-09-26).

(19 Déc '23, 13:55) denis ♦♦ denis's gravatar image

J'ai trouvé une solution : \usepackage[most]{tcolorbox} ligne 5 fait fonctionner votre code. Merci encore, je vais pouvoir me pencher sur le package xsim que je ne connaissais pas.

(19 Déc '23, 14:18) yvig yvig's gravatar image
1

Il est possible que votre version de tcolorbox ne charge pas par défaut la bibliothèque xparse, ce que fait l'option most. Avec \usepackage{tcolorbox} seulement, mais \tcbuselibrary{listingsutf8,xparse}, cela fonctionne-t-il ?

(19 Déc '23, 14:50) denis ♦♦ denis's gravatar image

oui ça marche aussi. Je suis allé voir à quoi servait xparse et je n'ai pas été déçu... je crois que je ne suis pas au niveau pour l'utiliser autrement qu'en recopiant des instructions, d'autant plus que je n'ai presque rien trouvé en français.

(19 Déc '23, 20:59) yvig yvig's gravatar image
\documentclass[10pt]{article}
\usepackage[utf8]{inputenc}
\usepackage{lmodern}
\usepackage[a4paper,margin=1.5cm,includefoot]{geometry}
\usepackage{amssymb}
\usepackage[frenchb]{babel}
\usepackage{colortbl}
\usepackage{listingsutf8}
\usepackage{tikz}
\newlength\largeurboxlisting
\newsavebox{\pythonbox}%
\lstnewenvironment{python}[1][5]{%
\begingroup\lrbox{\pythonbox}%
\lstset{%
language = python,
inputencoding=utf8,
basicstyle = \ttfamily,
numbers = left,
numberstyle = \color{gray}\tiny,
tabsize = 2,
showstringspaces = false,
keywordstyle = \color{orange}\bfseries,
commentstyle = \color{green!50!black}\itshape,
stringstyle=\color{yellow!50!black},
emph = {somme},
emphstyle = \color{red!50!black},
literate=
{á}{{\'a}}1 {é}{{\'e}}1 {í}{{\'i}}1 {ó}{{\'o}}1 {ú}{{\'u}}1
{Á}{{\'A}}1 {É}{{\'E}}1 {Í}{{\'I}}1 {Ó}{{\'O}}1 {Ú}{{\'U}}1
{à}{{\a}}1 {è}{{\e}}1 {ì}{{\i}}1 {ò}{{\o}}1 {ù}{{\u}}1
{À}{{\A}}1 {È}{{\'E}}1 {Ì}{{\I}}1 {Ò}{{\O}}1 {Ù}{{\`U}}1
{ä}{{\"a}}1 {ë}{{\"e}}1 {ï}{{\"i}}1 {ö}{{\"o}}1 {ü}{{\"u}}1
{Ä}{{\"A}}1 {Ë}{{\"E}}1 {Ï}{{\"I}}1 {Ö}{{\"O}}1 {Ü}{{\"U}}1
{â}{{\^a}}1 {ê}{{\^e}}1 {î}{{\^i}}1 {ô}{{\^o}}1 {û}{{\^u}}1
{Â}{{\^A}}1 {Ê}{{\^E}}1 {Î}{{\^I}}1 {Ô}{{\^O}}1 {Û}{{\^U}}1
{Ã}{{\~A}}1 {ã}{{\~a}}1 {Õ}{{\~O}}1 {õ}{{\~o}}1
{œ}{{\oe}}1 {Œ}{{\OE}}1 {æ}{{\ae}}1 {Æ}{{\AE}}1
}%
}{%
 
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

alt text

Lien permanent

Publiée 19 Déc '23, 14:14

samcarter's gravatar image

samcarter
8.6k2817
Taux d'acceptation : 58%

Modifiée 19 Déc '23, 14:15

Votre réponse
[Masquer l'aperçu]

Suivre cette question

Par courriel :

Une fois que vous serez enregistré, vous pourrez souscrire à n'importe quelle mise à jour ici

Par flux RSS :

Réponses

Réponses et commentaires

Mots-clés de la question :

×17
×16

Question posée : 19 Déc '23, 10:00

Question vue : 2,885 fois

Dernière mise à jour : 20 Déc '23, 10:47

C'est votre première visite ici ? Consultez la FAQ !

×