LibreOffice Writer: copie de uma pesquisa “Localizar tudo” e cole em uma lista

1

Atualmente estou trabalhando em uma tese de doutorado em direito, que naturalmente usa muitas abreviações. Como é costume, quero incluir uma lista de abreviações e seus termos correspondentes.

Todas as minhas abreviaturas consistem em (mais precisamente: começam com) dois ou mais caracteres em maiúsculas. Exemplos incluem: IO, EU, ICC, UNHCR e VCLT-IO. Assim, posso selecioná-los com uma pesquisa "Localizar tudo" usando a opção "Combinar caso" e o seguinte RegEx:

\b(?:[A-Z]){2,}

Assim, tendo todas as abreviaturas no documento destacadas, posso fazer Ctrl + C para copiá-las. No entanto, se eu tentar colar as abreviaturas em, e. um novo documento do Writer, a saída é a seguinte:

EULEXCFSPOJCFSPOJCFSPOJEULEXEULEXEUEU

Em vez de cada abreviação estar em uma nova linha, como eu preferiria:

EULEX

CFSP

OJ

CFSP

OJ

CFSP

OJ

EULEX

EULEX

EU

EU

A minha pergunta é assim : Existe alguma maneira de copiar e colar as abreviações para que cada instância seja uma nova linha / parágrafo / célula em outro documento? (Eu preferiria ser capaz de colar, por exemplo, calc, pois isso tornaria mais fácil classificar a lista e eliminar duplicatas.)

    
por Øby 10.01.2017 / 11:56

1 resposta

1

Aqui está uma macro que pode fazer isso:

Sub CopySelectionsToNewDocument
    oDoc = ThisComponent
    oNewDoc = StarDesktop.LoadComponentFromUrl(_
        "private:factory/swriter", "_blank" , 0, Array())
    oNewText = oNewDoc.Text
    oNewViewCursor = oNewDoc.CurrentController.getViewCursor()
    oSels = oDoc.getCurrentController().getSelection()
    If oSels.supportsService("com.sun.star.text.TextRanges") Then
        For i = 0 To oSels.getCount() - 1
            oSel = oSels.getByIndex(i)
            If oSel.supportsService("com.sun.star.text.TextRange") Then
                oNewText.insertString(oNewViewCursor, oSel.getString() & CHR$(13), 0)
            End If
        Next
    End If
End Sub

Para usá-lo, primeiro faça a pesquisa para selecionar os itens e, em seguida, execute a macro para copiar os itens selecionados para um novo documento.

O novo documento está no Writer, mas pode ser facilmente copiado e colado no Calc.

Para algo mais poderoso, o complemento do LingTools tem um componente chamado Lista de Abreviações. Foi projetado para write-ups linguísticos, mas pode funcionar para sua tese também. O add-on ajuda a encontrar inconsistências e cria uma lista única.

    
por 10.01.2017 / 20:13