Caractere turco (İ) dentro de listagens de código

Caractere turco (İ) dentro de listagens de código

Estou usando o pacote de listagens para colocar código Java em meus arquivos tex. Existem alguns caracteres turcos no código. Então, estou usando a diretiva literate para que apareçam corretamente. Tudo funciona bem, exceto o caractere "İ", o I maiúsculo com um ponto no topo. Este personagem não é renderizado corretamente. Meu código é o seguinte:

\usepackage{listings}

\lstset{
   language=Java,
   captionpos=t,
   tabsize=3,
   frame=single,
   frameround=tttt
   backgroundcolor=\color{highlight},
   basicstyle=\footnotesize\ttfamily,
   keywordstyle=\color{javapurple}\bfseries,
   commentstyle=\color{javagreen},
   stringstyle=\color{javared},
   morecomment=[s][\color{javadocblue}]{/**}{*/},
   numbers=left,
   numberstyle=\tiny,
   numbersep=5pt,
   breaklines=true,
   showstringspaces=false,
   emph={label},
   inputencoding=utf8,
   extendedchars=true,
   % German umlauts
   literate=%
   {Ö}{{\"O}}1
   {Ä}{{\"A}}1
   {Ü}{{\"U}}1
   {ß}{{\ss}}1
   {ü}{{\"u}}1
   {ä}{{\"a}}1
   {ö}{{\"o}}1
   %Türkçe karakterler
   {ı}{{\i}}1
   {İ}{{\.{I}}}1    % This is the problem character.
   {ğ}{{\u{g}}}1
   {Ğ}{{\u{G}}}1
   {ş}{{\c{s}}}1
   {Ş}{{\c{S}}}1
   {ç}{{\c{c}}}1
   {Ç}{{\c{C}}}1
}

\begin{lstlisting}
    System.out.println("Test: ı ü ğ ş ç ö, İ Ü Ğ Ş Ç Ö ");
\end{lstlisting}

A saída disso é a seguinte: insira a descrição da imagem aqui

A carta aparece incorretamente com uma linha próxima ao final da carta. A saída correta deve ser como "İ", com um ponto no topo. Tenho várias opções para resolver isso. Mas nenhum funcionou. Alguém tem uma solução? Obrigado...

Responder1

Eu sugiro que você adicione as instruções

\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}

ao seu preâmbulo.

O exemplo a seguir teve que modificar as opções de codificação de cores, pois você não forneceu informações sobre como as diversas cores java... são definidas.

insira a descrição da imagem aqui

\documentclass{article}
\usepackage[utf8]{inputenc}  % assumes input is utf8-encoded
\usepackage[T1]{fontenc}
\usepackage{listings}
\usepackage{xcolor}
\begin{document}

\lstset{
   language=Java,
   captionpos=t,
   tabsize=3,
   frame=single,
   frameround=tttt
   backgroundcolor=\color{highlight},
   basicstyle=\footnotesize\ttfamily,
   keywordstyle=\color{purple}\bfseries,
   commentstyle=\color{green},
   stringstyle=\color{red},
   morecomment=[s][\color{blue}]{/**}{*/},
   numbers=left,
   numberstyle=\tiny,
   numbersep=5pt,
   breaklines=true,
   showstringspaces=false,
   emph={label},
   inputencoding=utf8,
   extendedchars=true,
   % German umlauts
   literate=%
   {Ö}{{\"O}}1
   {Ä}{{\"A}}1
   {Ü}{{\"U}}1
   {ß}{{\ss}}1
   {ü}{{\"u}}1
   {ä}{{\"a}}1
   {ö}{{\"o}}1
   %Türkçe karakterler
   {ı}{{\i}}1
   {İ}{{\.{I}}}1    % This is the problem character.
   {ğ}{{\u{g}}}1
   {Ğ}{{\u{G}}}1
   {ş}{{\c{s}}}1
   {Ş}{{\c{S}}}1
   {ç}{{\c{c}}}1
   {Ç}{{\c{C}}}1
}

\begin{lstlisting}
    System.out.println("Test: ı ü ğ ş ç ö, İ Ü Ğ Ş Ç Ö ");
\end{lstlisting}
\end{document}

informação relacionada