Control the color of characters' inside separately from their contour (text function)

15 views (last 30 days)
When using the `text` function, by changing the colour of the font one only changes the face (inside) colour. Is there a way to also control the colour of the edge (contour) of the letter? I found no information about this in the Matlab (2016) documentation or on forums.

Accepted Answer

Adam Danz
Adam Danz on 29 Aug 2020
Edited: Adam Danz on 29 Aug 2020
No, there is no text-edge property.
You can change the background color ('BackgroundColor') of the rectangle that frames the text object and the text color ('Color') but the text does not have a separate edge property.
You might be able to find a font that has a black border and white interior or something like that (example).
You can kind of get a text-edge effect by plotting the same exact text twice and....
  • use bold font weight with the first and normal font weight with the second
  • use a fixed-width font to preserve the letter spacing
  • use identical font size, text position, and text alignment
but that's the closest you can get without converting text to patch objects or using some other non-text function.
clf()
arch = ['Stand away, fellow,',newline,'from my diagram!'];
text(.2, .5, arch, 'Color', 'b', 'FontName', 'Consolas', 'FontSize', 18, 'FontWeight', 'bold');
text(.2, .5, arch, 'Color', 'r', 'FontName', 'Consolas', 'FontSize', 18);

More Answers (0)

Categories

Find more on Graphics Object Properties in Help Center and File Exchange

Products


Release

R2016b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!