Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

What I want to do is temporarily switch one particular font to another, and switch it back afterwards. This will allow me to see a desired font in any games or softwares. I am wondering if thing like this exists, or is programmatically possible.

share|improve this question
1  
Just a caveat, not all fonts are the same size, so if you do find a way to change fonts like that, it may really screw up the in-game UI. Or in-program, for that matter. –  SaintWacko Dec 6 '11 at 16:34

3 Answers 3

If you're wanting to be able to set all fonts system-wide (including within applications like games) to one particular font or font family, then the answer unfortunately is no, it's not possible.

Every program, from document viewers to browsers to games, have their own font setups, and even the ones that do allow you to customize this have limitations on the types (file formats) of fonts that can be used. Not to mention, such programs usually rely on internal settings to set the default fonts.

Lots of other applications rely on built-in fonts that are in proprietary formats, and lots of times (especially in games) when you're looking at a menu or something with text, you're actually looking at a rendered image of text (so that effects can be rendered over the text like complicated highlights or transition effects). So there's no way to change those fonts without swapping out the images themselves.

Sorry this isn't a more satisfying answer.

share|improve this answer
    
thanks, but for this particular one I am pretty sure it is from system font folder. And I only want one particular font to switch to another one, temporarily. Theoretically I can go to dos mode, rename font1 to font1.old, and make a copy of font2 to font1. –  lulalala Dec 13 '11 at 1:56

I do not believe one can switch fonts that way.

A font file contains lots of meta-information that is used by Windows/Linux for finding the font that best matches the font requested by the program.

There is no way of transferring that meta-information from one font to another. One would have to merge the two font files into a new font : meta-information from the one and glyphs from the other, with corrections for character dimensions, kerning and other info. In other words: Create a false font that answers to the same characteristics as the real one but uses other glyphs, then rename the real font and replace it by the new.

The effort involved is comparable to that of creating the new font yourself, which is a big job. See Create Your Own Font.

share|improve this answer
up vote 3 down vote accepted

It is possible.

First, it can be done globally, by setting the font substitutes in Windows registry. Here is the Microsoft document. Basically you go to HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\FontSubstitutes and add a string entry. The key being original font, and value being the font name you wish to change to. After restarting it will work. I tested this under Vista.

Second, there is also an easier non-global solution called GDI++, which allows you to writing these settings in its gdi++.ini config file like this:

[FontSubstitutes]
Courier New=Arial

After that you drag the program executable onto that gdi++.exe and it will run as replaced. Sometimes it won't work, probably because the target program uses its own rendering methods.

Then I recommend using MacType. It is derived from GDI++ below. It is a bit complex, but provide good UI for switching/setting profiles. There is a font switching in the profile config. Enable the setting and set the substitutes and it can work on programs properly.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.