Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

自动生成书签的正则表达式执行晚于合并同尺寸标签 #208

Open
BaoYier opened this issue May 24, 2024 · 2 comments
Open
Labels
书签 生成或编辑导航书签 改进 New feature or request

Comments

@BaoYier
Copy link

BaoYier commented May 24, 2024

自动生成书签的正则表达式执行晚于合并同尺寸标签
导致不符合正则表达式的内容被合并入书签

重现问题的步骤
步骤如下:

  1. 用补丁丁打开Amann 和 Escher - 2005 - Analysis.pdf
    2.翻到第21页,在“Elementary Facts”上右键,在菜单中选择 “设置自动书签标签格式(Z)”
  2. 在弹出的“自动生成书签”列表中,选中刚刚设置的识别条件,点击“文本识别模式”选择“自定义文本匹配模式”,输入^([A-Z][a-z]*,?\s*(?:and\s+)?)+。勾选:合并同字体尺寸的相邻标题。
  3. 该正则表达式理论上只会捕获大写字母开头的英文单词,但实际上会把小写的同字体内容合并进去,比如第22页的“The Power Set”与下一行的“power set”被合并成一个标签“The Power Set power set”

预期的结果或行为

  1. 应当先执行正则表达式的筛选,然后再合并标签
  2. “合并同字体尺寸的相邻标题”根据其实际功能应当是“合并同级别的相邻标题”

其它
复杂的正则表达式可能导致程序崩溃,比如^(?!\s)(?!(?:\s*(?:[0-9]+\.?)?\s*Proof)).*(?:\s*(?:[0-9]+\.?)?\s*[A-Z]+.*)+$,通常不影响使用,所以就不提issue了。

@wmjordan wmjordan added 改进 New feature or request 书签 生成或编辑导航书签 labels May 24, 2024
@wmjordan
Copy link
Owner

这个地方比较麻烦。
旧版本就是先筛选再执行合并的,会比较适合您的场合。
但有些场合下,先合并标签再筛选会更有用。
得再想办法让这个功能适应更多的场合。

@wmjordan
Copy link
Owner

我这边无法重现正则表达式导致程序崩溃的情形。如果再遇到崩溃,请看看系统日志是否有相应记录。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
书签 生成或编辑导航书签 改进 New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants