diff --git a/notebooks/tests/table.ipynb b/notebooks/tests/table.ipynb index f435c72bfba6c2d072dedd7c3099f03ffb079a0a..caddf312f0789d4d4ea8852759af5c360ab61106 100644 --- a/notebooks/tests/table.ipynb +++ b/notebooks/tests/table.ipynb @@ -63,19 +63,19 @@ { "data": { "text/markdown": [ - "|Nr|Elements|\n", - "|---|---|\n", - "|1|1|\n", - "|2|2|\n", - "|3|3|\n", - "|4|4|\n" + "|Elements|\n", + "|---|\n", + "|$1$|\n", + "|$2$|\n", + "|$3$|\n", + "|$4$|\n" ], "text/plain": [ - "Nr\tElements\n", - "1\t1\n", - "2\t2\n", - "3\t3\n", - "4\t4\n" + "Elements\n", + "1\n", + "2\n", + "3\n", + "4\n" ] }, "execution_count": 3, @@ -95,19 +95,19 @@ { "data": { "text/markdown": [ - "|Nr|prj1|prj2|\n", - "|---|---|---|\n", - "|1|1|1|\n", - "|2|2|2|\n", - "|3|3|3|\n", - "|4|4|4|\n" + "|prj1|prj2|\n", + "|---|---|\n", + "|$1$|$1$|\n", + "|$2$|$2$|\n", + "|$3$|$3$|\n", + "|$4$|$4$|\n" ], "text/plain": [ - "Nr\tprj1\tprj2\n", - "1\t1\t1\n", - "2\t2\t2\n", - "3\t3\t3\n", - "4\t4\t4\n" + "prj1\tprj2\n", + "1\t1\n", + "2\t2\n", + "3\t3\n", + "4\t4\n" ] }, "execution_count": 4, @@ -127,17 +127,17 @@ { "data": { "text/markdown": [ - "|Nr|prj11|prj12|prj2|\n", - "|---|---|---|---|\n", - "|1|1|2|3|\n", - "|2|4|5|6|\n", - "|3|7|8|9|\n" + "|prj11|prj12|prj2|\n", + "|---|---|---|\n", + "|$1$|$2$|$3$|\n", + "|$4$|$5$|$6$|\n", + "|$7$|$8$|$9$|\n" ], "text/plain": [ - "Nr\tprj11\tprj12\tprj2\n", - "1\t1\t2\t3\n", - "2\t4\t5\t6\n", - "3\t7\t8\t9\n" + "prj11\tprj12\tprj2\n", + "1\t2\t3\n", + "4\t5\t6\n", + "7\t8\t9\n" ] }, "execution_count": 5, @@ -157,13 +157,13 @@ { "data": { "text/markdown": [ - "|Nr|prj1|prj2|\n", - "|---|---|---|\n", - "|1|{}|{}|\n" + "|prj1|prj2|\n", + "|---|---|\n", + "|$\\renewcommand{\\emptyset}{\\mathord\\varnothing}\\renewcommand{\\emptyset}{\\mathord\\varnothing}\\emptyset$|$\\emptyset$|\n" ], "text/plain": [ - "Nr\tprj1\tprj2\n", - "1\t{}\t{}\n" + "prj1\tprj2\n", + "{}\t{}\n" ] }, "execution_count": 6, @@ -174,6 +174,34 @@ "source": [ ":table {({}, {})}" ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "data": { + "text/markdown": [ + "|prj1|prj2|\n", + "|---|---|\n", + "|$\\{(1\\mapsto 2),(3\\mapsto 4)\\}$|$\\{(5\\mapsto 6),(7\\mapsto 8)\\}$|\n", + "|$\\{(2\\mapsto 1),(4\\mapsto 3)\\}$|$\\{(6\\mapsto 5),(8\\mapsto 7)\\}$|\n" + ], + "text/plain": [ + "prj1\tprj2\n", + "{(1|->2),(3|->4)}\t{(5|->6),(7|->8)}\n", + "{(2|->1),(4|->3)}\t{(6|->5),(8|->7)}\n" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + ":table {({1|->2, 3|->4}, {5|->6, 7|->8}), ({2|->1, 4|->3}, {6|->5, 8|->7})}" + ] } ], "metadata": { diff --git a/src/main/java/de/prob2/jupyter/commands/TableCommand.java b/src/main/java/de/prob2/jupyter/commands/TableCommand.java index 7d8c53b741a2e76d368e59a203d2e59e8bbd7714..9b9e1314841c9ee161988c35b0d660025e3aaedc 100644 --- a/src/main/java/de/prob2/jupyter/commands/TableCommand.java +++ b/src/main/java/de/prob2/jupyter/commands/TableCommand.java @@ -2,6 +2,7 @@ package de.prob2.jupyter.commands; import java.util.Collections; import java.util.List; +import java.util.stream.Collectors; import com.google.inject.Inject; @@ -13,6 +14,7 @@ import de.prob.animator.domainobjects.IEvalElement; import de.prob.animator.domainobjects.TableData; import de.prob.statespace.AnimationSelector; import de.prob.statespace.Trace; +import de.prob.unicode.UnicodeTranslator; import io.github.spencerpark.jupyter.kernel.ReplacementOptions; import io.github.spencerpark.jupyter.kernel.display.DisplayData; @@ -76,7 +78,7 @@ public final class TableCommand implements Command { sbPlain.append(String.join("\t", row)); sbPlain.append('\n'); sbMarkdown.append('|'); - sbMarkdown.append(String.join("|", row)); + sbMarkdown.append(row.stream().map(s -> '$' + UnicodeTranslator.toLatex(s) + '$').collect(Collectors.joining("|"))); sbMarkdown.append("|\n"); }