0

いくつかの分音符号を含むファイルがあります̈\textdiaeresisTeX で使用するには、それらを , に置き換える必要があります。

他の記号で動作するように見える通常のコマンドでは、常に出力が\\textdiaeresisor\ extdiaeresisになり、\t後者は「タブ」を意味すると解釈されます。

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 コードに置き換えるにはどうすればよいですか?

4

1 に答える 1

1

bash(バージョン 3.2.48) の下の Mac OS X 10.7.4 では、 ( GNU ではなくsedMac OS Xである) に問題はありません。sedsed

$ 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 COMBINING DIAERESIS です。x質問から割り当てられたフラグメントをコピーしました。Unicode 標準では、次のように指定されています (第 2 章、§2.11)。

Unicode 標準では、すべての結合文字は、それらが適用される基本文字に続いて順番に使用されます。Unicode 文字のシーケンス U+0061 “a” LATIN SMALL LETTER A、U+0308 “¨” ダイエレシスの組み合わせ、U+0075 “u” LATIN SMALL LETTER U は、明確に “äu” を表し、“aü” ではありません。

したがって、質問テキストの分音記号は、スペースの上にレンダリングする必要があります。Firefox (14.0.1) を使用すると、シェル出力で分音記号が次の文字の上に表示され.ますが、これは間違っています。また、sedコマンドでは分音記号が次のスラッシュと組み合わされているように見えますが、これも間違っています。しかたがない!しかし、経由の翻訳sedは私には正しいようです。

于 2012-08-17T02:36:05.820 に答える