Why are some special characters not displayed when writing in LibreOffice? tdf#127072

I use Windows 10 and I use Guarani Keyboard. I had this problem with LibreOffice 6.2 and 6.3. When I try to write some special characters (ỹ, Ỹ, g̃ and G̃) they are not displayed in the document. I have this problem with all apps of Libreoffice: Writer, Calc, Draw and Impress. In order to type this characters one must press one of the following combinations AltGr + y ; AltGr + Y ; AltGr + Shift + g or AltGr + Shift + G respectively.
Here is what I have already tried:

  1. I changed my interface language.
  2. I changed my document language.
  3. I erased the shortcut combinations which could be interfering with the keyboard.
    If I remember well, I didn’t have this problem with older versions.

Thank you for your help!

tdf#127072

It seems the font used in the document does not support those characters. Install the Andada typeface (it has been designed for Guarani), set a test document to use it and try again.


EDIT: Diacritic positioning is managed by mark and mkmk OpenType tables. Most fonts define combining tilde (U+0303) combinations only for ‘n’ and vowels (ãẽñ, etc.) and Andada is no exception on that. In fact, it turns out that you cannot, at least, not easily, get a tilde on top of a g with Andada, but you can with another open source font called Allegreya: with it you can use the normal tilde ~ (U+007b) as combining mark for g and G, so it’s possible to use that to insert those characters. It also includes the “saltillo” Ꞌ as U+A78B (Latin Extended D block).

The same is valid for Alegreya Sans.

So, in conclusion: scratch the previous recommendation and use Alegreya, it’s a better typeface :wink:


EDIT 2: For some reason, if you type the combining tilde Unicode code after the consonant and then press Alt X it works on most fonts, including Andada, even if some fonts put the diacritic in the wrong position due to a bad definition in the corresponding OpenType tables. For example, by typing

G0303

and then pressing Alt X you’ll get the G with tilde in Writer.

The keyboard characters are controlled by the Operating System, not LibreOffice.
Do you have anything like  (X’FFFC’) Which shows a character missing from a font or � (X’FFFD) invalid code.
What keyboard have you defined? Depending on your keyboard setting you will have a different character depending on your AltGr language. On my English-International it is ý Ý ŋ Ŋ. With my German and French Keyboards I get ←¥ŋŊ. What should it be with Guarani?

Hi! Thank you for responding!

I have this problem only with LibreOffice, I can type g̃ G̃ and ỹ Ỹ in other programs such as Webbrowsers, MS Office and Notepad from Windows. I installed Arial Unicode Fonts and now I can type ỹ and Ỹ but the nasal g’s are still not working.

Windows 10 has a keyboard for Guarani and it works perfectly in all other programs but not in LibreOffice.

When I type the nasal G (G̃, g̃) it only appears a normal G. The nasal G doesn’t even appear in the “Insert Special Characters” from LibreOffice. It used to be there in previous versions of LibreOffice. (5.0) . It works in other programs (MS Office, Notepad, Browsers, etc) How does it come that it only doesn’t work for LibreOffice products?

This is no “solution”, so, please, transfer it as a comment after the answer it is related to.

@hubmei If you type a character that’s not included in the particular font you use, the program will look for a font substitute. As commented above, it seems the font you use in your document does not include that character, apparently some applications on your system are able to find a font substitute, but LibreOffice does not. So I’ll repeat my recommendation: install a font that contains that character. Andada is an open source typeface specifically designed to write in Guarani, so try to use it instead of a generic font (use the green “Clone or Download” button in the project page and select “Download ZIP,” unpack the package and install the four .otf files you find in the /Fonts/otf/ folder).

@RGB-es: Unicode does not include LATIN CAPITAL LETTER G + COMBINING TILDE as a precomposed character. So whatever Unicode-compliant font is used, it can’t contain the combination as a primary character. It may however have it as a “ligature”. Is this what you mean “specifically designed for Guarani”?

What I don’t explain is why COMBINING TILDE does not compose well with consonants. According to the “combining” property, the glyphs for the tilde and the consonant should be centred overlayed, which is not the case. Do you know how Writer handles combining diacritical marks? Then, could it be a bug?

Thank you for your answers. It seems that the font type is not the problem. I used to be able to write in guarani and type these characters g̃ G̃ without any problems with any of the following fonts: Arial, Times, Verdana, Tahoma and OpenSans. I can change from one font type to another without any problems and these special characters change as well.

  1. With all the information I have, specially the fact that the problem persists only when using LibreOffice, I am leaded to believe that the problem may be that LibreOffice is not correctly responding to the AltGr + G command.

  2. I took notice of what @RGB-es said and tried using an earlier version of LibreOffice (4.4.0.1). As a result: In the earlier version a combination of tilde and consonants was possible without any issues. With the current version (6.3) even though the combination is possible, it presents an issue (tilde is oddly place or misplace even).

Can this already been considered a bug? if so, where can I report it?

Bugs can be filed at hpps://bugs.documentfoundation.org You’ll need to register (credentials are not the same as for AskLibreO). Be very descriptive and if possible attach a sample file.

If you file a bug, don’t forget to edit your question to note the bug number as # tdf (bug numner) , without spaces nor parentheses. This will create a link to the bugs site.

@ajlittoz you’re right, of course. I’ve updated my answer with a better font suggestion. The combining tilde not working “out of the box” is something I can see on all applications, not only in LibO. But I can use it with several good fonts like Libertinus by typing the consonant followed by 0303 and then press Alt X, which is weird. Other fonts draw the diacritic in the wrong position, that’s true, but the reason is a bad definition in the mark and mkmk tables. For example, EB Garamond and Cochineal position the tilde on top of the lowercase g without problems, but fail with the uppercase. Other fonts fail in all situations.

G̃̃ and g̃̃ are not precombined Unicode characters. They are not present in the various “Latin extended” sets. Consequently, you must type the letter then COMBINING TILDE U+0303 (in this order).

  • How you can type the combining tilde is OS dependent. Check your system documentation. In my case (Linux Fedora with KDE desktop), the tilde dead key is produced by Alt Gr + dead circumflex. I cannot guarantee this is standard because I heavily customised my keyboard tables. However, the “dead tilde” does not fully behave like COMBINING TILDE. The keyboard driver uses the dead tilde and the next key to try to match the pair to a known precomposed character. Thus it works for ~ + n to produce ñ but not with ~ + g.

    With the keyboard driver, the order of typing is dead key, then letter.

  • Another solution is the Insert>Special Character in LO Writer. The COMBINING TILDE is located in the Combining Diacritical Marks subset. But it does not seem to always result in overlay.

  • An alternate approach is to use the character selector/navigator of your OS (KCharSelect on mine). You find the COMBINING TILDE and copy it to the clipboard. Then, you type your letter and paste the tilde: ã̃ b̃̃ c̃̃ d̃̃ ẽ̃ …

  • You can also type your letter “303” (the hexadecimal code for COMBINING TILDE) and immediately Alt X (uppercase), provided the letter is not a-f/A-F which are also hexadecimal digits or type U+0303…

From my experiments, the combining property of U+0303 does not seem to be taking into accounts on consonants apart from “n”. I tried to type the characters in reverse order, COMBINING TILDE then letter, which is not the order defined by the Unicode standard, it only improves marginally the appearance of the result.

To show the community your question has been answered, click the ✓ next to the correct answer, and “upvote” by clicking on the ^ arrow of any helpful answers. These are the mechanisms for communicating the quality of the Q&A on this site. Thanks!

Hi! Thank you for responding!

I have this problem only with LibreOffice, I can type g̃ G̃ and ỹ Ỹ in other programs such as Webbrowsers, MS Office and Notepad from Windows. I installed Arial Unicode Fonts and now I can type ỹ and Ỹ but the nasal g’s are still not working.

Windows 10 has a keyboard for Guarani and it works perfectly in all other programs but not in LibreOffice.

The combining Diacritical Marks don’t work. I can type the g̃ in other programs and then copy + paste in LibreOffice, but it is not a solution. I don’t understand why it doesn’t work only in LibreOffice.