Ich verwende das Listings-Paket, um Java-Code in meine Tex-Dateien einzufügen. Der Code enthält einige türkische Zeichen. Ich verwende also die Literate-Direktive, damit sie korrekt angezeigt werden. Bis auf das Zeichen „İ“, das große I mit einem Punkt darüber, funktioniert alles einwandfrei. Dieses Zeichen wird nicht korrekt wiedergegeben. Mein Code lautet wie folgt:
\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}
Die Ausgabe lautet wie folgt:
Der Buchstabe wird fälschlicherweise mit einer Linie am unteren Ende des Buchstabens angezeigt. Die korrekte Ausgabe sollte „İ“ mit einem Punkt darüber sein. Ich habe mehrere Möglichkeiten, dies zu lösen. Aber keine hat funktioniert. Hat jemand eine Lösung? Danke …
Antwort1
Ich schlage vor, Sie fügen die Anweisungen hinzu
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
zu Ihrer Präambel.
Im folgenden Beispiel mussten die Farbcodierungsoptionen geändert werden, da Sie keine Informationen darüber bereitgestellt haben, wie die verschiedenen Java-Farben definiert sind.
\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}