windows
やlinux
、OS /プラットフォーム名を検出するためのインターフェースを追加することを検討してください。
たとえば、 ctex
パッケージは\ctex_detected_platform:
実装しています
我々は持っている\sys_if_platform_(unix|windows):(pTF)
と\c_sys_platform_str
でl3candidates
:彼らはあなたのために働くのですか?
fontspec
などは動作が異なる可能性があるため、macosもテストしてください。
これは、macOSで「標準」ファイルを探すだけで実行されるので、write18は必要なく、非常に高速である必要があります。 私からの異議はありません。 ジョセフはどう思いますか?
GitHawkで送信
ご参考まで:
/Library/Fonts/Songti.ttc
(中国語フォント)はmacOS 10.9(Mavericks)以降に存在します。/Library/Fonts/Songti.ttc
の存在テストは、macOS10.6-10.8では失敗します。/System/Library/Fonts/Palatino.ttc
/System/Library/Fonts/Menlo.ttc
)。余分な詳細をありがとう! パラティーノのテストはかなり安全な賭けのように聞こえます。
これは既存のコードでカバーされていますか? 厩舎への移行を検討するようにお願いしていますか?
リクエストは\ sys_if_platform_ macos:pTF (または同様のもの)にも
ご参考まで:
申し訳ありませんが、 /System/Library/Fonts/Palatino.ttc
は10.9 Mavericks以降に存在します(10.8 Mountain Lion以前の場合は、代わりに/Library/Fonts/Palatino.ttc
た)。
10.6 SnowLeopardから10.14Mojaveまで、 /System/Library/Fonts/Menlo.ttc
常に存在します。 これは、より安全なテストになる可能性があります。
私の「TeXバナー」プランは機能しますか? プリミティブをソート((u)pTeX / XeTeX)するために少し作業する必要がありますが、それは明示的なOSの詳細を見つけるための明白な場所です。
現在のTeXバナーには、必ずしもプラットフォーム名が含まれているとは限りません。
pdfTeXでは、Debianビルドが(TeX Live 2018/debian)
を提供し、Win32ビルドが(TeX Live 2018/W32TeX)
を提供することを確認しましたが、他のビルドには文字列が含まれていません。
e-(u)pTeXの場合、バナープリミティブの実装候補がすでにあります: //github.com/texjporg/tex-jp-build/compare/banner
残りの問題は、その名前(\ epTeXbanner、\ eptexbanner、vs。\ enginebannerのようなより一般的なもの?)と必要性です。
@aminophenそうですね、そのアプローチではうまくいかないようです
基本システムフォントのようなものは、OSXのようなものの十分な指標となる可能性がありますが、一方で、将来のバージョンまたは地域のバリアントにそれがないという危険性が常にあります。 どういうわけか、エンジンが代わりにその情報を提供していれば、それほど難しいことではないように思えます(提供するものについて合意が得られれば)
@FrankMittelbachあなたは\platformname
ようなものをプリミティブとして考えていますか? おそらくTLリストで取り上げる人はいますか?
@josephwrightはい、エンジン全体で結果が定義されているようなものです。そのため、すべてが同じプラットフォームで同じ値を報告します(また、一般的でない/標準化されていないプラットフォームでは「不明」である可能性があります)。
@FrankMittelbachは、システムに依存する癖で推測しようとするよりも間違いなく優れています。 関連するCシステムコールは非常に使いやすいはずです。
ただグーグル、私はこれを見つけました: https :
その機能が実際にすべてのプラットフォームで利用できるかどうかはわかりません。 また、返された「sysname」の完全なリストについてはわかりません。
-とにかく、エンジンレベルの追加を提案することを選択した場合、これがアーキテクチャ情報に関する最後の提案であることを願っています。 つまり、将来の提案(32/64ビットの検出やOSリビジョンの検出など)の可能性がある場合は、ここでも提起する必要があります。 さまざまなプラットフォームでのテストは通常難しいため、私は時々そのような新しいプリミティブを追加することにあまり慣れていません。
現在、 expl3
で合理的に可能な限り多くのことをカバーしていると思います。フォントビジネスは、専用のコードで処理する必要があります。
@josephwright申し訳ありませんが、これに戻る/System/Library/Fonts/Menlo.ttc
をテストするのが非常に安全です。 それは長い間そこにあったので、古いプラットフォームで動作します。 これはOSのコア部分であるため、消える可能性は非常に低く、リージョンのインストール全体で堅牢である必要があります。 他のプラットフォームで複製される可能性が低いパスにあります。 フォントファイルMenlo.ttc
自体AFAIKは、サードパーティの方法では使用できません。
このテストを追加することを提案します。発生する可能性のある最悪の事態は、それがある程度使用され、いくつかのエッジケースがあることが判明した場合、プリミティブなどを介してより堅牢なOS検出を調査できます。 必要に応じて、このブランチを追加できますか?
@wspr MacOSには\sys_if_platform_unix:(TF)
を分割するだけの計画ですか? または、別の\sys_if_platform_macos:(TF)
テストが必要ですか? 私は両方のアプローチの論理を見ることができます。
@josephwright 「
@wspr WSLを確認しました:「 unix
」を報告します。
現在、 \c_sys_platform_str
がありますが、 windows
またはunix
ます:MacOSで変更しますか?
5/6/19 10:37に、ジョセフライトは次のように書いています。
@wspr https://github.com/wspr WSLを確認しました:「| unix |」と報告されます。
現在、| \ c_sys_platform_str |があります whicは| windows |になりますまた
| unix |:MacOSで変更しますか?
これは基本的に\ sys_if_engine_ luatex:TFと同じ質問です
\ c_sys_engine_str他の問題で発生しました。
\ c_sys_engine_strと\ c_sys_platform_strを具体的にすることをお勧めします
可能な限り(理由の範囲内で、バージョンなどを含まない)、しかし
いくつかの\ sys_if_engine _...と\ sys_if_platform _...をtrueにすることができます。
私の意見は強く保持されていません。
ブルーノに同意します...
macOS Catalina(10.15)では、 Songti.ttc
と他の多くのフォントが/System/Library/Fonts/Supplemental/
移動されていることに注意してください。
最も参考になるコメント
リクエストは\ sys_if_platform_ macos:pTF (または同様のもの)にも