我正在编写一个宏,将 Word 文档转换为 LaTeX。
一切都很顺利,除了一件事:该文档大量使用样式模板,实际上是使用字符样式来实现功能标记。例如,文本中出现的所有作者姓名都使用字符样式“作者姓名”。所有非英语单词或(这也是棘手之处)短语都应用了样式“外来词”。
让我们考虑“外来词”样式的示例。为了将其转换为 LaTeX,我需要做的是创建一个搜索,尽可能贪婪地搜索所有应用了“外来词”样式的字符,获取此字符串,并将其包装在 \emph{\1} 中(\1 表示匹配字符串的位置)。
使用微软的非常谦虚的解释它的通配符语法,我期望搜索术语“*”(不带引号)并应用“外来词”样式应该可以做到这一点,但事实并非如此。它不够贪婪,只能找到单个字符。我可以通过搜索中包含分隔符来使通配符搜索更加贪婪 ---“[ ]*[ ]”确实可以找到整个单词 --- ,但这在当前情况下会失败,因为,例如,虽然像“ad-hoc”这样的术语可能在前面和后面有空格,但空格本身不会应用“外来词”样式,因此会被排除在搜索之外(不要介意存在大量潜在的字符串边界:多词外来短语可能在前面和后面有冒号、分号、空格、六个潜在引号字符之一、段落标记或...)。
因此,本质上,我正在寻找 Word 的通配符搜索表达式,该表达式与应用了特定样式的最长不间断字符串匹配。
由 barlop 编辑,添加 OP 的澄清。
`例如,给出下面这段我已放在引号中的文字。
“除了领主,也有更高的贵族封地被授予,尽管如今魁北克仅存的贵族头衔可以追溯到领主制系统是“隆格伊男爵',在勒莫因家族中”
查看上面引用的文本。所有斜体字都应用了“外来词”样式。对于“Baron de Longueil”,这包括“Baron”、“de”和“Longueil”之间的空格。我正在寻找一种搜索,可以将这三个斜体字分别作为一个字符串捕获。
结果应为“除了 \emph{seigneuries} 之外,还有更高的贵族封地可供授予,尽管如今魁北克唯一可以追溯到 \emph{seigneurial} 系统的贵族头衔是 Le Moyne 家族的 '\emph{Baron de Longueuil}' 头衔”
答案1
原理如下。这会用常规文本周围的一些标记替换所有斜体文本。
^&
意思是替换原来的。
为了指定斜体或常规,我选择了格式..字体..然后从弹出的字体对话框的下拉菜单中选择斜体或常规。
请注意,查找框实际上是空白的,但其下方显示了它正在寻找的格式/样式(斜体)
请注意,replace 指定要替换的内容,下面指定格式/样式(在本例中为常规)
关于选择字体/样式,下面是我的做法,并附有截图。
在查找/替换屏幕的左下角选择格式..字体
然后选择斜体。我忽略了“效果”下的所有复选框。我用黑色圈出的文本框区域中的选择(斜体、常规……)是用来选择常规或斜体等的,这些选项有效。