Saya membaca halaman manual untuk gdb dan saya menemukan baris:
You can use GDB to debug programs written in C, C@t{++}, Fortran and Modula-2.
C @ t {++} terlihat seperti regex tapi sepertinya saya tidak bisa mendekodekannya.
Apa artinya?
man
documentation
gdb
sam
sumber
sumber
++
entah bagaimanaC\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
Jawaban:
GNU membenci halaman manual, jadi mereka biasanya menulis dokumentasi dalam format lain dan menghasilkan halaman manual dari itu, tanpa benar-benar peduli jika hasilnya dapat digunakan.
C@t{++}
adalah beberapa markup texinfo yang tidak diterjemahkan. Itu tidak dimaksudkan untuk menjadi bagian dari dokumentasi yang dapat dilihat pengguna. Seharusnya hanya mengatakanC++
(mungkin dengan beberapa font khusus untuk++
membuatnya terlihat bagus).sumber
Urutannya
@t{...}
adalah texinfo markup untuk mengeset urutan menggunakan font tetap-lebar (lihat bagian Font dari manual texinfo untuk detail lebih lanjut dan beberapa contoh.)Sepertinya mereka mencoba untuk menulis "C ++" dan memiliki "++" menggunakan font dengan lebar tetap (seperti "
++
".) Mungkin seseorang menemukan bahwa menghasilkan hasil yang lebih baik dengan font tertentu saat merender dokumentasi dalam PostScript atau PDF atau beberapa format yang menggunakan font dengan lebar variabel secara default.Alasan mengapa ini tampaknya tidak berhasil dan Anda melihat urutan yang tidak diproses adalah bahwa texinfo digunakan oleh
info
sistem dokumentasi, sementaraman
menggunakan nroff yang merupakan bahasa yang berbeda dengan perintah yang berbeda (misalnya, perintah untuk beralih ke konstanta font lebar di nroff adalah\f(CW
), jadi tentu saja tidak mengenali@t{...}
urutan tidak berubah.Masalah ini tampaknya telah diperkenalkan dalam komitmen sejak April 2013 di mana halaman manual dikonversi ke texinfo dan bahwa markup spesifik diperkenalkan. Tampaknya skrip yang sekarang digunakan untuk menghasilkan halaman manual (
texi2man.pl
) tidak mengenali atau mengonversi urutan itu dengan benar.sumber
pod2man
menyediakan makro roff untuk "a lebih bagus C ++" yang tidak digunakan karena kode pengenalannya hanya cocok untuk string "C ++".C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
ekspansi troff dari seorang labbie di Murray Hill selama penginjilan awal bahasa C ++ ketika kami sedang menyusun proses USENIX untuk acara C ++ awal itu. Laboratorium itu cukup serius tentang truf mereka. :)