Traduzi um texto alemão que contém muitas equações com símbolos Fraktur. Aqui está um exemplo:
Agora quero substituir os símbolos nas equações pelas letras latinas correspondentes, mas também formatar as letras latinas em negrito/itálico (notação vetorial).
É fácil localizar/substituir os símbolos, mas o Word não deseja aplicar simultaneamente o formato negrito/itálico dentro das equações (funciona em texto normal).
Isso é possível? Talvez com VBA? Alguma sugestão?
Configuração: Microsoft® Word 2019 MSO (versão 2403 Build 16.0.17425.20176) 64 bits
Edição 1: Esta técnica já ajuda muito: Encontre e substitua texto por equação no Word 2019
O problema aqui parece ser que sempre que você insere um caractere de letra regular (digamos
A
, normalmente ponto de código U+0041, decimal 65) em uma equação, o editor de equações (a) usa a fonte Cambria Math (ou possivelmente outra fonte Math ) e (b) converte-o para oMATHEMATICAL ITALIC CAPITAL A
ponto de código UnicodeU+1D434
, um caractere Unicode Plane 1. Se você aplicar Negrito a isso, ele será substituído porMATHEMATICAL BOLD ITALIC CAPITAL A
(U+1D468
).Na minha opinião, a caixa de diálogo Localizar/Substituir do Word deveria realmente fazer tudo isso para você, mas não faz, como você viu, então a questão é como fazer isso.
Se você tiver apenas um pequeno número de substituições a fazer (digamos A, B, C), poderá continuar usando a caixa de diálogo Localizar/Substituir, mas inserir o caractere Mathematical Bold Italic correto na
Replace with
caixa. No caso deA
você pode fazer isso digitando1D468
e pressionandoAlt-X
. Ao fazer isso, o Word também marca aMatch prefix
caixa na caixa de diálogo - isso parece ser necessário para que a correspondência seja bem-sucedida. Talvez algo a ver com o fato de o Word representar esses caracteres usando dois pontos de código substitutos Unicode, por exemploU+D835
,U+DC68
.Não vejo nenhuma maneira de usar curingas em Localizar/Substituir para isso ( encontrar um caractere Fraktur, sim, mas inserir o substituto correto, nem tanto).
Portanto, a alternativa é usar código. O mais simples é provavelmente fazer 26 substituições como esta:
A outra abordagem programática seria provavelmente procurar todos os caracteres Fraktur em uma única passagem e, em seguida, substituir cada um deles pela substituição correta. O código é um pouco mais complicado e acho que o acima provavelmente é mais simples de modificar e usar.