We haven't yet quite zeroed-in on the underlying issue yet, but here is what I think is happening, and while we correct it for the next beta version of Rainmeter, here is how you can address it:
What we are seeing is that if you use an "external" font, one that isn't installed in Windows, but used by putting it it @Resources\Fonts in your skin root config folder, there is an anomaly:
If you define that font face for the entire string, either with a FontFace option on the meter, or with an InlineSetting
N=Face option where you either define the matching InlinePattern
N as the entire string, or leave the InlinePattern
N off entirely, which defaults to the entire string, then you can't subsequently change the font to something else in that string with another InlineSetting
N=Face option.
Once an
entire string is defined as using an "external" font, it can't be changed.
For these examples, I have put the font "Fira Sans" into my @Resources\Fonts folder. The font is not installed in Windows.
Code: Select all
[MeterTest]
Meter=String
FontFace=Fira Sans
FontColor=255,255,255,255
SolidColor=0,0,0,1
FontSize=17
Text=String 1 : String 2
InlineSetting=Face | Segoe Script
InlinePattern=.*:(.*)
AntiAlias=1
This won't work, as the entire string is defined with Fira Sans, and can't be changed inline.
Code: Select all
[MeterTest]
Meter=String
FontColor=255,255,255,255
SolidColor=0,0,0,1
FontSize=17
Text=String 1 : String 2
InlineSetting=Face | Fira Sans
InlinePattern=^.*$
InlineSetting2=Face | Segoe Script
InlinePattern2=.*:(.*)
AntiAlias=1
Also won't work, as InlinePattern defines the entire string, and we get the same results as with FontFace.
Code: Select all
[MeterTest]
Meter=String
FontColor=255,255,255,255
SolidColor=0,0,0,1
FontSize=17
Text=String 1 : String 2
InlineSetting=Face | Fira Sans
InlineSetting2=Face | Segoe Script
InlinePattern2=.*:(.*)
AntiAlias=1
Also won't work, as the missing InlinePattern defaults to the entire string, and the result is the same.
Code: Select all
[MeterTest]
Meter=String
FontColor=255,255,255,255
SolidColor=0,0,0,1
FontSize=17
Text=String 1 : String 2
InlineSetting=Face | Fira Sans
InlinePattern=(.*):.*
InlineSetting2=Face | Segoe Script
InlinePattern2=.*:(.*)
AntiAlias=1
This
works, since the part of the string using Fira Sans is explicitly defined as less than the entire string, and thus the second InlineSetting2 that changes the Face to Segoe Script works as expected.
Note that this is only an issue if the entire string is initially defined with an "external" font. If you use a font that is installed in Windows, then the behavior is entirely as expected.
Code: Select all
[MeterTest]
Meter=String
FontColor=255,255,255,255
SolidColor=0,0,0,1
FontSize=17
FontFace=Times New Roman
Text=String 1 : String 2
InlineSetting=Face | Segoe Script
InlinePattern=.*:(.*)
AntiAlias=1
This work fine, as Times New Roman is a font face installed in Windows.
Code: Select all
[MeterTest]
Meter=String
FontColor=255,255,255,255
SolidColor=0,0,0,1
FontSize=17
FontFace=Times New Roman
Text=String 1 : String 2
InlineSetting=Face | Fira Sans
InlinePattern=.*:(.*)
AntiAlias=1
This also works fine, as although Fira Sans is an "external" font, it is never defined as the face for the entire string.
This is clearly a bug, and although we will address it, it won't be generally available until we start the beta cycle for Rainmeter 4.3. I would suggest in the short to mid term, that you make changes to your code to avoid this issue.