代碼列表中的土耳其語 (?) 字符

代碼列表中的土耳其語 (?) 字符

我正在使用列表包將java程式碼放入我的tex文件中。代碼中有一些土耳其字符。因此,我使用 Literite 指令讓它們正確顯示。除了“I”字元(大寫字母 I 頂部有一個點)之外,一切正常。該字符未正確呈現。我的程式碼如下:

\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}

其輸出如下: 在此輸入影像描述

字母顯示不正確,一條線靠近字母底部。正確的輸出應該像“?”,頂部有一個點。我有幾種選擇來解決這個問題。但沒有一個奏效。有人有解決辦法嗎?謝謝...

答案1

我建議你加入說明

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

到你的序言。

以下範例必須修改顏色編碼選擇,因為您沒有提供有關如何定義各種 java... 顏色的資訊。

在此輸入影像描述

\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}

相關內容