我有一个包含一些分音标记的文件̈
。我需要用\textdiaeresis
替换它们,以便在TeX中使用。
似乎与其他符号一起使用的常用命令总是导致输出为\\textdiaeresis
或\ extdiaeresis
,后者将\t
解释为“tab”。
我尝试过这些sed
命令:
sed -i 's/\ ̈/\textdiaeresis /g' ./file.txt
sed -i 's/\ ̈/\\textdiaeresis /g' ./file.txt
sed -i 's/\ ̈/\\\textdiaeresis /g' ./file.txt
sed -i "s/\ ̈/\textdiaeresis /g" ./file.txt
sed -i "s/\ ̈/\\textdiaeresis /g" ./file.txt
sed -i "s/\ ̈/\\\textdiaeresis /g" ./file.txt
我尝试过这些nawk
命令:
nawk '{sub(/ ̈/,"\textdiaeresis"); print}' file.txt > file.txt2
cp file.txt2 file.txt
nawk '{sub(/ ̈/,"\\textdiaeresis"); print}' file.txt > file.txt2
cp file.txt2 file.txt
nawk '{sub(/ ̈/,"\\\textdiaeresis"); print}' file.txt > file.txt2
cp file.txt2 file.txt
如何使用此TeX代码替换分音符?
答案 0 :(得分:1)
在Mac OS X 10.7.4上bash
(版本3.2.48)下,我发现sed
没有问题(Mac OS X sed
,而不是GNU sed
)。
$ x="s, ̈. "
$ echo "$x" | ~/src/sbcs2utf8/utf8-unicode
(standard input):
0x73 = U+0073
0x2C = U+002C
0x20 = U+0020
0xCC 0x88 = U+0308
0x2E = U+002E
0x20 = U+0020
0x0A = U+000A
$ echo "$x" | sed 's/ ̈/\\textdiaresis/'
s,\textdiaresis.
$
该角色为U + 0308组合DIAERESIS;我从问题中复制了分配给x
的片段。 Unicode标准规定了(第2章,§2.11):
在Unicode标准中,所有组合字符将按顺序使用 它们适用的基本字符。 Unicode字符U + 0061“a”的序列 拉丁文小写字母A,U + 0308“¨”结合分音符,U + 0075“u”拉丁语小写字母U明确表示“äu”而非“aü”。
因此,问题文本中的分音应该在空间上呈现。使用Firefox(14.0.1),在shell输出中,分音符显示在跟随它的.
之上,这是错误的。在sed
命令中,分音符似乎与下面的斜杠结合,这也是错误的。那好吧!但通过sed
翻译对我来说是正确的。