Latex3: \msg_term pesan tidak memberi tahu dari mana asalnya

Dibuat pada 11 Mei 2021  ·  12Komentar  ·  Sumber: latex3/latex3

Seperti yang ditunjukkan oleh MCE berikut, pesan \msg_term tidak memberi tahu dari mana asalnya (tidak seperti pesan \msg_warning ):

\begin{filecontents*}[overwrite]{mypackage.sty}
\ProvidesExplPackage
  {mypackage}
  {2021-05-11}
  {0.1}
  {
    My Nice package
  }
\NeedsTeXFormat{LaTeX2e}
%
\msg_new:nnn {mypackage} {Foo} {FOOBAR}
\msg_warning:nn {mypackage} {Foo}
\msg_term:nn {mypackage} {Foo}
\end{filecontents*}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\documentclass{article}
\usepackage{mypackage}
\begin{document}
\end{document}

menulis:

Paket mypackage Peringatan: FOOBAR

FOOBAR

sedangkan, untuk yang terakhir, orang bisa mengharapkan:

Paket mypackage Info: FOOBAR

decision-needed

Komentar yang paling membantu

Saya kira kedua itu tapi saya tidak berpikir kita benar-benar menginginkan sumbu kedua. kesalahan + peringatan harus selalu dilaporkan imho di terminal + log , hanya untuk info sepertinya benar-benar ada dua kelas info (hanya log) dan term-info.

Perhatikan bahwa memiliki sumbu terpisah akan sangat membantu, karena kami biasanya tidak ingin semua info tiba-tiba menjadi term-infos (yang Anda tetap dapat dengan memetakan info ke term-info) tetapi biasanya hanya beberapa info untuk juga selalu pergi ke terminal jadi saya akan mempertimbangkan untuk menambahkan kategori lebih lanjut terminfo dan beberapa \msg_terminfo:nn sehingga Anda dapat memperjelas niat Anda untuk perilaku default dalam kode tanpa perlu mengatur yang agak tersembunyi di pengaturan pesan .

Semua 12 komentar

Saya tidak terlalu akrab dengan l3msg , tetapi saya pikir ini adalah desain. Jika Anda menginginkan pesan "Info" itu dapat diperoleh dengan menggunakan \msg_info:nn (tetapi kemudian masuk ke log).

\msg_info:nn (tapi kemudian masuk ke log).

Itulah intinya: AFAICT, agak umum untuk melihat di terminal beberapa pesan Info yang dapat diidentifikasi dengan sempurna.

Keputusan desain di sini adalah bahwa sebagian besar pesan adalah kesalahan/peringatan/info, dan harus masuk ke terminal dan log. Dua fungsi 'tingkat bawah', \msg_term:nn dan \msg_log:nn , cukup khusus dan dimaksudkan untuk 'tidak berisik'.

sebagian besar pesan adalah kesalahan/peringatan/info, dan harus masuk ke terminal dan log.

Tapi tepatnya, pesan info hanya masuk ke log:

\msg_ info:nnnnnn {⟨module } {⟨message } {⟨arg satu } {⟨arg dua } {⟨arg tiga } {⟨arg empat }

Mengeluarkan modul⟩ informasi pesan⟩, meneruskan arg satu⟩ ke arg empat⟩ ke pembuatan teks
fungsi. Teks informasi ditambahkan ke file log.

@dbitouze Ah, maaf, ya: info hanya ada di log seperti yang Anda katakan. Tujuan dengan pesan 'mentah' adalah mereka lebih cenderung menjadi hal-hal tingkat yang sangat rendah di mana 'noise' tambahan tidak diperlukan. Sejujurnya kami belum benar-benar melihat mereka banyak digunakan 'di alam liar' - saya kira yang saya heran dengan melihat ke belakang adalah kasus penggunaan. (Untuk hal-hal tingkat yang sangat rendah, saya akan tetap menggunakan \iow_log:n / \iow_term:n .)

@josephwright Saya cenderung setuju bahwa "info" harus seperti "peringatan" dengan perbedaan yang tidak ditampilkan di terminal tetapi tidak mencatat hal-hal secara berbeda. Misalnya, peringatan biasanya diformat dengan linebreak eksplisit berdasarkan gagasan bahwa ada beberapa awalan "(modul)" pada baris berikut dan ketika saya mengubah grup dari peringatan menjadi info, saya pikir semua yang harus diubah adalah di mana ia muncul, bukan bagaimana .

@FrankMittelbach Itulah masalahnya: pertanyaannya adalah saya memikirkan \msg_log:nn , yang kurang (tidak) memformat. Bisa dibilang kita bisa drop \msg_log:nn dan \msg_term:nn , karena sebenarnya mereka agak di antara sistem pesan dan hanya membuang baris ke log.

Dua pertanyaan terpisah menjadi sedikit bercampur di sini.

  • Pesan yang diformat: saat ini kami memiliki kesalahan/peringatan/info, dengan yang terakhir
    hanya muncul di log. @dbitouze meminta pesan info muncul di
    terminal juga. Mungkin dia bisa mengklarifikasi kasus konkret di mana pesan seperti itu
    seharusnya tidak hanya menjadi pesan peringatan?

  • Pesan yang tidak diformat: \msg_ log:nn dan \msg_ term:nn. Saya tidak punya pendapat tentang
    apakah akan menyimpannya.

ok, saya jelas mendapatkan ujung tongkat yang salah dan membaca permintaan dengan salah. Dalam hal ini saya akan mengatakan seharusnya tidak ada perubahan dalam perilaku 2e normal (dan sistem perpesanan untuk 2e bahkan jika kita berada di sini dalam repo expl3)

@dbitouze meminta pesan info yang muncul di terminal juga. Mungkin dia bisa mengklarifikasi kasus konkret di mana pesan seperti itu seharusnya tidak hanya menjadi pesan peringatan?

Terkadang Anda ingin memberi tahu pengguna tentang sesuatu tetapi tidak membuatnya takut dengan peringatan.

Saya setuju dengan ini — secara konseptual saya pikir ada dua sumbu untuk pesan-pesan ini: di mana mereka muncul, dan seberapa parah mereka.

Katakanlah saya memiliki beberapa keluaran diagnostik (sedikit berguna tetapi tidak berguna) dari memproses beberapa hal, dan saya mengirimkannya ke file log secara default. Menampilkannya di konsol kadang-kadang mungkin menyenangkan (opsi pengguna "verbose") tetapi akan salah untuk menyebut hal-hal ini sebagai peringatan.

Saya kira kedua itu tapi saya tidak berpikir kita benar-benar menginginkan sumbu kedua. kesalahan + peringatan harus selalu dilaporkan imho di terminal + log , hanya untuk info sepertinya benar-benar ada dua kelas info (hanya log) dan term-info.

Perhatikan bahwa memiliki sumbu terpisah akan sangat membantu, karena kami biasanya tidak ingin semua info tiba-tiba menjadi term-infos (yang Anda tetap dapat dengan memetakan info ke term-info) tetapi biasanya hanya beberapa info untuk juga selalu pergi ke terminal jadi saya akan mempertimbangkan untuk menambahkan kategori lebih lanjut terminfo dan beberapa \msg_terminfo:nn sehingga Anda dapat memperjelas niat Anda untuk perilaku default dalam kode tanpa perlu mengatur yang agak tersembunyi di pengaturan pesan .

Apakah halaman ini membantu?
0 / 5 - 0 peringkat