Julia 嵌入代码中的希腊字符

Julia 嵌入代码中的希腊字符

我对 jlcode 包有一个问题。

该包的文档可以在这里找到: https://github.com/m3g/jlcode_example/blob/master/jlcode.sty

我修改了默认颜色主题以符合我的喜好。其中包括评论的绿色和底色的灰色,如下所示:

\definecolor{jlbase}{HTML}{444444}%         % julia's base 
\definecolor{jlcomment}{HTML}{00B359}%      % julia's comments
 

问题是,带音调的希腊字符(例如 ά、έ)具有“jlbase”颜色,即使它们在“#”命令(标记注释)之后使用,如包中所述。所有其他希腊字符都具有“jlcomment 颜色”,这是理所当然的。除此之外,带音调的希腊字符被放在每个希腊语单词的前面!?

下面的图片可以直观地展示这个问题:

在此处输入图片描述

使用的代码如下:

\documentclass[11pt]{article}
\usepackage[a4paper, width=160mm, top=25mm, bottom=25mm]{geometry}
\usepackage[utf8]{inputenc}
\usepackage{fontspec}
\usepackage{xltxtra,xunicode}
\setmainfont[Mapping=tex-text]{Times New Roman}
\newfontfamily\greekfont[Script=Greek]{Times New Roman}
\setsansfont[Scale=MatchLowercase,Mapping=tex-text]{Futura}
\usepackage[theme=defult]{jlcode}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{document}

\begin{jllisting}[language=julia, style=jlcodeuccstyle]
#MAIN PROCESS
function    #Ακέραιο μέρος
if abs(n)<1
    aker = [0]
else  
    while (flag==0) #το πολύ 23 bits για αποθήκευση   αριθμού(επειδή 1ο ψηφίο κατά την αποθήκευση 
        #το 1, μπορώ να θεωρήσω ότι θα αποθηκεύσω άλλα 23 ψηφία)
        append! VS apend #(aker,mod(AkeraioMeros,b)) 
       global AkeraioMeros = div(AkeraioMeros,b) #πηλίκο διαίρεσης ακεραίου μέρους με b
        if (AkeraioMeros==0)
            flag=1; #break 
        end
    end
    aker=reverse(aker)  #αναποδογυρίζουμε  διάνυσμα με ψηφία ακε̇ραιου μέρους
end 
println('θέλω να σε') 
% 
\end{jllisting}
\end{document}

我希望文本能够按照上面的代码显示(每个单词内的字母顺序相同)并且 全部“#”命令后面的字符变为绿色(jlcomment colour)

任何帮助将不胜感激!

答案1

您使用的软件包似乎不是为 Unicode TeX 设计的。我使用minted(和 `xlatx --shell-escape)来获取此输出

在此处输入图片描述

\documentclass[11pt]{article}
\usepackage[a4paper, width=160mm, top=25mm, bottom=25mm]{geometry}
% no \usepackage[utf8]{inputenc}
\usepackage{fontspec}
% no \usepackage{xltxtra,xunicode}
\setmainfont[Mapping=tex-text]{Times New Roman}
\newfontfamily\greekfont[Script=Greek]{Times New Roman}
% I don't have this \setsansfont[Scale=MatchLowercase,Mapping=tex-text]{Futura}
\setsansfont[Scale=MatchLowercase,Mapping=tex-text]{Arial}
\setmonofont{Noto Sans Mono} % a tt font that has Greek
% probably not \usepackage[theme=defult]{jlcode}
\usepackage{minted}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{document}

\small
\begin{minted}{julia}
#MAIN PROCESS
function    #Ακέραιο μέρος
if abs(n)<1
    aker = [0]
else  
    while (flag==0) #το πολύ 23 bits για αποθήκευση   αριθμού(επειδή 1ο ψηφίο κατά την αποθήκευση 
        #το 1, μπορώ να θεωρήσω ότι θα αποθηκεύσω άλλα 23 ψηφία)
        append! VS apend #(aker,mod(AkeraioMeros,b)) 
       global AkeraioMeros = div(AkeraioMeros,b) #πηλίκο διαίρεσης ακεραίου μέρους με b
        if (AkeraioMeros==0)
            flag=1; #break 
        end
    end
    aker=reverse(aker)  #αναποδογυρίζουμε  διάνυσμα με ψηφία ακε̇ραιου μέρους
end 
println('θέλω να σε') 
% 
\end{minted}
\end{document}

相关内容