我对 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}