-
Notifications
You must be signed in to change notification settings - Fork 19
英文のみを含む半角カッコに関するv2.3.5でのBreaking Change #79
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
Comments
#78 はまだマージしてないので、意図してない変更ですね。
は元からあるような気がするので、他の正規表現で英語のみでもマッチするようになってしまったのかな? /cc @massongit |
- rx`(?:${japaneseRegExp})([\(\)])`
+ rx`(?:${japaneseRegExp}.*)([\(\)])`
|
📝 これが2.3.4でエラーにならないのは、中身じゃなくて |
とりあえず、次の文がエラーとならないように 2.3.5の変更をrevertした 2.3.6をリリースしました。
|
2.3.5で200か所以上出ていたエラーが2.3.6で出なくなることを確認しました。ありがとうございました。 |
どうも半角カッコが状況により許容されるという現在の挙動自体が想定外だったということみたいですが、個人的にはその挙動は便利に使っていましたので設定で残ると助かります…。InDesignとか使ってる一般書籍組版系の人は全角に問答無用で統一しがちな印象がありますが、LaTeXとか技術系で英文の多い組版をしている人は、ベースラインに合わせるために中身によって括弧を意図的に使い分けている人も多いと思います。 |
カッコの前後の空白を無くした状態で英文のみの半角カッコを用いるとエラーになりますが、これは意図した通りの挙動なのかが気になりました。 |
現在の実装は、括弧の中が日本語なら括弧も日本語の全角括弧にするというイメージで実装されていると思います。 なので
というルールであれば、互換性はありつつ意図した形になる気がします。
|
2.3.4までは以下のものが(意図的かどうかはともかく)エラーでしたが、今後はこれを許容するということでしょうか。
今まで大丈夫だったものをエラーにしているわけではありませんが、今までエラーだったものを許容しはじめるのもBreaking Changeにならないでしょうか。Wikipediaルールとしてはこれは誤りですし、普通の英文のルール的にもスペースを入れるのが当然ではあります。 「JTFガイド無関係だし本パッケージのスコープ外のことなので知ったこっちゃない、スペースがあるとエラーにならないという過去の挙動はあくまでバグだったのだ」という方針でもいいとは思いますし、うちでは別プラグインを立てて解決できると思いますが…。 |
この考え方も正しいと思いますが、バグ修正もすべてmajorアップデートしないといけなくなりますね。 このリンク先の話は英文におけるルールであって、 Wikipediaはこの辺でしょうか。
4.3.1.丸かっこ のルールの範囲外という話でした。
どう解決するのが適切だと思いますか? |
Wikipediaルールはこれです。
「内部が英文のみの場合半角カッコを許容する」という例外は、既にその時点でJTFから逸脱しているものですよね。それでもこの例外は現に有用だし、互換性の問題もあるから例外として残そう、という流れだと認識しています。であれば、JTFの例外部分の挙動をJTFに言及がないことを根拠に変更するというのは、妙ではないでしょうか。元より例外なので言及がないのは当然です。 要するに個人的には現状を認めて当面維持するのでいいと思うのですが、理想的には、4.3.1ルールを
もちろんJTF準拠を厳密にやるなら、「半角カッコが時々許容されること自体JTF的に全部『バグ』だった」と宣言して上記の (追記) まとめると以下のような感じです。
|
基本的にはルールは例外を許容するオプションを増やせる形として、オプションによってルールと関係していないルールを増やしてしまうのは避けています。 現在の実装は、次のような文に対して
そのため、次のような実装に変更したいです。
現在は もし、
と書いていたのは、4.3.1.丸かっこ() ではなく3.3. かっこ類と隣接する文字の間のスペースの有無 で扱うのが良いのではないでしょうか?という意図でした。 3.3 の原則では次のようになっています。
現在の 3.3 実装は、 が 半角かっこを見ていないので、半角かっこの前後のスペースを検知できていないのだと思います。 この3.3. かっこ類と隣接する文字の間のスペースの有無 の実装の変更と次のようなオプションを加える形はどうでしょうか?
まとめると次のようになります。
書いていて思い出してきたのですが、ルールの実装で日本語以外なら単純に無視するという例外になっていることが多いのは、 そのため、文が日本語なら( 関連:
|
概ね良い方針のように思いました。いくつか。
|
ありがとうございます。
はい。ただし
というエラーになっているので スペースを要求していると解釈するのは難しい気がしますね |
Uh oh!
There was an error while loading. Please reload this page.
2.3.4から2.3.5にアップグレードして急に大量のエラーが出始めたことで気付いたのですが、英文のみを含む半角カッコに対するエラー検出の挙動が(既に)2.3.5で変わってしまっているようです。2.3.4 までは内部が英文のみの場合は半角カッコが許容されていたのですが、2.3.5 以降ではカッコ内の内容に関わらず文章内に半角カッコが現れると問答無用でエラーとなっています。
多分 b8cdd16#diff-ec1c2f771587857e6319a869c62e2887R36 が原因のような気がします。
「中身が英文のみの場合は半角カッコ推奨/OK」というのは、そもそも2.3.4までの挙動がそれですし、例えばWikipediaのスタイルもそうなっているなど、JTFはともかく慣習的には現に比較的広く使われているルールだと認識しています。できれば「JTF的には問題ないからこのまま」ではなく、上記の2番目のような例は許容するように直していただけると個人的には助かります。
Ref: #78 / #76
The text was updated successfully, but these errors were encountered: