【问题标题】:Cause of extra wordspace around inline code内联代码周围额外字空间的原因
【发布时间】:2022-01-04 14:58:08
【问题描述】:

我的 Sphinx 项目为使用内联代码字体的文档生成 HTML。我使用的文本字体是 Lato;代码字体为 Consolas。

问题在于,无论文档从文本字体转换为内联代码的任何位置,Sphinx 都会插入额外的空间。下面是文本的外观(在另一个应用程序中模拟)和实际外观的快照:

问题在行首的代码尤为明显。额外的空间使该行看起来是缩进

看起来 Sphinx 正在生成 HTML,该 HTML 由代码字体中的前后单词组成,但事实并非如此:

我使用的另一个排版工具没有这样做,尽管它会生成类似的 HTML:

我假设项目的样式表为 Consolas 字体提供了一些在字体转换前后添加空间的属性,但我在样式表或浏览器的 HTML 检查器中找不到它。实际上,我在 HTML 中找不到 可以 做到这一点的属性。我应该寻找什么?


稍后 -- 这是对 Steve Piercy 评论的回应。我正在编辑原始消息,因为我无法在评论中插入图形。

史蒂夫让我附上一个可重现的样本。恐怕这会很困难,因为项目的某些部分(主题,即基础设施,而不仅仅是内容)是专有的。我应该能够将样式表与主题分开,并使用它们在“干净​​”的主题中展示问题,但要做到这一点,我需要了解更多关于主题的知识。可能需要一段时间才能找到时间。

作为一种替代方法,我从浏览器的 HTML 检查器中附加了输出、HTML 和整套适用样式的快照。所有相关信息都应该在那里。

显示:

生成它的 HTML:

样式(1 个,共 5 个)

(2 个,共 5 个)

(5 个中的 3 个)

(4 个,共 5 个)

(5 个中的 5 个)

回复史蒂夫·皮尔西,11 月 29 日:

我遵循了史蒂夫 11/29 的建议并看到了以下内容。

对于一段内联代码:

border-collapse: collapse;
border-spacing: 0px 0px;
box-sizing: border-box;
color: rgb(0, 0, 0);
empty-cells: show;
font-family: SFMono-Regular, Menlo, Monaco, Consolas, Liberation Mono, Courier New, Courier, monospace;
font-size: 13.9333px;
font-weight: 500;
line-height: 17.6px;
text-align: left;
white-space: nowrap;

对于封闭体类型:

border-collapse: collapse;
border-spacing: 0px 0px;
box-sizing: border-box;
color: rgb(0, 0, 0);
empty-cells: show;
font-family: "Helvetica Neue", Arial, sans-serif;
font-size: 14.6667px;
font-weight: 400;
line-height: 17.6px;
margin-bottom: 5.86667px;
margin-left: 0px;
margin-right: 5px;
margin-top: 10.2667px;
overflow: visible;
overflow-x: visible;
overflow-y: visible;
padding-bottom: 0px;
padding-top: 0px;
text-align: left;
white-space: normal;

我看到的唯一可能相关的属性是内联代码中的 box-sizing 和正文类型中的 margin-right。我尝试更改两者(分别更改为 content-box 和 0),但没有效果。

12 月 5 日:Steve Piercy 写道,“你越来越近了。我看到了 4 个 margin-* 属性,你可以检查和覆盖它们。”

恕我直言,我没有看到任何类似的东西。我选择了一段内联代码并在属性堆栈上上下滚动了几次,当我找不到边距属性时,我将整个内容复制并粘贴到文本编辑器中并搜索“边距”。没有实例。

这是代码检查器右侧列的全部内容(仍然选择了一段内联代码):

【问题讨论】:

  • 这在我看来是一个风格问题。有几个属性可以产生额外的空间,包括 padding、margin 和 :before 和 :after。您必须为任何人提供可重现的示例以提供更多帮助。
  • 我正在通过编辑原始消息来响应史蒂夫的建议,因为我无法在评论中插入图形。新内容以“稍后——这是一个响应……”开头。
  • 尝试在开发者工具中检查元素,但使用Computed 标签。您将看到元素的尺寸,以及它的内边距、边框和边距。然后您可以单击可疑 CSS 属性旁边的灰色三角形来确定样式存在的确切位置。
  • 再次,我通过添加到原始帖子的末尾来回应。
  • 问题越来越长,但仍然没有关于如何实际重现问题的信息。

标签: html css fonts python-sphinx word-spacing


【解决方案1】:

只是为了让您知道我发现了问题。包装内联代码的 标记没有填充,但是另一个标记——再往上两层——有!我将该标签从“填充:2px 5px;”更改为到“填充:2px 0;”问题解决了。

感谢大家的帮助。你真的有帮助;我只是在尝试简化可以在没有专有内容的情况下上传的完整 HTML 示例时才发现问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-08-25
    • 1970-01-01
    • 2013-08-21
    • 1970-01-01
    • 2018-02-18
    • 1970-01-01
    • 2020-04-16
    相关资源
    最近更新 更多