Matlab的LaTeX解释器如何处理Unicode?

4
我想知道MATLAB绘图文本的LaTeX解释器如何处理Unicode字符?它的表现非常不一致,这使得Unicode的整个存在意义都被否定了。
玩具代码
%*** Setup some text for a plot title
Title_Txt{1} = [char(8734) ,' SNR~~~' , char(10) , '(-)'];
Title_Txt{2} = ['50 SNR~~~' , char(10) , '(-)'];


%*** Plots!
x= 1:1:10
y= rand(size(x))

figure(1)
subplot(211)
plot(x,y)
title(Title_Txt{1} , 'interpreter' , 'latex')

subplot(212)
plot(x,y)
title(Title_Txt{2} , 'interpreter' , 'latex')

玩具情节

Toy code演示了latex解释器如何处理char(10)——一个新行。但它会在char(8734)——无穷大符号处中断。

显然,我可以通过输入matlab知道的latex符号来解决这个问题(另一个令人沮丧的来源,但那是另一个讨论),但我很好奇:

  • Matlab在这里到底做了什么?
  • 有没有办法将Unicode插入到latex中?

此外,Matlab在文档中没有列出他们使用的Unicode格式。我猜“有效代码范围从0到65535”意味着“char()基于Unicode UTF-16进行解释”? - Mark_Anderson
1个回答

2
我怀疑这里(不令人满意的)答案是Matlab中的Latex解释器部分执行包含的版本所做的任何事情,而总的来说,Latex并不支持Unicode。(有关Latex解决方案,请参见:https://tex.stackexchange.com/questions/34604/entering-unicode-characters-in-latex。当然,这对Matlab用户没有帮助。)
至于为什么Latex不支持Unicode。我会指出,我的Latex用户指南上的第一个版权日期是1985年,最新版本是1994年的2e版。 Unicode直到90年代才真正成为主流。
(这是一个不太好的答案,但评论变得太长了。)

有趣的信息!尽管我每天都使用LaTeX,但我从未真正考虑过它可能在根本上不符合Unicode标准。 - Mark_Anderson
这很可能是最好的答案,因为MATLAB可能只是调用pdfTex,它不像LuaTex或XeTeX引擎那样对Unicode友好,也没有选项可以很好地与Unicode兼容。这是我使用'matlab2tikz'发布原始LaTeX并选择所需引擎的原因之一。@Mark_Anderson - TroyHaskin

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接