15

In Word, how can we make bold text (such as by pressing Ctrl+B/the B button) use the bold variant of a differently named font from that of the non-bold font?

We're using the Light weight of the Open Sans font. Marking some text as bold makes Microsoft Word use what looks like a synthetic automatically boldified version of the Light weight, rather than the Bold weight. How can we make it use the actual Bold weight?

Open Sans comes in lots of weights; we have them all installed.

However in Word the Light weight shows up as a distinct typeface called ‘Open Sans Light’. The typeface called ‘Open Sans’ just has the Regular and Bold weights.

Obviously the font showing up as ‘Open Sans Light’ doesn't have a bold weight. How can we tell Word that when it's emboldening something in Open Sans Light it should use the Bold weight from Open Sans?

Alternatively, is there a way of installing a duplicate of Open Sans Bold as Open Sans Light Bold, such that Word will find it and automatically do the right thing?

We want to set up a template document such that all users in the organization can easily follow the house style and get the right fonts in all our documents, without them needing to know anything about how that's implemented. Thanks.

2
  • 1
    Wouldn't 'Open Sans' be the bolder form of 'Open Sans Light'? (seeing as 'Open Sans Bold' is the bolder form of 'Open Sans'.)
    – Andi Mohr
    Commented Apr 4, 2013 at 17:07
  • 1
    @AndiMohr: Certainly Regular is bolder than Light, so those two might work well together. I happen to want the contrast between Light and Bold in this document. But the question is basically the same either way.
    – Smylers
    Commented Apr 4, 2013 at 21:09

6 Answers 6

8
+50

Rather than implement a macro/macros in Word (as prior answers have suggested) you can create duplicate copies of the Bold and Bold/Italic versions of 'Open Sans' and edit them such that they become part of the 'Open Sans Light' family.

Basically, you just:

  1. Create new copies of the Open Sans Bold and Open Sans Bold Italic font files, naming the filename appropriately.
  2. Edit the new font file(s) using (for example) typograf, to change the font family and font name to be correct for 'Open Sans Light'.

Now distribute/install the new font variants in the same way as you would with any other font file, and Word (and any other application) will now see them correctly.

1
  • 1
    Thanks. This is what I went for. I used FontForge on Ubuntu Linux to edit the fonts, and they've been working perfectly.
    – Smylers
    Commented Apr 19, 2016 at 16:52
4

This isn't too difficult - set the font for the Strong style to Open Sans Bold.

See the screengrabs below showing the same thing with Eras Light/Eras Bold.

Style Menu

Set Strong Style

To apply this to all instances of bold text automatically without your users needing to specify the Strong style or manually run a find and replace, consider macro-enabling the file (save as .docm) and adding the following code to ThisWorkbook area in the Visual Basic Editor (press Alt+F11 to access the VBE).

Private Sub Document_Close()
   Selection.Find.ClearFormatting
   Selection.Find.Font.Bold = True
   Selection.Find.Replacement.ClearFormatting
   Selection.Find.Replacement.Style = ActiveDocument.Styles("Strong")
   With Selection.Find
      .Text = ""
      .Replacement.Text = ""
      .Forward = True
      .Wrap = wdFindContinue
      .Format = True
      .MatchCase = False
      .MatchWholeWord = False
      .MatchWildcards = False
      .MatchSoundsLike = False
      .MatchAllWordForms = False
   End With
   Selection.Find.Execute Replace:=wdReplaceAll
End Sub

This will run the find and replace when your users save and quit.

7
  • I haven't been able to get that to work. After redefining the Strong style, pressing Ctrl+B (or clicking the B icon) still uses the synthetic bold. Any idea what I could be doing wrong? (Explicitly using the Strong style does of course use the desired font.)
    – Smylers
    Commented Apr 8, 2013 at 13:22
  • Sorry yes, good point. See also swref's answer here: superuser.com/questions/45670/auto-applying-a-style-in-word. Doesn't auto-apply the format I'm afraid, but makes it easy to update all instances of bold formatting.
    – Andi Mohr
    Commented Apr 8, 2013 at 16:36
  • 2
    Unfortunately I don't think it's realistic to expect all our users to have to run a ‘fix up bold’ step whenever they finish editing a document.
    – Smylers
    Commented Apr 9, 2013 at 15:20
  • Ah ok sorry that won't work then. Didn't realise this was for wider distribution.
    – Andi Mohr
    Commented Apr 10, 2013 at 9:24
  • In that case how about if you apply the find and replace automatically via VBA whenever the document is closed? The user will see the awkwardly bolded text while editing, but once the document is closed and re-opened, the Strong style will have been applied. I'll add the code to my answer.
    – Andi Mohr
    Commented Apr 10, 2013 at 9:24
2

This is a very important task because you should ALWAYS try to use the Bold, Italics, or Bold Italics styles designed by the authors instead of the ones artificially created by the program. It makes a world of a difference in terms of quality and professionalism.

The easiest way to do this is to use the open-source program, fontforge. The following are the instruction:

  1. Install fontforge from https://fontforge.github.io/en-US/. Open fontforge.

  2. Under File, select Open, find, and click open one of the 4 files that you have selected that will represent your Regular style, Italics style, Bold style, and Bold Ialics style. A typographic diagram will appear.

  3. Select Font Info... Under the Element tab. Another diagram will appear.

  4. On the left side, there will be numerous categories. You are going to be changing the information in 3 of these categories: PS Names, OS/2, and TTF Names. Go to each categories and make sure that the Family Name and Style is correct. For example, if the Family Name states that it is Arial Bold, this is incorrect. The Family Name should simply be Arial. You'll need to erase Bold. Another example is the Style will state that it is Regular when it's actually Bold. You'll have to correct that. You need to make sure that the Family Name is EXACTLY the same for all 4 files. You also need to make sure that correct style is written wherever a slot for it appears.

  5. After you make sure that all the info is correct in those 3 categories to the left, you click OK.

  6. You now click the File tab and choose Generate Fonts...

  7. Save the files with the same name you opened the files with. The program will ask if it's ok to replace the file. Say yes.

  8. Do steps 3-7 for the 3 other style font files, making sure all the information is correct.

  9. Go back to the 4 font files that you altered, right click each one, and select Install. (Replace the old font files when asked.)

Now, everything should work. When you open a program like Microsoft Word, the font will appear under one file name (the font family name). When you select that font in the document and press Control+B, the program will now show the Bold style of the font rather than the artificially boldened version.

If if doesn't work, you probably made a mistake entering one or more slots of information when you were supposed to. It has happened to me countless of times. I go back and realize that the style name is not correct. Eventually, everything will be correct and everything will work to perfection!

1
  • Yep, this is precisely what I did — see the accepted answer, and my comment underneath it mentioning FontForge. Thank you for explaining the steps in detail for anybody else who encounters this.
    – Smylers
    Commented Aug 31, 2019 at 4:51
1

Create the following macro:

Sub ChangeBold()  
  If Selection.Font.bold = False Then
    If Selection.Font.Name = "Open Sans Light" Then
      Selection.Font.Name = "Open Sans"
      Selection.Font.bold = wdToggle
    Else
      Selection.Font.bold = wdToggle
    End If
  Else
    If Selection.Font.Name = "Open Sans" Then
      Selection.Font.Name = "Open Sans Light"
      Selection.Font.bold = wdToggle
    Else
      Selection.Font.bold = wdToggle
    End If
  End If
End Sub

Now change the keyboard shortcut Ctrl + B:

  1. click the File tab
  2. click Options
  3. click the Customize Ribbon tab
  4. in the Customize the Ribbon and keyboard shortcuts pane, click Customize
  5. in the Save changes in box, select Normal to save it to the standard template
  6. in the Categories box, click Start
  7. in the Commands box, click Bold
  8. click on Ctrl+B in the Current keys box
  9. click on Remove
  10. in the Categories box, click Macros
  11. in the Macros box, click the macro that you created (ChangeBold)
  12. in the Press new shortcut key box, type Ctrl+B
  13. in the Save changes in box, select Normal to save it to the standard template
  14. click on Assign

You can't replace the function of the B icon, but you can add the macro to the ribbon menu:

  1. right click the ribbon and select Customize the ribbon
  2. select Macros in the Choose command from drop down list
  3. select Home in the right side tree view and click New Group
  4. rename New Group to Custom Macros using the Rename button
  5. drag the macro item into the new group
  6. rename the new macro button
  7. click OK to save the changes
4
  • Thank you for that. Unfortunately I think that it only works for Ctrl+B and only for already-typed text would be more awkward for our users to remember than ‘don't use bold; use the “Strong” style instead’.
    – Smylers
    Commented Apr 9, 2013 at 15:21
  • @Smylers you could as well remove the B from the ribbon and replace it with the macro. Change the macro in a way, that it changes as well the used font. Like that it works as well for unwritten text. If you go this way, you would have to make as well a macro to "unbold" the text.
    – Simon
    Commented Apr 9, 2013 at 15:36
  • @Smylers I changed my answer to fit your needs. I hope it helps!
    – Simon
    Commented Apr 11, 2013 at 7:30
  • Unfortunately that still doesn't quite cover all ways in which a user could insert bold text — for instance, pasting text which has bold parts in it.
    – Smylers
    Commented Apr 19, 2016 at 16:41
0

When you've finished your document, use advanced find and replace to replace bold text with the right font. Advanced Find and Replace Formatting Replace: font style is Bold with Font is Open Sans Regular and Bold Replace all.

1
  • 1
    That would work fine for a single document. Unfortunately it isn't realistic to expect all users in the organization (of varying technical abilities) to do this every time they create or edit a document, and it'd be considerably more hassle for them than not having to think about this at all, as per the accepted answer.
    – Smylers
    Commented Apr 15, 2016 at 16:02
0

Just gonna post my solution to the problem, seems pretty similar to the other answers, however. Here ya go.

Also, sorry not sorry for not letting the thread die in peace.

How to record the macro:

  1. Go to View, or in Swedish word "Visa".
  2. Look for the button "Macros" or "Makron"
  3. Click the drop down arrow and click record macro. Name it and select keyboard, if you want to record any short-cuts. (I use CMD + B and CTRL + B on my mac, as this doesn't change how other fonts behave.)
  4. Just click OK. You don't have to do anything in the document, just stop the recording right after.
  5. Click the drop down arrow again, and go to the macro screen probably something like "show macros".
  6. Select the Macro you just recorded and click "Edit" or "redigera"
  7. Paste the following VBA code in the window that pops open. The text has to be under "Sub Macro name" and over "End Sub".
  8. Save and you're good to go. Now you should be able to bold and unbold any font with your own specified font.

PASTE THIS:

   Dim fontNameLight As String
    fontNameLight = "Hiragino Mincho Pro W3" '<- Put your Light font inside the citation marks

   Dim fontNameBold As String
    fontNameBold = "Hiragino Mincho Pro W6" '<- Same thing but for your bold font

   If Selection.font.Name = fontNameLight Then
    Selection.font.Name = fontNameBold
   Else
    If Selection.font.Name = fontNameBold Then
        Selection.font.Name = fontNameLight
    Else
     Selection.font.Bold = wdToggle
    End If
   End If

Hope it works out for anyone looking.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .