Como ya presentamos en su día, Zotero es un gestor open source de referencias bibliográficas. Se integra perfectamente en el procesador de textos LibreOffice Writer… Bueno, perfectamente no, tiene un fallo, que es el que quiero comentar (y arreglar). Al añadir las referencias bibliográficas las inserta en el documento Writer sin preocuparse de cambiar el idioma en el que estás escribiendo. Alguien dirá: ¿lógico, no? Si estás escribiendo en castellano, ¿por qué debería insertar la referencia en otro idioma?. La cuestión es que debería insertar las citas SIN especificar idioma. ¿Por qué? Porque si mantienes un idioma (cualquiera), al pasar el corrector ortográfico, cada vez que haya una referencia Zotero, el corrector se quejará, creyendo que es un error de ortografía. Para evitarlo, basta con que ejecutes esta macro una vez terminado tu documento. Cambiará el idioma de las referencias a «Sin idioma», lo que permitirá omitir su revisión en el corrector, ahorrándonos un precioso tiempo.
El bug original y la solución para MS Word en la que me he basado, así como esta misma macro que acabo de enviarles, puedes encontrarlos en los foros de Zotero.
Sub DeactivateProofingOfZoteroFields Dim oReferenceMarks Dim oReferenceMark Dim oReferenceNames Dim anchor REM preparar locale vacío para evitar avisos del corrector ortográfico REM Visto en "OpenOffice.org Macro Information" (Andrew Pitonyak) Dim noLocale As New com.sun.star.lang.Locale noLocale.Country = "" noLocale.Language = "zxx" REM recorrer las referencias bibliográficas REM asegurándose de que han sido insertadas por Zotero REM y asignarles el noLocale oReferenceMarks = ThisComponent.getReferenceMarks() oReferenceNames = oReferenceMarks.getElementNames() For i = LBound(oReferenceNames) to UBound(oReferenceNames) sName = oReferenceNames(i) if (InStr(sName, "ZOTERO") = 1) then oReferenceMark = oReferenceMarks.getByName(sName) anchor = oReferenceMark.getAnchor() anchor.CharLocale = noLocale end if Next i End Sub |