# Pretty print matrix a la display

**URL:** <https://discourse.julialang.org/t/pretty-print-matrix-a-la-display/125590>\
**Category:** General Usage\
**Tags:** question\
**Created:** [February 5, 2025, 9:38pm UTC](https://discourse.julialang.org/t/pretty-print-matrix-a-la-display/125590 "2025-02-05T21:38:30Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![Markos\_Kapes](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/markos_kapes/32/215017_2.png) [@Markos\_Kapes](https://discourse.julialang.org/u/Markos_Kapes)\
**Post date:** [February 5, 2025, 9:38pm UTC](https://discourse.julialang.org/t/pretty-print-matrix-a-la-display/125590/1 "2025-02-05T21:38:30Z")

</div>

if I have a matrix a = [1 2; 3 4] is there a way to get the string that display() pretty prints like so?  
2×2 Matrix{Int64}:  
1 2  
3 4  
I’m wondering because I want to be able to embed a depiction of the matrix in Pluto markdown. I’m also open to another solution to the problem. Thanks.

---

<div class="post-metadata">

**Author:** ![nsajko](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/nsajko/32/221187_2.png) [@nsajko](https://discourse.julialang.org/u/nsajko)\
**Post date:** [February 5, 2025, 9:55pm UTC](https://discourse.julialang.org/t/pretty-print-matrix-a-la-display/125590/2 "2025-02-05T21:55:17Z")

</div>

> [@Markos\_Kapes](#):
>
> a = [1 2; 3 4]

You want `repr` with a MIME argument:

```julia-repl
julia> a = [1 2; 3 4]
2×2 Matrix{Int64}:
 1 2
 3 4

julia> repr("text/plain", a)
"2×2 Matrix{Int64}:\n 1 2\n 3 4"

```

---

<div class="post-metadata">

**Author:** ![Markos\_Kapes](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/markos_kapes/32/215017_2.png) [@Markos\_Kapes](https://discourse.julialang.org/u/Markos_Kapes)\
**Post date:** [February 6, 2025, 4:59pm UTC](https://discourse.julialang.org/t/pretty-print-matrix-a-la-display/125590/3 "2025-02-06T16:59:08Z")

</div>

Regrettably, the \n’s are returned as composite text, not newlines. Back to the drawing board.

---

<div class="post-metadata">

**Author:** ![mikmoore](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/mikmoore/32/31109_2.png) [@mikmoore](https://discourse.julialang.org/u/mikmoore)\
**Post date:** [February 6, 2025, 5:18pm UTC](https://discourse.julialang.org/t/pretty-print-matrix-a-la-display/125590/4 "2025-02-06T17:18:30Z")

</div>

Are you certain? I see

```julia-repl
julia> println(repr("text/plain", a))
2×2 Matrix{Int64}:
 1 2
 3 4

```

Perhaps you just need to `print` the string rather than `display` it?

If there’s a problem, consider using `replace` to make such substitutions. For example (going in the opposite direction of newline to backslash-n, since the original produced proper newlines for me):

```julia-repl
julia> println(replace(repr("text/plain", a), "\n" => raw"\n"))
2×2 Matrix{Int64}:\n 1 2\n 3 4

```

---

<div class="post-metadata">

**Author:** ![Nathan\_Boyer](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/nathan_boyer/32/14825_2.png) [@Nathan\_Boyer](https://discourse.julialang.org/u/Nathan_Boyer)\
**Post date:** [February 6, 2025, 6:24pm UTC](https://discourse.julialang.org/t/pretty-print-matrix-a-la-display/125590/5 "2025-02-06T18:24:15Z")

</div>

> [@Markos\_Kapes](#):
>
> embed a depiction of the matrix in Pluto markdown

 ![image](https://global.discourse-cdn.com/julialang/original/3X/2/2/22d8eb81333f208f80f989f55a13aff711b9e5dc.png)

---

<div class="post-metadata">

**Author:** ![Markos\_Kapes](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/markos_kapes/32/215017_2.png) [@Markos\_Kapes](https://discourse.julialang.org/u/Markos_Kapes)\
**Post date:** [February 6, 2025, 6:27pm UTC](https://discourse.julialang.org/t/pretty-print-matrix-a-la-display/125590/6 "2025-02-06T18:27:35Z")

</div>

println recognizes \n as a newline. Your substitution suggestion works… I was hoping there was a more succinct solution in order to interpolate various arrays into pluto markdown in a way that doesn’t end up with just [1 2; 3 4] on a single line.

---

<div class="post-metadata">

**Author:** ![nsajko](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/nsajko/32/221187_2.png) [@nsajko](https://discourse.julialang.org/u/nsajko)\
**Post date:** [February 6, 2025, 7:01pm UTC](https://discourse.julialang.org/t/pretty-print-matrix-a-la-display/125590/7 "2025-02-06T19:01:20Z")

</div>

> [@Markos\_Kapes](#):
>
> Regrettably, the \n’s are returned as composite text, not newlines.

I don’t understand this. What is the actual issue with my suggestion?
