gpt4 book ai didi

regex - 使用 Sublime Text 确保 LaTeX 文档中每行一个句子

转载 作者:行者123 更新时间:2023-12-04 01:14:18 25 4
gpt4 key购买 nike

目标是采用 third way ---a.k.a.使用 semantic linefeeds .这包括在 TeX 文件的每一行输入一个句子。这使得在处理 TeX 文件和其他大量文本文件时更容易使用版本控制系统。 (在回答 this question 时提出了类似的建议。)

当然,我可以在每个句子的末尾手动插入换行符。但是,这会导致不良习惯(例如,在写电子邮件时每行输入一个句子)。所以我正在寻找一种替代方法来实现这一点。

对于我们这些使用 Sublime Text 的人来说,一种解决方案是使用 ST 的键绑定(bind)。本质上,这会将空格键变成脚本的键盘快捷键,该脚本将

  • 检查它前面是否是句末,
  • 如果是,请插入换行符。

  • 这是相关的片段:
    { "keys": [" "],
    "context": [
    {"key": "selector", "operator": "equal", "operand": "text.tex.latex"},
    {"key": "preceding_text", "operator": "regex_match", "operand": "(^.+\\.$)|(^.+\\?$)|(^.+\\!$)|(^.+\\.+\\)$)"},
    {"key": "preceding_text", "operator": "not_regex_match", "operand": "(^.*\\\\ex\\.$)|(^.*\\\\[abz]\\.$)"},
    {"key": "preceding_text", "operator": "not_regex_match", "operand": "(^.*[Cc]f\\.$)|(^.*\\b[Pp]+\\.$)|(^.*etc\\.$)|(^.*\\b[A-Z]\\.$)|(^\\w\\.$)|(^.*M[sr]\\.$)|(^.*Mrs\\.$)"}
    ],
    "command": "insert", "args": {"characters": " %\n"}
    }

    我将此附加到 Sublime/Packages/User/Default (OSX).sublime-keymap它似乎可以解决问题。

    该片段应该查找空格之前的内容,如果您有一个以下列之一结尾的字符串,则为您提供匹配项:
  • 一个时期,
  • 感叹号,
  • 问号,
  • 一个句号前面的右括号。

  • 但是,如果它们前面有以下之一,它将忽略以句点结尾的字符串:
  • '\ex', '\a', '\b', '\z' (这是为了能够使用linguex 包),
  • 'cf', 'cf',
  • 'p', 'pp', 'P',
  • '等'
  • “先生”、“夫人”、“女士”、“博士”、
  • 单个大写字母(用于句子中的首字母)。

  • 我很想知道我是否应该在该列表中添加其他内容(“同上”,我想应该是其中之一)。

    我也想知道这个问题是否有任何不那么笨重的解决方案。

    最佳答案

    除非有人使用 \frenchspacing ( 1 , 2 ) 不应该有句点 .如果它不是句子的结尾,则后跟空格。
    Latex 在句末和句子中的句点之间产生了差异。
    句子后的空格将比平常大。

    因此,如果您想确保每行一个句子,您只需要在句点后面加上一个空格即可。

    的任何期间不是 句末应跟以下之一:

  • \,小空间
  • \字间距(\ 之后的空格)
  • ~不间断空格

  • 仅供引用:Latex 使用 \@明确地将句点标记为句末(句间间距)。

    关于regex - 使用 Sublime Text 确保 LaTeX 文档中每行一个句子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31407758/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com