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

13 views (last 30 days)
z8080 on 29 Aug 2020
Commented: z8080 on 29 Aug 2020
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.
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)




Community Treasure Hunt

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

Start Hunting!