Página 1 de 1

[RESUELTO] Acentuar consonantes

NotaPublicado: Mar Feb 15, 2011 8:58 pm
por xiseme
Versión corta:
La idea es, con teclado español, acentuar consonantes como si fueran vocales: insertar ŕ, Ŕ, ,, ... de igual forma que á, é, ...
En GNU/Linux ya es así por norma, pero en Windows-XP aparece ´p, ´w, ´W ...
¿Como hacer para que aparezcan directamente las consonantes acentuadas?

Versión extendida:
Fuente modificada (fonforge) con símbolos y logos que empleamos con frecuencia en Writer y a veces en Calc.
Se aprovechan consonantes acentuadas (10) que en castellano no se usan.
Los usuarios de sistemas GNU/Linux (openSUSE y Debian) introducimos directamente los logos (encantados)
Los que usan Windows-XP les aparece ´p, ´w, ´R ... tienen que ir a Insertar → Simbolo, seleccionar la fuente y después el carácter para insertarlo (no están tan encantados)

No he sabido encontrar (sería lo ideal) si hay una secuencia estilo Alt+´+r que genere ŕ (muchas referencias a errores de doble acento "´´a")
Una tabla-recetario unicode .... no sé, porque por ejemplo, Alt+7810 (7810Dec=U+1E182Hex) muestra é en lugar de y Alt+7811 (U+1E83) da â por .
La asignación de teclas "colisionaría" con las ya asignadas: se desestima.

Aunque no discierne entre mayúsculas y minúsculas (opción ´r reemplaza a ´R si la hubiere) modificar las opciones de autocorrección (´r → ŕ) supone un avance
¿Se pueden exportar estas opciones de autocorrección a diferentes usuarios sin tener que introducirlas "a mano" de nuevo?

Gracias.

Re: Acentuar consonantes

NotaPublicado: Mar Feb 15, 2011 9:29 pm
por RGB-es
Prueba con esta extensión:
Compose Special Characters

Re: Acentuar consonantes

NotaPublicado: Mié Feb 16, 2011 1:03 am
por xiseme
He probado la extensión en LibO sobre Windows XP en virtualbox.

Sí es útil para el propósito, aunque me temo que no completamente: diferencia la capitalización ( vs ) que no obtengo con la autocorrección; sin embargo no proporciona algunas consonantes que tenía previstas como p, k, m, g (lástima)

Profundizaré un poco más, en sistema real y con OOo. A ver si con un modificador diferente del acento y en combinación con la autocorrección ...

Como creo que es algo que atañe al sistema operativo; tampoco desisto de conseguir que en Windows sea tan natural como en GNU/Linux. Al fin y al cabo representar un carácter con facilidad está seguramente al alcance de cualquier S.O.

Gracias por el enlace y la ayuda (la directa y la indirecta en otros hilos)

Re: Acentuar consonantes

NotaPublicado: Mié Feb 16, 2011 8:08 am
por mauricio
Hola...

Mira si podemos ir avanzando con la macro que te anexo, por ahora solo acentua las siguientes letras wrypsgkm, pero es sumamente sencillo agregar más, selecciona solo una letra, por ahora no toma en cuenta el formato, pero se puede modificar para que lo haga... la he probado en Linux y en una maquina virtual Win XP...

Saludos

Re: Acentuar consonantes

NotaPublicado: Mié Feb 16, 2011 12:32 pm
por xiseme
Ahaha!
Probada en OOo 3.3 WinXp ... Si, la macro cumple el objetivo.
Averiguaré como asignarle una combinación de teclas. Supongo que tengo que ir usuario a usuario y ponerla en Mis macros -Standard- Modulo nn para que esté disponible en cualquier aplicación OOo.

Eh! un momento ... ¡has dicho que, además, puede aplicar directamente un tipo de fuente específico! Eso ya es para nota ;). Si no es mucho preguntar ¿Como?

Muchas gracias. Por todo.

Re: Acentuar consonantes

NotaPublicado: Mié Feb 16, 2011 4:14 pm
por mauricio
Hola...

Es muy sencillo, pero no uses un tipo de fuente, si no un estilo de caracter, de este modo, puedes establecer no solo el tipo de fuente, si no todas las opciones presentes en Formato->Carácter...
He modifica la macro para que tu la adaptas a tus necesidades, solo tienes que cambiar las tres primeras líneas después de las declaraciones de variables.
Código: Seleccionar todo   Expandir vistaContraer vista
Option Explicit

Sub AcentuarLetra()
Dim sLetras
Dim sLetrasA
Dim oSel As Object
Dim sLetra As String
Dim pos As Integer
Dim sEstilo As String

   sEstilo  = "MiEstilo"
   sLetras  = "wrypsgkm"
   sLetrasA = "ẃŕýṕśǵḱḿ"
   
   oSel = ThisComponent.CurrentController.Selection
   oSel = oSel.getByIndex(0)
   sLetra = oSel.String
      
   Select Case Len(sLetra)
      Case 0
         MsgBox "Selecciona una letra"
      Case 1
         pos = InStr( 1, sLetras, sLetra, 0 )
         If pos > 0 Then
            oSel.CharStyleName = sEstilo
            oSel.String = Mid(sLetrasA,pos,1)
         End If
      Case Else
         Msgbox "Selecciona solo una letra"
   End Select

End Sub

En la primera, estableces el estilo que hayas creado...
Código: Seleccionar todo   Expandir vistaContraer vista
   sEstilo  = "MiEstilo"

En las dos siguientes líneas, estableces las letras que quieras reemplazar, solo tienes que tener la precaución de que estén exactamente en la misma posición, por ejemplo, he agregado la W y R en mayúsculas...
Código: Seleccionar todo   Expandir vistaContraer vista
   sLetras  = "wrypsgkmWR"
   sLetrasA = "ẃŕýṕśǵḱḿẂŔ"

Por ultimo, solo te resta asignar a una combinación de teclas...

Por favor, si esto responde tu pregunta, edita el primer mensaje de este hilo y agrega al principio del título la etiqueta [RESUELTO], adicionalmente puedes marcar el icono de la tilde verde, de esta forma conseguiremos un foro más ordenado.

Saludos

Re: Acentuar consonantes

NotaPublicado: Mié Feb 16, 2011 5:37 pm
por xiseme
".CharStyleName" Ok. Asunto resuelto.

Muchas gracias de nuevo.