tcolorbox + xparse + minted

Tout ce qui concerne le langage LaTeX et ses variantes. Ce langage est supporté sur le forum via les balises tex.

Modérateur : gdm_tex

Règles du forum
Merci de soigner la rédaction de vos messages et de consulter ce sujet avant de poster. Pensez également à utiliser la fonction recherche du forum.
zariski63
Utilisateur éprouvé
Utilisateur éprouvé
Messages : 362
Inscription : jeudi 14 octobre 2010, 09:20

tcolorbox + xparse + minted

Message par zariski63 »

Bonjour, après avoir tourné en rond un (long) moment je me résigne à faire une demande.

Je me suis concocté une commande à 2 options (voir ci-dessous) qui fonctionne assez bien.
Mon petit problème vient du fait que si je souhaite utiliser qu'une des 2 options alors ça coince ou alors il me faut la préciser avec des [ ].
Aussi est-il possible de faire fonctionner ma commande sans avoir à préciser ces [ ] si je n'utilise pas l'option considérée ?

Code : Tout sélectionner

\documentclass[12pt]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}

\usepackage{xcolor}
\usepackage{minted}
\usepackage{tcolorbox}
    \tcbuselibrary{breakable}
    \tcbuselibrary{skins}
    \tcbuselibrary{xparse}
    \tcbuselibrary{minted}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%   \Lstinlinec[coul.cadre, coul fond, ...]{latex ou asymptote ou python}{verbatim}    %%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\DeclareTotalTCBox{\Lstinlinec}{ O{} O{} m v }
     {verbatim,
      colframe=blue,
      colback=blue!5,
      arc      = 0.6ex,%
      top      = -0.2ex,%
      bottom   = -0.2ex,%
      left     = 0mm,%
      right    = 0mm,%
      boxrule  = 0.7pt,%
      #1
      }
      {\mintinline[#2]{#3}{#4}}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%  \Lstinlinec[coul.cadre, coul fond,...]{latex ou asymptote ou python}{verbatim}    %%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


\begin{document}
%  \Lstinlinec[option tcolorbox][option listings]{langage}!... du verbatim ...! 

Sans les 2 types d'options :  \Lstinlinec{latex}!\begin! 

\medskip

Avec l'option "listings" :  \Lstinlinec[][fontsize=\scriptsize]{latex}!\begin! 

\medskip

Avec l'option "tcolorbox" :  \Lstinlinec[boxrule=2pt][]{latex}!\begin! 
\end{document}

gigiair
Utilisateur chevronné
Utilisateur chevronné
Messages : 2563
Inscription : samedi 08 juillet 2006, 20:56
Localisation : Saint Bonnet Elvert

Re: tcolorbox + xparse + minted

Message par gigiair »

Peut--être que la macro \IfNoValueTF pourrait résoudre le problème (Voir la doc de xparse)
JJR.
LaTeXien migrateur.

zariski63
Utilisateur éprouvé
Utilisateur éprouvé
Messages : 362
Inscription : jeudi 14 octobre 2010, 09:20

Re: tcolorbox + xparse + minted

Message par zariski63 »

j'ai essayé mais sans succès… j'ai du mal aussi à utiliser ces commandes

gigiair
Utilisateur chevronné
Utilisateur chevronné
Messages : 2563
Inscription : samedi 08 juillet 2006, 20:56
Localisation : Saint Bonnet Elvert

Re: tcolorbox + xparse + minted

Message par gigiair »

J'ai trouvé ce document Beyond \newcommand with xparse. Je ne sais pas s'il est plus explicite que la doc de xparse.
JJR.
LaTeXien migrateur.

zariski63
Utilisateur éprouvé
Utilisateur éprouvé
Messages : 362
Inscription : jeudi 14 octobre 2010, 09:20

Re: tcolorbox + xparse + minted

Message par zariski63 »

déjà vu, en fait j'ai écumé toutes la doc sur le net et elle est ultra light…
je sens que je vais rester sur ma faim.
Peut être que finalement il n'y a pas d'autres solutions en fait car comment distinguer les 2 options si on ne précise pas laquelle est première et l'autre seconde …
J'étais surtout à la recherche d'une solution élégante mais merci quand même d'avoir essayé de m'aider, c'est tjs sympa.

marco56
Utilisateur éprouvé
Utilisateur éprouvé
Messages : 864
Inscription : jeudi 25 novembre 2010, 22:10

Re: tcolorbox + xparse + minted

Message par marco56 »

Pourquoi ne pas utiliser listings ?
[edit] En fait, je réponds sans doute à côté...
mais c'est pénible je trouve de travailler en shell-escape : en cas d'erreur, il faut tuer le processus, bref pas pour moi.

zariski63
Utilisateur éprouvé
Utilisateur éprouvé
Messages : 362
Inscription : jeudi 14 octobre 2010, 09:20

Re: tcolorbox + xparse + minted

Message par zariski63 »

C est ce que je vais faire et compiler pat Lualatex qui regle les soucis utf8 avec listings. Ceci dit ça regle pas l utilisation de xparse.

marco56
Utilisateur éprouvé
Utilisateur éprouvé
Messages : 864
Inscription : jeudi 25 novembre 2010, 22:10

Re: tcolorbox + xparse + minted

Message par marco56 »

Je n'ai pas de souci avec utf8 et listings via LaTeX.
Pour xparse, je ne sais pas.

zariski63
Utilisateur éprouvé
Utilisateur éprouvé
Messages : 362
Inscription : jeudi 14 octobre 2010, 09:20

Re: tcolorbox + xparse + minted

Message par zariski63 »

Chez moi (sans passer par des literate …) si j'écris : \lstinline!caractère! le "è" ne passe pas.
Dernière modification par MB le vendredi 08 mai 2020, 12:00, modifié 1 fois.
Raison : Nouvelles balises pour le code "inline".

marco56
Utilisateur éprouvé
Utilisateur éprouvé
Messages : 864
Inscription : jeudi 25 novembre 2010, 22:10

Re: tcolorbox + xparse + minted

Message par marco56 »

Il faudrait que tu mettes un ecm.
J'ai déjà rencontré ce pb mais je l'ai réglé, je ne sais plus trop comment mais je pense pouvoir retrouver.

gigiair
Utilisateur chevronné
Utilisateur chevronné
Messages : 2563
Inscription : samedi 08 juillet 2006, 20:56
Localisation : Saint Bonnet Elvert

Re: tcolorbox + xparse + minted

Message par gigiair »

zariski63 a écrit :
jeudi 07 mai 2020, 20:36
déjà vu, en fait j'ai écumé toutes la doc sur le net et elle est ultra light…
je sens que je vais rester sur ma faim.
Peut être que finalement il n'y a pas d'autres solutions en fait car comment distinguer les 2 options si on ne précise pas laquelle est première et l'autre seconde …
J'étais surtout à la recherche d'une solution élégante mais merci quand même d'avoir essayé de m'aider, c'est tjs sympa.
J'ai dit dans mon précédent message une assez grosse c..ie : \IfNoValueTF ne peut servir à rien puisque le O{ } assure l'existence d'une valeur par défaut (un blanc). Par contre la macro \ifblank qui vient avec le package etoolbox peut faire l'affaire et renvoyer ce que l'on veut renvoyer en fonction de la valeur effective de #2.
JJR.
LaTeXien migrateur.

zariski63
Utilisateur éprouvé
Utilisateur éprouvé
Messages : 362
Inscription : jeudi 14 octobre 2010, 09:20

Re: tcolorbox + xparse + minted

Message par zariski63 »

Voici un ecm ultra court qui n'accepte pas les caractères spéciaux chez moi.
J'ai décoché quelques packages qui selon la littérature sont censés remédier à mon problème mais rien n'y fait ...

Code : Tout sélectionner

\documentclass[10pt]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}

\usepackage{xcolor}
\usepackage{listings}
%\usepackage{listingsutf8}
\usepackage{verbatim}

%<---------  style latex -------------------------------------------------------------->
\lstdefinestyle{latex}{%
   language          = [LaTeX]TeX,
   %inputencoding     = utf8/latin1, % pour les accents si pdflatex
   basicstyle        = \ttfamily,
   extendedchars=true,
   escapechar        = {§},       
   breaklines        = true,      
   morecomment       = [l]\%,     % le signe % sera le symbole "commentaire"
   commentstyle      = {\color{gray}\ttfamily},
   texcsstyle        = *{\color{blue}\ttfamily},
   }
%<---------  Fin style latex ----------------------------------------------------->

\begin{document}
\begin{lstlisting}[style=latex]
\section{Calculs classiques}
\subsection{Ecriture de caractère spéciaux}
àéèùû
\end{lstlisting}
\end{document}
Dernière modification par MB le vendredi 08 mai 2020, 20:04, modifié 1 fois.
Raison : Erreur dans les balises code (ne pas utiliser la version inline ici)

gigiair
Utilisateur chevronné
Utilisateur chevronné
Messages : 2563
Inscription : samedi 08 juillet 2006, 20:56
Localisation : Saint Bonnet Elvert

Re: tcolorbox + xparse + minted

Message par gigiair »

Si j'en crois la doc c'est normal :
By default, listings does not support multi-byte encoding for source code. The extendedchar option only works for 8-bits encodings such as latin1.

To handle UTF-8, you should tell listings how to interpret the special characters by defining them like so
Ou bien les caractères accentués doivent être encodés en encodage TeX.

Code : Tout sélectionner

\documentclass[10pt]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}

\usepackage{xcolor}
\usepackage{listings}
%\usepackage{listingsutf8}
\usepackage{verbatim}

%<---------  style latex -------------------------------------------------------------->
\lstdefinestyle{latex}{%
   language          = [LaTeX]TeX,
   %inputencoding     = utf8/latin1, % pour les accents si pdflatex
   basicstyle        = \ttfamily,
   extendedchars=true,
   escapechar        = {{\S}},       
   breaklines        = true,      
   morecomment       = [l]\%,     % le signe % sera le symbole "commentaire"
   commentstyle      = {\color{gray}\ttfamily},
   texcsstyle        = *{\color{blue}\ttfamily},
   }
%<---------  Fin style latex ----------------------------------------------------->

\begin{document}
\begin{lstlisting}[style=latex]
\section{Calculs classiques}
\subsection{Ecriture de caract{\`e}re sp{\'e}ciaux}
{\`a}{\'e}{\`e}{\`u}{\^u}
\end{lstlisting}
\end{document}


Ou bien en latin-1 (il faut évidemment que le fichier ait été sauvegardé en latin-1 !)

Code : Tout sélectionner

\documentclass[10pt]{article}
\usepackage[latin1]{inputenc}
%%%%%%%%%%^^^^^^^
\usepackage[T1]{fontenc}

\usepackage{xcolor}
\usepackage{listings}
%\usepackage{listingsutf8}
\usepackage{verbatim}

%<---------  style latex -------------------------------------------------------------->
\lstdefinestyle{latex}{%
   language          = [LaTeX]TeX,
   %inputencoding     = utf8/latin1, % pour les accents si pdflatex
   basicstyle        = \ttfamily,
   extendedchars=true,
   escapechar        = {§},       
   breaklines        = true,      
   morecomment       = [l]\%,     % le signe % sera le symbole "commentaire"
   commentstyle      = {\color{gray}\ttfamily},
   texcsstyle        = *{\color{blue}\ttfamily},
   }
%<---------  Fin style latex ----------------------------------------------------->

\begin{document}
\begin{lstlisting}[style=latex]
\section{Calculs classiques}
\subsection{Ecriture de caractère spéciaux}
àéèùû
\end{lstlisting}
\end{document}
JJR.
LaTeXien migrateur.

zariski63
Utilisateur éprouvé
Utilisateur éprouvé
Messages : 362
Inscription : jeudi 14 octobre 2010, 09:20

Re: tcolorbox + xparse + minted

Message par zariski63 »

Finalement passer par "literate" me semble plus simple. Non ?
En tout cas je vous remercie vivement de votre aide. J apprécie

gigiair
Utilisateur chevronné
Utilisateur chevronné
Messages : 2563
Inscription : samedi 08 juillet 2006, 20:56
Localisation : Saint Bonnet Elvert

Re: tcolorbox + xparse + minted

Message par gigiair »

Je ne sais pas si c'est plus simple, c'est une question d’appréciation personnelle...
Voici la version de votre ECM utilisant cette méthode :

Code : Tout sélectionner

\documentclass[10pt]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}

\usepackage{xcolor}
\usepackage{listings}
%\usepackage{listingsutf8}
\usepackage{verbatim}
\lstset{%
  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 {ß}{{\ss}}1
  {ű}{{\H{u}}}1 {Ű}{{\H{U}}}1 {ő}{{\H{o}}}1 {Ő}{{\H{O}}}1
  {ç}{{\c c}}1 {Ç}{{\c C}}1 {ø}{{\o}}1 {å}{{\r a}}1 {Å}{{\r A}}1
  {€}{{\euro}}1 {£}{{\pounds}}1 {«}{{\guillemotleft}}1
  {»}{{\guillemotright}}1 {ñ}{{\~n}}1 {Ñ}{{\~N}}1 {¿}{{?`}}1
}

%<---------  style latex -------------------------------------------------------------->
\lstdefinestyle{latex}{%
   language          = [LaTeX]TeX,
   %inputencoding     = utf8/latin1, % pour les accents si pdflatex
   basicstyle        = \ttfamily,
   extendedchars=true,
   escapechar        = {§},       
   breaklines        = true,      
   morecomment       = [l]\%,     % le signe % sera le symbole "commentaire"
   commentstyle      = {\color{gray}\ttfamily},
   texcsstyle        = *{\color{blue}\ttfamily},
   }
%<---------  Fin style latex ----------------------------------------------------->

\begin{document}
\begin{lstlisting}[style=latex]
\section{Calculs classiques}
\subsection{Ecriture de caractère spéciaux}
àéèùû
\end{lstlisting}
\end{document}
JJR.
LaTeXien migrateur.

zariski63
Utilisateur éprouvé
Utilisateur éprouvé
Messages : 362
Inscription : jeudi 14 octobre 2010, 09:20

Re: tcolorbox + xparse + minted

Message par zariski63 »

Impeccable, MERCI ! J'avais rectifié et testé vos propositions.
Finalement je vais rester sur PdfLatex et laisser LuaLatex. Qu'en pensez-vous ?

MB
Administrateur
Administrateur
Messages : 7138
Inscription : samedi 28 mai 2005, 14:23
Statut actuel : Enseignant

Re: tcolorbox + xparse + minted

Message par MB »

Quel est le problème avec LuaLatex ?
MB (Pas d'aide en Message Privé)
Merci d'utiliser MathJax (voir ici) et d'éviter le style SMS pour la lisibilité des messages.

zariski63
Utilisateur éprouvé
Utilisateur éprouvé
Messages : 362
Inscription : jeudi 14 octobre 2010, 09:20

Re: tcolorbox + xparse + minted

Message par zariski63 »

Pas de soucis particuliers …
J'aimerais avoir un conseil plutôt sur la pertinence d'utiliser plutôt l'un que l'autre.

MB
Administrateur
Administrateur
Messages : 7138
Inscription : samedi 28 mai 2005, 14:23
Statut actuel : Enseignant

Re: tcolorbox + xparse + minted

Message par MB »

D'accord. Personnellement j'utilise LuaLatex depuis quelques années. Pour les principaux avantage, on a une gestion des fontes plus étendue, la possibilité de réaliser des commandes utilisant le langage Lua, ainsi que la possibilité d'inclure directement des images Metapost (via mplib). Le principal inconvénient reste le temps de compilation, un peu plus long qu'avec pdflatex.
MB (Pas d'aide en Message Privé)
Merci d'utiliser MathJax (voir ici) et d'éviter le style SMS pour la lisibilité des messages.

gigiair
Utilisateur chevronné
Utilisateur chevronné
Messages : 2563
Inscription : samedi 08 juillet 2006, 20:56
Localisation : Saint Bonnet Elvert

Re: tcolorbox + xparse + minted

Message par gigiair »

MB a écrit :
samedi 09 mai 2020, 11:59
Quel est le problème avec LuaLatex ?
La compilation est presque deux fois plus lente.
Avec le fichier martyr.tex (256 frame beamer)

Code : Tout sélectionner

wget -O martyr.tex http://ix.io/2kMQ

Code : Tout sélectionner

time pdflatex martyr
real	0m11,374s
user	0m9,684s
sys	0m0,228s
Avec lualatex

Code : Tout sélectionner

real	
lualatex martyr
0m20,113s
user	0m17,169s
sys	0m0,494s
JJR.
LaTeXien migrateur.