【问题标题】:Too long character string in knitr html outputknitr html输出中的字符串太长
【发布时间】:2013-08-17 14:22:00
【问题描述】:

我的函数bs.pi.gmp()定义的here可以产生很长的字符串:

> bs.pi.gmp(8)
$Sn
Big Rational ('bigq') :
[1] 115056663317199981372832786803399641133848259535718238578854114440177847232763528127119686643465544336537363974090559640151844992619459739337642897335661405374200830442503779326745081494631228217510085926896107230240702464/73247346810369298651903071099557979072216039642432949710389234675732768750102001285974817825809831148661290123993641325086924401900965008305646606428886048721946203288377842830920059623434101646117412656625454480462852875

$eval.Sn
[1] "1.570796326794896557999"

当我在 RMarkdown 文档中运行 bs.pi.gmp(8) 时,字符串超出了宽度屏幕。我试图在块中使用options(width=...) 或使用tidy 选项来解决这个问题,但这不起作用。怎么解决?

但是,当我简单地将 knitr 生成的 html 复制粘贴到 overblog 时,如您所见,渲染是完美的。这肯定是由于文章在博客上发布时产生的 html 选项(在标题中),但是这个选项是什么?

【问题讨论】:

    标签: html r knitr r-markdown


    【解决方案1】:

    在overblog网站上,长字符串所在的容器有word-wrap: break-word,而在你的例子中,它没有。 (word-wrap 设置为其默认值,normal)。

    另见https://developer.mozilla.org/en-US/docs/Web/CSS/word-wrap

    解决方案:将样式 word-wrap: break-word 应用到您放置字符串的任何位置。
    (不幸的是,我并不精通 RMarkdown,我不确定您应该如何准确地做到这一点。但我确信它会成功。)

    编辑:
    如果您可以完全控制 CSS,您只需将该属性添加到 pre code 的样式中即可。
    所以完整的样式会变成

    pre code {
       display: block; padding: 0.5em;
       word-wrap: break-word;
    }
    

    【讨论】:

    • 谢谢。听起来不错,但我不知道将这段代码准确地放在哪里。这是原始 knitr html 输出的要点:gist.github.com/stla/6258179 长字符串位于第 461 行。也许可以让我知道将代码放在哪里?
    • 你可以随意更改CSS,可以吗?然后将新属性与pre code 的样式一起放入。我已经编辑了我的答案。
    • 我不确切知道什么是 CSS,但我会尝试理解。谢谢。
    • 好的,我已将此代码放在第 58 行,它可以工作:pagist.github.io/?6258179 非常感谢!关于 CSS,我认为你的意思是应该有一种自动的方式来做到这一点,我会尝试找到它。
    • 好的,我在 Rstudio/resources 目录中找到了 CSS 文件:markdown.css。完美!!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-09-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-23
    相关资源
    最近更新 更多