【发布时间】:2018-08-30 14:27:36
【问题描述】:
在使用 IHaskell 时,是否有可能让 Latex 自动处理所有输出,或者理解为 Markdown ?
也许这将涉及(至少如果我希望它与 MyType 类型的数据一起使用)使用 import IHaskell.Display 和 instance IHaskellDisplay MyType where... 但我不知道如何使这项工作!
谢谢!
edit 有人问了一个例子,所以我想到的是:每个输出字符串(对于每个输出都是一个字符串,最终......)被处理为乳胶代码(或降价)。如果一个函数返回,比如说,一个整数,结果将几乎不可见,但如果一个函数返回字符串$\mathbb{Z}$,那么屏幕上显示的是
$\mathbb{Z}$
[警告!我以为我们在 stackoverflow 上有乳胶公式,就像我们在 mathoverflow 中一样,但如果我们没有,你需要你的想象力!...]
最终我想我会有一个class Latexable a where showlatex :: a -> String,我会为某些类型实现 showlatex。
嗯,我对各种部分解决方案很满意,允许我在笔记本中直接排版 一些 公式,all 输出是否是无关紧要的处理...
【问题讨论】:
-
github.com/gibiansky/IHaskell/issues/828 可能是相关的。但是,你所说的“所有的输出都由 LaTeX 自动处理是什么意思?请举例说明您所指的输出类型以及您希望它如何呈现。
-
好吧,为什么不直接改成
class Latexable a where showlatex :: a -> LaTeX?为此使用一个字符串——但随后期望 IHaskell 将其解释为 LaTeX——似乎很奇怪......——“因为每个输出最终都是一个字符串”←不它不是,你为什么会这样认为? -
笔记本中的输出单元格是 ASCII 文本。 (好吧,您可以安排笔记本显示图像,但让我们忽略它。)同样,在终端中使用 ghci,它会打印 ASCII 字符。这就是我所说的“输出始终是字符串”的意思,我的意思是“输出是 ASCII 文本”。我希望这个 ASCII 文本由 Latex 处理(或理解为 Markdown。)顺便说一下,当你在 Jupyter Notebook 中运行 Sagemath 时,你完全可以通过使用
%display typeset -
在 GHCi 中,它是一个字符串,是的,但 IMO 是 Jupyter 的主要卖点,您不仅限于文本,还可以拥有所有其他内容。当然,现在在 Python 中,您不会倾向于依赖类型系统来区分不同的...类型。输出,但在 Haskell 中这是很自然的事情。
-
我明白你的意思,好的。但无论如何,我正在寻找一种从笔记本中调用 Latex 的简单方法。哦,即使使用快速而肮脏的解决方案,我也很高兴,例如将输出快速复制到剪贴板的方法(然后我可以粘贴到降价单元格中,总比没有好 - 必须手动使用 CTRL-C 是另一方面,非常慢)