2011-08-16 3 views
7

के साथ टर्मिनल फ़ॉन्ट आकार बदलें मैं सी ++ (उबंटू 11.04 में) में मज़े के लिए एक छोटी परियोजना कर रहा हूं और कार्यक्रम टेक्स्ट-आधारित (सभी जीनोम टर्मिनल में) है। मैं फ़ॉन्ट रंग बदलने के लिए ncurses लाइब्रेरी का उपयोग कर रहा हूं, लेकिन मैं टर्मिनल पर अलग-अलग आकार के टेक्स्ट को प्रिंट करना चाहता हूं, और यह पता नहीं लगा सकता कि एनसीआरएसईएस के साथ ऐसा कैसे किया जाए। क्या ऐसा करने का कोई तरीका है (शायद ncurses के साथ, या एक अलग पुस्तकालय के साथ)? आदर्श रूप से, मैं चाहता हूं कि यह टर्मिनल-स्वतंत्र हो, लेकिन यदि यह एक ऐसा समाधान है जो केवल जीनोम में काम करता है, या केवल उबंटू में काम करता है, या ऐसा कुछ अन्य प्रतिबंध है तो यह कुछ भी नहीं है!सी ++

हमेशा आपकी सहायता के लिए धन्यवाद।


मैं कीथ थॉम्पसन से सुझाव की कोशिश की है, लेकिन यह काम करने के लिए नहीं मिल सका। यहां मेरा कोड है:

cout << "\x1b]50;" << "10x20" << "\a" << flush; 
cout << "test"; 

यह टर्मिनल वरीयताओं में निर्दिष्ट एक ही फ़ॉन्ट आकार के रूप में दिखाई देता है। मैं उपयोग कर रहा हूँ: गनोम टर्मिनल 2.32.1 अगर यह मदद करता है!

उत्तर

7

कम से कम xterm के लिए, आप एक मौजूदा अनुक्रम को प्रिंट करके वर्तमान फ़ॉन्ट बदल सकते हैं। वाक्यविन्यास ESCAPE ] 50 ; FONTNAME BEL है।

यहां एक स्क्रिप्ट का एक संक्षिप्त संस्करण है जिसका मैं उपयोग करता हूं; मैं फोन यह xfont (असली एक और त्रुटि जाँच है):

#!/usr/bin/perl 

use strict; 
use warnings; 

print "\e]50;@ARGV\a"; 

मैं नहीं जानता कि जो अन्य टर्मिनल emulators इस क्रम को पहचानते हैं। विशेष रूप से, मुझे लगता है कि यह screen के तहत काम नहीं करता है, भले ही screen सत्र xterm विंडो में है।

नोट आप नाम फ़ॉन्ट का ("10x20", "9x15"), नहीं इसके आकार निर्दिष्ट करने के लिए है।

संपादित करें: मुझे टैग पर अधिक ध्यान देना चाहिए। सी ++ में, यह कुछ ऐसा होगा:

std::cout << "\x1b]50;" << font_name << "\a" << std::flush; 
+0

आपके त्वरित उत्तर के लिए धन्यवाद। आपका जवाब वादाजनक लग रहा था, लेकिन मैं इसे काम नहीं कर सकता: /। शायद मुझे कुछ बुनियादी याद आ रहा है। – navr91

+0

शायद जीनोम टर्मिनल एक ही भागने अनुक्रम को पहचान नहीं करता है। एक xterm विंडो ('xterm &') लॉन्च करने का प्रयास करें और इसे वहां से आज़माएं। उपलब्ध फ़ॉन्ट्स की सूची के लिए 'xlsfonts' चलाएं (मेरे सिस्टम पर कई हजार हैं)। या 'xlsfonts | egrep '^ [0-9] + x [0-9] + $' 'WIDTHxHEIGHT फ़ॉन्ट नामों की एक सूची के लिए (मेरे पास उनमें से 14 हैं)। यदि यह xterm में काम करता है लेकिन जीनोम टर्मिनल में नहीं, तो एक जीनोम-विशिष्ट समाधान हो। (या यह संभव नहीं हो सकता है; यदि जीनोम ने इस कार्यक्षमता को लागू किया है, तो मैं उम्मीद करता हूं कि यह उसी वाक्यविन्यास को 'xterm'' के रूप में उपयोग करे।) –

+0

मैं इसे xterm में काम करने के लिए नहीं मिला: /। मैंने आपके पर्ल उदाहरण की भी कोशिश की: 'प्रिंट" \ e] 50; 10x20 \ a "; प्रिंट "परीक्षण"; 'और फ़ॉन्ट gnome और xterm में एक ही आकार था। शायद यह कुछ ऐसा है जो हाल ही में बदल गया है। आप अपने एक्सफॉन्ट सिस्टम को किस ओएस/टर्मिनल पर चलाते हैं? – navr91

1

बोल्ड फ़ॉन्ट का उपयोग करने के लिए आप सबसे अच्छा कर सकते हैं। टर्मिनल वास्तविक पाठ-आधारित टर्मिनल को अनुकरण करता है, इसलिए यह एक ही समय में विभिन्न फ़ॉन्ट्स का समर्थन नहीं करता है।