Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

UTF-16で出力する #30

Open
naoya opened this issue Apr 4, 2013 · 29 comments
Open

UTF-16で出力する #30

naoya opened this issue Apr 4, 2013 · 29 comments

Comments

@naoya
Copy link
Owner

naoya commented Apr 4, 2013

No description provided.

@naoya
Copy link
Owner Author

naoya commented Mar 3, 2014

これ多分、utf-16 で出力できれば ok というわけではなくて InDesign のタグとか shift-jis 前提になってるところをどうするか、というところも見る必要があったと思う。

あと web 版に http://md2inao.bloghackers.net/ にオプションを付けてあげる必要もあるかな。

@inao
Copy link
Collaborator

inao commented Mar 3, 2014

みなさまありがとうございます!!!

UTF-16で出力した場合は、変換後のファイルの1行目を以下にしていただく必要がございます。

<UNICODE-MAC>

あとは、実際にテキストをInDesignに読み込ませてみないとわからなさそうです。
#73 をご対応いただけるととても助かりますっ。

@gfx
Copy link
Collaborator

gfx commented Mar 3, 2014

うっ、ちなみに UTF-16 以外のoutput encodingに対応する必要はありますか?

@inao
Copy link
Collaborator

inao commented Mar 4, 2014

ございません。

また、UTF-16対応がうまくいきましたら、こちらのほうをデフォルトで使用させていただき、Shift-JISのほうはオプションという運用になると思います。

@gfx
Copy link
Collaborator

gfx commented Mar 4, 2014

了解です。じゃあそのへんいい感じにします!

@gfx
Copy link
Collaborator

gfx commented Mar 4, 2014

UTF-16だとそのままweb版でtextareaに出力できない予感…。convertすると画面遷移とかでもいいすかねえ?

@inao
Copy link
Collaborator

inao commented Mar 4, 2014

ありがとうございます。
はい、画面遷移でもいきなりダウンロードでもぜんぜん大丈夫です!

ただ欲を申せば、現状のように1つ前に選択したテキストファイルを保持しておいていただけると、すごく助かります。

現状はWeb版を以下のように使用しています。

  1. テキストファイルを選択
  2. テキストファイルを変換
  3. ローカルでテキストファイルを編集(記法の誤りなどを修正)
  4. 2~3を繰り返して試行錯誤する

4が、「1~3を繰り返す」、つまりテキストファイルの選択からやりなおすになると、ちょっとだけ不便なのです……。

@naoya
Copy link
Owner Author

naoya commented Mar 4, 2014

思い出した。自分も utf-16 対応したときこの問題にぶつかって、一旦なしにした気が。

現状、画面遷移DLじゃなく上記になっているのは、もともと画面遷移だったけどそれだと不便なんでというリクエストがあって今に至ってます。

@gfx
Copy link
Collaborator

gfx commented Mar 5, 2014

ふむふむ。

@inao さんのマシンはMacですか?今回CPAN化したことでmd2inaoのインストールが非常に簡単になりまして、もしかしたらコマンドラインから使っていただくのが効率的にはベストかもしれないです。Windowsだとちょっと…なのでその場合はWeb版を改良していきます。

@inao
Copy link
Collaborator

inao commented Mar 5, 2014

アドバイスありがとうございます。
僕のマシンはMacです(ただ編集部にはWindowsの人も……)。
あとでインストールに再チャレンジしてみます!

@gfx
Copy link
Collaborator

gfx commented Mar 5, 2014

hmhm Windowsは厳しいっすね、インストール自体は普通にできるんですが、ターミナルで作業するということが難しい…。

@inao
Copy link
Collaborator

inao commented Mar 5, 2014

ですのでWeb版もあると、編集アシスタントさんなどだれでも使えて助かるのです。

Web版はShift-JIS、ローカルはUTF16ってするのが良いかもですね。
UTF16を使いたい人は環境構築をがんばれと。

@d-ikeda
Copy link
Collaborator

d-ikeda commented Mar 11, 2014

横からすいません。WEB+DB PRESS編集部池田と申します。

出力をUTF化する際に、私が以前に調べた点を書きます。複雑ですいませんが、事前にお送りしておいたほうが対応いただくとなった場合の作業量などの参考になるかなと思いお書きしました。

現在、次のような流れで変換して、InDesignというDTPソフトに取り込んでいます。

markdown
↓(md2inao)
InDesingタグ付きテキスト

現在のSHIFT-JISのInDesingタグ付きテキストでは、<005C>\のようなUnicode番号? で表記した文字の変換が利用できるのですが、InDesignタグ付きテキストをUTF出力のものにすると、このUnicode番号の表現が使えなくなるようです。

これで影響があるのは次のような表記です。「markdown」のように表記すると「SJISの場合の期待する動作」だとUTFでは正常にならず、「UTFの場合の期待する動作」のように変換される必要があります。下記例は本文に出てきた場合を想定しているので「ParaStyle:本文」がついています。

山括弧

markdown

<>

SJISの場合の期待する動作

<ParaStyle:本文><005C><<005C>>

UTFの場合の期待する動作

<ParaStyle:本文><>

黒丸数字

markdown

(d1)

SJISの場合の期待する動作

<ParaStyle:本文><CharStyle:丸文字><2776><CharStyle:>

UTFの場合の期待する動作

<ParaStyle:本文><CharStyle:丸文字>❶<CharStyle:>

白丸数字

markdown

(c1)

SJISの場合の期待する動作

<ParaStyle:本文><CharStyle:丸文字><2460><CharStyle:><CharStyle:丸文字>

UTFの場合の期待する動作

<ParaStyle:本文><CharStyle:丸文字>①<CharStyle:>

キーボードフォント

markdown

<kbd>Enter</kbd>

SJISの場合の期待する動作

<ParaStyle:本文><cFont:Key Mother><00A9><cFont:>

UTFの場合の期待する動作

<ParaStyle:本文><cFont:Key Mother>©<cFont:>

以下は、SJIS、UTF同一なのでこのままで大丈夫です。

黒四角数字

markdown

(s1)

SJIS、UTFの場合の期待する動作

<ParaStyle:本文><cTypeface:B><cFont:A-OTF ゴシックMB101 Pro><cotfcalt:0><cotfl:nalt,7>1<cTypeface:><cFont:><cotfcalt:><cotfl:>

黒アルファベット

markdown

(a1)

SJIS、UTFの場合の期待する動作

<ParaStyle:本文><CharStyle:丸文字><cLigatures:0><cOTFContAlt:0><cOTFeatureList:nalt,3>a<cLigatures:><cOTFContAlt:><cOTFeatureList:><CharStyle:>

このうちキーボードフォントのEnterがが©という文字にしなければならないなどは、規則性はないようなので、必要になったらこちらでリストを作成します。

これら、私のほうで @inao が用意しているようなテストコードを書くこともできますので必要でしたら教えてください。

添付している画像がUTFのタグ付きテキストをInDesignに取り込んだもので、「文字コード番号表記」がUTFではうまく解釈できていないとろで、「そのまま文字」が上記のように表記して正常に表示できたところです。
utf

わかりにくいところありましたらご指摘ください。

@d-ikeda
Copy link
Collaborator

d-ikeda commented Mar 11, 2014

あと、Unicodeにする際、

#30 (comment)

のほかに、文字コードを

  • UTF16BEでCR改行
  • UTF16LEでLF改行

どちらかである必要があるようです。

@gfx
Copy link
Collaborator

gfx commented Mar 11, 2014

@d-ikeda なるほどっすねー!!大変たすかります!!!!

@d-ikeda
Copy link
Collaborator

d-ikeda commented Mar 11, 2014

@gfx さん
いろいろ便利にしていただいてありがとうございます! こういったデータがあるとやりやすいなどありましたら用意しますので教えてください。

@n-yuji
Copy link

n-yuji commented Mar 11, 2014

ようするに、SJIS前提では、SJISにない文字を扱うために、ユニコード番号を< >で取り込んで展開していたわけですね。
ユニコードを前提にするとその処理が余計なお世話になってしまう、というのが @d-ikeda さんの書いたところ。キーボードフォントも、コード番号じゃなく割り当てられた文字そのままを出す必要があるということになりますですね。

あ、どうもです。デザイナの西岡です……。

@n-yuji
Copy link

n-yuji commented Mar 11, 2014

あ、もしかしてコードに0x追加すればいいだけだったりしないかしら。
例えば全角スペースなら<3000>じゃなくて<0x3000>というふうに。

@d-ikeda
Copy link
Collaborator

d-ikeda commented Mar 11, 2014

@n-yuji さん

ありがとうございます! そのとおりです。

あ、もしかしてコードに0x追加すればいいだけだったりしないかしら。
例えば全角スペースなら<3000>じゃなくて<0x3000>というふうに。

これでできるとうれしいですね。試してみます。

@d-ikeda
Copy link
Collaborator

d-ikeda commented Mar 11, 2014

試してみました。うまくいかないようです。

2014-03-11 19 08 38

試したInDesignタグテキストは以下のものです。
https://gist.github.com/d-ikeda/9482914

以下の部分が追加して試したコードです。

<ParaStyle:中見出し>0x追加
<ParaStyle:本文><0x005C><<0x005C>>

UTFで表現出来る文字はUTFで、という感じなのかもしれないですね。

@gfx
Copy link
Collaborator

gfx commented Mar 11, 2014

なるほどー!もしかして、単にUTF-16()をサポートするのがいろいろ変換の手間がなくてよい、という状況ですか?

@n-yuji
Copy link

n-yuji commented Mar 11, 2014

0xでいけそうな気がしたんだけどなー(InDesignタグの説明書によれば、少なくとも<0x3000>は通るはずなのでしたが、これさえ通らないですね。これはいちおうサポートに報告しておこうと思いますけど、まったく期待はできません)。
UTFの文字にするのが良いようですね……。

@d-ikeda
Copy link
Collaborator

d-ikeda commented Mar 11, 2014

@n-yuji さん

0xでいけそうな気がしたんだけどなー(InDesignタグの説明書によれば、少なくとも<0x3000>は通るはずなのでしたが、これさえ通らないですね。

私のほうでも<0x3000>もUnicode環境では解釈されないの確認できました。こちらInDesign CS6になったら挙動が変わるなどありますでしょうか。

これはいちおうサポートに報告しておこうと思いますけど、まったく期待はできません)。
UTFの文字にするのが良いようですね……。

ありがとうございます。お忙しいところすいません。UTFが良い感じがしますね。

@d-ikeda
Copy link
Collaborator

d-ikeda commented Mar 11, 2014

@gfx さん

なるほどー!もしかして、単にUTF-16()をサポートするのがいろいろ変換の手間がなくてよい、という状況ですか?

はい。おそらくそのようです。この場合、今Unicode番号を使って表現している部分をUnicodeの文字自体で表現するように修正いただく必要がありそうです。

あと、念のためいままでShift-JISでは変換できていたタグがUTFにしたものでも変換できるかを確認しますね。明日連絡できると思います。

@inao
Copy link
Collaborator

inao commented Mar 11, 2014

@n-yuji
西岡さん、ありがとうございます!

ところで、InDesign CS6なタグ付きテキストのドキュメントって、Webでも転がってますか?
ぱっと見つかるのはCS5なんですよね。

http://help.adobe.com/ja_JP/indesign/cs/taggedtext/indesign_cs5_taggedtext.pdf

電話でご相談させていただいたInDesign CS6の導入はOKが出たのです。
まだ届いていないのでCS3からいつ移行するか(移行しないもあり得る)はなんともなんですけど、CS6も視野に入れてこれらの件も進めたいと思っております。

@n-yuji
Copy link

n-yuji commented Mar 11, 2014

@inao さん、タグ付きテキストのドキュメントはCS5のものしか見当たらないようです。
動作の確認はCS6でもやりました。
タグ付きテキストに関してはバージョン差は少ないと思いますが、予想外の不具合が潜んでるかもしれないので、注意しないといけません。

@inao
Copy link
Collaborator

inao commented Mar 11, 2014

CS6のものはまだないっぽいんですね。
さっそくのお返事ありがとうございました。

@d-ikeda
Copy link
Collaborator

d-ikeda commented Mar 12, 2014

現在の原稿をUTFにしたときにどのくらい変換できないものがあるのか調べてみました。

https://www.dropbox.com/sh/wm56xzvy3ln4uch/qotSKTE1wF

  • x_input.txt:利用したmarkdownテキスト
  • UTF8testAllSjis.pdf:SJISで変換したInDesign出力
  • UTF8testAllUTF.pdf:UTFで変換したInDesign出力

ほとんどそのまま変換できているのですが、やはりUnicode番号で指定しているところが変換できないようです。
この変換できない部分を昨日の形に修正していけば、UTF対応はできそうな感じです。UTF化できそう/難しそうなどの参考になれば幸いです。

gfx added a commit that referenced this issue May 9, 2014
Shift_JIS非対応文字を追加した。 #30 が解決すれば、これらの追加は不要になります
@inao inao added the high label May 13, 2014
@inao
Copy link
Collaborator

inao commented May 13, 2014

ラベルはhighとさせていただきました。

現在は、UTF-8で書かれている原稿を、md2inao適用後にShift-JISに変換する必要があるため、Shift-JISでは使えない文字を #69 のように<005C>のようなUnicode番号に変換する必要があります。
このIssueを実装していただくと、その必要がなくなります。

ご執筆者にとっても、現状は黒丸数字は(d1)などで書いていただいていますが、これらの文字をそのまま書けるようになります。

UTF-16の場合Web版での動作が問題になりますが、ブラウザ上に変換結果(InDesignテキスト)が表示されなくても大丈夫です。ダウンロードして確認できれば問題ありません。

ただ、Web版ではブラウザに警告は出力していただきたいです。
また、上述したように、「現状のように1つ前に選択したテキストファイルを保持しておいていただけると、すごく助かります。」

@naoya naoya removed their assignment Jun 3, 2014
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

5 participants