我们必须将非ASCII 8或命名实体字符转换为LaTeX代码。现在我们将非ASCII转换为Unicode,然后使用Perl脚本将Unicode转换为LaTeX/entity。
例如:
ó --> \'{o}
ó --> \'{o}
ó --> \'{o}在Perl程序/脚本中,是否存在从非ASCII码或UTF8码到LaTeX码的直接转换?
发布于 2016-07-26 19:25:43
这非常简单,使用XML::Entities模块对实体进行解码,使用LaTeX::Encode模块将它们重新编码为LaTeX
注意,我已经显式地为解码函数创建了一个别名xml_decode,因为导出的名称只是decode,这太不精确了
use utf8;
use strict;
use warnings 'all';
use feature 'say';
use XML::Entities ();
use LaTeX::Encode 'latex_encode';
*xml_decode = \&XML::Entities::decode;
for my $s ( 'ó', 'ó', 'ó' ) {
my $reencoded = latex_encode(xml_decode('all', $s));
say $reencoded;
}输出
{\'o}
{\'o}
{\'o}发布于 2020-01-08 00:10:59
我花了大约2个小时才找到我的错误。Perl没有检测到以UTF-8编码的输入字符串。
您可以使用以下命令帮助perl将输入字符串视为utf-8 : use open ( ":encoding(UTF-8)",":std“);
https://stackoverflow.com/questions/38587627
复制相似问题