Page 1 sur 1

XeLaTeX, un caractère invisible

MessagePosté: Dimanche 09 Janvier 2011, 13:47
par projetmbc
Bonjour,
dans le code suivant, le caractère spécial ⠶ qui n'est pas reconnu par XeLaTeX indépendamment de listing. Son code unicode 283F.

Code: Tout sélectionner
\documentclass{article}
   \XeTeXdefaultencoding utf-8
   \usepackage{fontspec}
   
   \usepackage{listings}
   \usepackage{color}

\begin{document}
Une phrase avec un caractère braille "⠶".
\end{document}


Pourquoi a-t-on ce comportement ?

Re: XeLaTeX, un caractère invisible

MessagePosté: Dimanche 09 Janvier 2011, 20:27
par un bon petit
Il n'est pas "reconnu" par latex non plus parce que seuls quelques caractères unicodes sont définis. Pas tous et de très loin.
Code: Tout sélectionner
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\begin{document}
un caractère : ⠶
\end{document}

Re: XeLaTeX, un caractère invisible

MessagePosté: Dimanche 09 Janvier 2011, 20:42
par projetmbc
Mais ce qui est étrange c'est que je peux l'utiliser comme caractère d'échappement dans l'environnement listing.
Code: Tout sélectionner
\documentclass{article}
   \usepackage{listings}
   \usepackage{xcolor}

\begin{document}
   \lstset{escapechar=\⠶}  % On peut utiliser n'importe quel carcatère UTF-8 sans souci, ce qui est très utile.
   \lstset{language=Python}
   \begin{lstlisting}
for i in range(5):
    ⠶\textcolor{red}{print}⠶(i)
print('Fin de la boucle...')
   \end{lstlisting}

   \lstset{escapechar={}} % On n'a plus de caractère d'échappement.
   \begin{lstlisting}
for i in range(5):
    ⠶\textcolor{red}{print}⠶(i)
print('Fin de la boucle...')
   \end{lstlisting}

\end{document}

Si j'essaye esnuite de modifier cela pour XeLaTeX, qui gère les accents sans problème, cela ne marche plus.
Code: Tout sélectionner
\documentclass{article}
   \XeTeXdefaultencoding utf-8
   \usepackage{fontspec}
   
   \usepackage{listings}
   \usepackage{color}

\begin{document}
   \lstset{escapechar=⠶} 
   \lstset{language=Python}
   \begin{lstlisting}
for i in range(5):
    ⠶\textcolor{red}{print}⠶(i)
print('Fin de la boucle...')
   \end{lstlisting}
\end{document}

"Moi pas comprendre..." :shock:

Re: XeLaTeX, un caractère invisible

MessagePosté: Dimanche 09 Janvier 2011, 21:16
par OG
Bonsoir

Il me semble qu'il y a une limitation avec xelatex, fontspec, unicode, listings
tout caractère ne peut être utilisé comme caractère d'échappement directement.
Je suis tombé sur un lien (lors de ton premier message).

Code: Tout sélectionner
\documentclass{article}
\usepackage{fontspec}
\usepackage{listings}

%\makeatletter
%\lst@CCPut \lst@ProcessLetter {"20AC}\z@


%\lstset{MoreSelectCharTable=\catcode`\€\active}
\lstset{MoreSelectCharTable=\catcode`\⠶\active}

\lstset{escapechar=⠶} 
%\makeatother
\begin{document}

\begin{lstlisting}[columns=flexible]
a⠶\quad⠶a
\end{lstlisting}


Re: XeLaTeX, un caractère invisible

MessagePosté: Lundi 10 Janvier 2011, 14:25
par projetmbc
Bonjour et merci pour la réponse.

Malheureusement, cela ne compile pas chez moi. Après quelques lignes, j'ai droit à un beau signe * dans ma console qui se fige...