É possível, em qualquer versão do Microsoft Word, definir atalhos para expressões matemáticas recorrentes? (de preferência de uma forma que permita atualizar todas as ocorrências de uma só vez, se necessário)
Por exemplo, na mecânica quântica, uma estrutura recorrente é a notação de estado |ψ⟩
* e⟨ψ|
. Dependendo do contexto, estruturas mais complexas podem aparecer repetidamente, por exemploχ⁽²⁾
. No LaTeX eu usaria \newcommand
para definir meu atalho, geralmente parametrizado.
Apesar de muitas mudanças desde versões mais antigas do Word, que em teoria o tornariam uma alternativa viável para a escrita científica (ou pelo menos viável quando apenas documentos do MS Word são aceitos por alguma entidade), a capacidade de definir tais "macros" é essencial para mim. O MS Word agora suporta algo assim?
Paracriandorepetindo estruturas, eu usaria o AutoHotKey. Uma solução interna do Word pode, no entanto, fornecer muito mais poder e conveniência.
*editar*Eu quis dizer estruturas especialmente parametrizadas, ou seja, o equivalente a \newcommand{\ket}[1]{|#1\rangle}
.
*Usei aqui símbolos Unicode que podem não ser suportados em todos os sistemas. O código de látex equivalente seria, nesta ordem |\psi\rangle
: \langle\psi|
e \chi^{(2)}
.
Responder1
A maneira usual de fazer isso é usar a AutoCorreção conforme descrito no final desta página:http://office.microsoft.com/en-us/word-help/autocorrect-spelling-and-insert-text-and-symbols-HA010354277.aspx
Essencialmente, você definiria um texto equivalente para o qual o Word substituiria automaticamente um símbolo ou conjunto de símbolos. Por exemplo:
Para adicionar uma entrada de correção automática nas versões mais recentes do Word:
Clique no botão "Office" no canto superior esquerdo e, em seguida, no botão Opções do Word
Clique em Revisão na lista à esquerda e depois no botão Opções de AutoCorreção.
Clique na guia "Autocorreção matemática" e verifique se a entrada já existe.
Se ainda não estiver na lista, digite o texto que deseja usar na caixa à esquerda, por exemplo, onde inseri "|Y)" na captura de tela. Insira os símbolos na caixa à direita e clique no botão "Adicionar".
- OK, volte ao documento.
Agora, cada vez que você digitar o texto à esquerda, ele será substituído pela entrada à direita.
Responder2
É agora (2022)tipo depossível. A "parametrização" é realizada através de uma caixa de diálogo.
Aqui está um exemplo simples de uma caixa de diálogo "Criar Bra|Ket" com quatro controles: uma caixa de texto para inserir a string LaTeX personalizada; Botões de comando "Bra" e "Ket" para transformar isso em outra coisa no LaTeX e anexá-los à seleção; e um botão de comando "Criar Equação" para converter a seleção em um objeto do Editor de Equações.
A primeira figura mostra o diálogo e o documento após pressionar o botão “Sutiã”.
Para permitir processamento adicional, não converto automaticamente a seleção em uma equação. Por exemplo, se um "ket" for inserido em seguida, o código subjacente mescla as duas barras verticais (no final do "sutiã" e no início do "ket"):
Agora o botão de comando "Criar Equação" irá converter isso em um objeto Editor de Equações:
O código a seguir não é à prova de balas – apenas demonstra uma prova de conceito.
A primeira sub-rotina é a chave:essas duas linhas convertem a seleção em um objeto do Equation Editor e então analisam as strings LaTeX. Esta sub-rotina é chamada quando o botão "Fazer Equação" (também conhecido como CommandButton1
) é clicado:
Private Sub Text2Equation()
Selection.OMaths.Add Range:=Selection.Range
Selection.OMaths.BuildUp
End Sub
O resto é apenas código de diálogo. É aqui que a macro TeX é implementada por meio de concatenação de strings. O Click()
código do evento demonstra que você pode calcular com o texto, modificando-o conforme necessário, para criar qualquer string LaTeX personalizada desejada a partir do material inserido na caixa de diálogo.
Private Sub CommandButton_Ket_Click()
Dim s As String
s = Trim(Selection.Text)
If Len(s) > 0 Then
If Mid(s, Len(s), 1) = "|" Then
Selection.InsertAfter Text:=Bra_Ket.TextBox1.Text & "\rangle_^*"
Else
Selection.InsertAfter Text:="|" & Bra_Ket.TextBox1.Text & "\rangle_^*"
End If
End If
End Sub
Private Sub CommandButton_Bra_Click()
Selection.InsertAfter Text:="\langle " & Bra_Ket.TextBox1.Text & "|"
End Sub
Private Sub CommandButton1_Click()
Text2Equation
End Sub
Esta abordagem é um pouco complicada - muito mais do que escrever uma macro de comando LaTeX - mas é facilmente extensível quando você consegue trabalhar tanto. Crie pequenas caixas de diálogo separadas para macros favoritas ou para pesquisar e substituir material (aviso: não tenho ideia de como pesquisar objetos do Editor de Equações e suspeito que isso pode não ser possível). Ou crie uma caixa de diálogo de monstro para selecionar em uma lista de opções.