I want to write a line of letters one by one, each with a different font colour and background. WriteString with stdout lets me write all the letters in the same line, but it can only be used with plain text. Is there any way to do the same but with coloured text? My best guess was to create a list with the coloured text and then join it with StringJoin, but it does not work. Yes, I am quite new to Mathematica.

So, I want to start with something like {A,B,C} and get ABC, with each letter with different color and background. Any ideas?

  • 1
    $\begingroup$ With lst = {Style["A", Red], Style["B", Blue], Style["C", Green]}; you can use Row[lst] or StringJoin[ToString[#, StandardForm] & /@ lst]? $\endgroup$
    – kglr
    May 9, 2018 at 17:32
  • $\begingroup$ @kglr yes, that solves it, thank you!! $\endgroup$
    – John
    May 9, 2018 at 17:49
  • $\begingroup$ John, posted the comment as an answer. Welcome to mma.se. $\endgroup$
    – kglr
    May 9, 2018 at 18:06

1 Answer 1

lst = {Style["A", 72, Red, Bold, Background -> Yellow], 
   Style["B", 72, Blue, Bold, Background -> Pink], 
   Style["C", 72, Black, Bold, Background -> Cyan]};

You can use

Row[lst] (* or *)
StringJoin[ToString[#, StandardForm] & /@ lst]

to get

enter image description here


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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