Asymptote在刻度上把小数点写成逗号

编程语言 2026-07-08

我想绘制刻度标记,使它们使用LaTeX数学模式的字体,通过使用以 $ 开头并以 $ 结尾的格式字符串来实现,但我得到的是逗号而不是小数点。

例如,如果我的源文件是:

size(8cm,0);
import graph;  

xlimits( -3pi, 3pi);  
xaxis(BottomTop(), Ticks(Label("$%.2f$",red), Step=2pi, step=pi/5, pTick=.8red));
import graph;

在这里输入图片描述

我的区域设置是 it_IT,但在写LaTeX文档时并不会发生这种情况。

解决方案

通过谷歌搜索我找到了 Asymptote FAQ,以及问题 Question 4.6.是否有办法把小数分隔符的默认显示改为用逗号而不是点?。也许你应该使用不同的 locale


当我把 C 作为 locale 使用时,我得到 dot

size(8cm,0);
import graph;  

locale("C");

xlimits( -3pi, 3pi);  
xaxis(BottomTop(), Ticks(Label("$%.2f$",red), Step=2pi, step=pi/5, pTick=.8red));

或者,当我在Linux终端运行它时作为

LANG=C asy graph.asy

LANG=gb_GB asy graph.asy

即使代码中包含 locale("it_IT");,这也能工作。

它也适用于 LC_NUMERIC=C ...,但不适用于 LC_LOCALE=C ...


但直接在代码中使用 locale("gb_GB"); 时,它并不会输出小数点。

站内所有文章版权归属LeftHeroAI导航站,无授权禁止任何主体转载、抄袭、复制内容,亦不得私自架设镜像站点。一经侵权,本站将通过法律途径追责。

相关文章