11

I'm just starting out with Mathematica and I'm using MathematicaScript rather than the GUI. However, I'm having trouble formatting a list when printing it.

Suppose I have a list and I want to print it using Column:

list = {a, b, c};
Print[Column[list]];

Calling this outputs Column[{a, b, c}] rather than

a
b
c

I suspect that this is because I'm running Mathematica in script mode. Is there anything I can do to display a list like this? How can I verify what the cause of my problem is from the documentation (I'm having trouble running the GUI)? The documentation doesn't say anything about Column only working in GUI mode.

I assume that the answer to getting a list (if there is one) to display as a column will explain how to do the same for a grid with 2D lists.

rm -rf
  • 88,781
  • 21
  • 293
  • 472
Brandon Amos
  • 389
  • 1
  • 10

2 Answers2

10

You can force the Column to display correctly in text-only script mode by passing it explicitly to OutputForm. For example:

#!/Applications/Mathematica.app/Contents/MacOS/MathematicaScript -script
list = {a, b, c};
Print[Column[list] // OutputForm];

gives the output you expect:

a
b
c
F'x
  • 10,817
  • 3
  • 52
  • 92
0

The answer by F'x does not work for me ("12.1.1 for Linux x86 (64-bit) (June 19, 2020)"). The following does work: Simply include

SetOptions[ $Output, FormatType -> OutputForm ];

at the start of your script so that all output gets displayed in OutputForm. (See https://mathematica.stackexchange.com/a/651/45020)

Kvothe
  • 4,419
  • 9
  • 28