Setidaknya untuk xterm , Anda dapat mengubah font saat ini dengan mencetak escape sequence. Sintaksnya adalah ESCAPE ] 50 ; FONTNAME BEL .
Ini (versi singkat dari) skrip yang saya gunakan untuk ini; Saya menyebutnya xfont (yang asli memiliki lebih banyak pemeriksaan kesalahan):
#!/usr/bin/perl
use strict;
use warnings;
print "\e]50;@ARGV\a";
Saya tidak tahu emulator terminal lain mana yang mengenali urutan ini. Secara khusus, saya menemukan bahwa itu tidak berfungsi di bawah screen , meskipun screen sesi dalam xterm jendela.
Perhatikan bahwa Anda harus menentukan nama font ("10x20" , "9x15" ), bukan ukurannya.
EDIT:Saya harus lebih memperhatikan tag. Di C++, itu akan menjadi seperti:
std::cout << "\x1b]50;" << font_name << "\a" << std::flush;
UPDATE:Dengan xterm , ini tidak akan berfungsi jika Anda menggunakan font TrueType. Juga, Dúthomhas menyarankan dalam komentar:
Saya tahu ini sudah tua, tetapi semua string terminfo harus dicetak menggunakan
putp()[atautputs()], bahkan di C++.
putp( (std::string{ "\33]50;" } + font_name + "\a").c_str() );
Yang terbaik yang dapat Anda lakukan adalah menggunakan huruf tebal. Terminal mengemulasi terminal berbasis teks nyata sehingga tidak mendukung font yang berbeda sekaligus.