Notepad++ : Strange depency between UTF8 characters for modal logic - utf-8

With an UTF8 encoding file in Notepad++, copy/paste the following:
∃ → ∃ ∃ ∃∃∃
Then replace the arrow by a space, you may expect ∃ ∃ ∃ ∃∃∃,
but you will get 6 unknown chars (white squares).
Paste again the arrow in any place on the line, the 'exists' symbols are recovered!
So, I cannot set the modal logic sentence ◊∃x[Φ(X)] in Notepad++.
I cannot explain. Any idea?
(PS: Using Notepad++ 64bits V7.8.7)

As suggested, i have logged an issue on github. More here
A patch is available if you want to recompile.
As a workaround, some fonts (and variants) available in notepad (i use win10) does not have this defect:
Cambria
some Noto (like Noto Naskh Arabic) , but not all
some Segoe (like Segoe Ui Symbol) but not all
Some Source Code Pro (like Source Code Pro Medium) but not all
All Yu Gothic ( i use now Yu Gothic Ui for my report )
Thanks to all.

Related

Italic and bold Latin, and Greek letters using custom unicode font in gnuplot to produce (e)ps or pdf

I would like to create a postscript or pdf figure with enhanced notations, italic or bold Latin characters, and sometimes (regular) Greek characters. How to do that in general?
Let's say I downloaded CMU Sans Serif, a font that has glyphs for all the strange characters I ever want to use. I converted them to pfa with an online tool and copied the files to the path of working directory.
Expectations
Let's say I'd like to produce the following notation somewhere.
What I tried: original
I create a gnuplot script encoded in a utf-8 file (without BOM) with the content
set term postscript eps enhanced "CMUSansSerif" 15 fontfile add 'CMUSansSerif.pfa' fontfile add 'CMUSansSerif-Oblique.pfa' fontfile add 'CMUSansSerif-Bold.pfa'
set encoding utf8
set o "print.eps"
p x t "Label: {/CMUSansSerif-Bold important }{/CMUSansSerif-Oblique note}: ∫⟨α₂ + β²⟩ = äßű"
set o
and executed with the newest gnuplot, version 5.2.6.
What I got
I used a vector graphics editor to open the eps file and relevant part looks like this:
What I also tried
According to Ethan's answer I added adobeglyphnames to the termoptions. It made at least the letters available but other Unicode symbols are still unavailable. The result is:
Question
What went wrong? How could I produce the desired output?
So many possibilities, where things can go wrong: Is the font not suitable for this task? Did I download a wrong version of it? Did the pfa converter do a bad job? Did I include the font files incorrectly? Was there something wrong with the set encoding? Do I use a bad vector graphics editor? Do I have wrong fonts installed and the vector graphics editor tries to use them?
I am afraid that the answer is that in general PostScript is the wrong tool for this. If it is at all possible for you to work with PDF output instead, I suggest you do that. It is even possible the resulting PDF file can be translated to a PostScript file by standard tools (e.g. pdf2ps). That is likely to work if the non-ascii characters are limited to Greek and other relatively common symbols but I don't know how much of the full unicode tables are covered by those standard tools.
If you really need to produce PostScript with additional unicode characters directly from gnuplot, you can find full instructions and sample character encoding tables in the gnuplot distribution files:
.../term/PostScript/unicode_maps.README
.../term/PostScript/unicode_big.map
.../term/PostScript/unicode_small.map
I am not familiar with the online tool font conversion you used but probably it failed because it did not have, or at any rate did not use, suitable character encoding tables for the desired conversion.
===
One other thought. There are two ways that a *.pfa font can encode unicode characters that are common enough to have a name assigned by Adobe for use in PostScript. (1) It may use generic names like uni0439 for Unicode code points. (2) It may use Adobe-specific names from the list here:
agl-aglfn glyph list
When selecting PostScript output from gnuplot you can tell it which of these two conventions is used by the font you provide. The default is "noadobeglyphnames".
set term postscript {no}adobeglyphnames
==
(recipe for using "set term pdfcairo")
Font handling is unfortunately system-specific, so I cannot tell you how to install or configure fonts on all your target machines. I will show you a procedure that works on a linux desktop that uses the fontconfig utilities for system font handling.
Create directory /home/share/fonts/CMUSans
Add this directory to the search list in file /etc/fonts/local.conf
Copy *.ttf files into this directory from the CMU Sans Serif zip archive you link to in your original query. The system fontconfig system tools should now be able to find these fonts. By inspection they self-report as "CMU Sans Serif"
in gnuplot (tested with version 5.2.6)
set term pdfcairo font "CMU Sans Serif,15"
set output 'enhanced_utf8.pdf'
load 'enhanced_utf8.dem'
convert output pdf file to PostScript with the following command
pdf2ps enhanced_utf8.pdf enhanced_utf8.ps
Screenshot of the result is shown below
It seems that CMU Sans Serif doesn't contain the UTF-8 characters you are asking for. Check the font with a font editor like Birdfont. Although the webpage shows symbols you want to use, the font itself does not contain them. However, your browser may show symbols, but they are just fallback representations from other fonts.

Chinese character are in different sizes in some apps (Eclipse, Notepad++, MSSQL)

I'm using Windows 10 pro and for some reason when I'm having Chinese character in any coding related program which not allows setting directly a Chinese font, most of the characters shown in a normal way and some in a different and smaller font, everything I tried, including changing font, change encoding, adding Chinese language pack to windows or changing windows to Chinese did not work, can someone try help me to fix it? Thanks!
Characters in Notepad++:
Characters in Eclipse:
The blurriness of the two too small characters 门 and 别 indicates that they are missing in the chosen font and have been replaced by characters of a bitmap/raster font.
Make sure to have a font installed and chosen that contains all the characters you want to use:
门 (U+95E8) font support
别 (U+522B) font support
For example, the font BabelStone Han (download link at the bottom of the page) supports these characters.
In Eclipse, the text editor font can be changed in Window > Preferences: General > Appearance > Colors and Fonts: Basic > Text Font.

Monospace fonts , quotes, and circumflex a

Most of the monospace fonts normally used for programming on Windows (all I have found so far) don't display 'funny quotes' (0xE2) properly. For example, an error message from the gcc compiler like
warning: conflicting types for built-in function âprintfâ
which is really
{funny quote}fname{funnyquote}
displays in Ludida Console, DejaVu, etc. as
{circumflex a}fname{circumflex a}
(It may be doing so for you right now). Is there a a helvetica-like monospace font that respects that particular 8-bit codepage?
Windows has a split personality. Most of it is based on Unicode, while some parts still rely on code page character translations.
The character you're getting for 0xE2 is the proper Unicode translation, and is the same in the very common code page 1252 and most of the rest as well. The only code page that has a quote for that value is code page 10000, Mac OS Roman.
The chcp command is used to change the code page of the command window, but I can't get it to work for your specific case.

How to display math in LaTeX font using Visual Studio 2010 C#

I would like to display mathematical symbols in the conventional LaTeX Font using C# in Visual Studio 2010. I do NOT want to use the LaTeX equation editing machinery, I only want to use the
traditional LaTeX font family, which I believe is called Computer Modern. Using mathematical
symbols in this font, I would like to build my own equation editor.
I have already downloaded and installed the Computer Modern font, and indeed I can now select this font from the list in Visual Studio. However, as a result all the text characters are indeed displayed in the Computer Modern font, all the mathematical symbols are NOT; the latter seem to be completely unaffected by changing the Font Family property.
For example, I have a label whose content property is a text string which contains a formula,
say the integral over x of some function f(x). I would like to display the formula in the conventional LaTeX font style. I use the unicode \u222b to refer to the integral sign. So the
text string reads \u222b f(x)dx. Now, when I change the Font Family property, only the text f(x)dx is affected, but the integral sign remains exactly the same! I find the unicode integral sign
extremely ugly, and the traditional LaTeX integral sign very beautiful, as is the case for many
other mathematical symbols as well. How can I make sure that the integral sign becomes displayed in the traditional LaTeX font style?
Please use a simple language in your answer, I am not a professional!
Any help is much appreciated!
If you downloaded a Computer Modern font that Windows understands, this is likely a conversion to TTF of the original representation in TeX. TeX was invented before Unicode, so these characters are probably missing from the converted font, causing Windows to fall back onto its default font.
TeX also does custom tricks, such as composing multiple glyphs into stretchable integral signs, which are not supported by the Windows font renderer.
Furthermore, using such a custom font, your application won't work properly on computers that don't have the font.
I think your best bet, sad but true, is to use LaTeX to render the equations to PNG files (with a transparent background), and use these in your UI. This question on SuperUser should help you accomplish the creation of these PNGs.

Changing font of text error

I have a textbox control inside of a software app which has some text in it. That software is using a custom font which doesn't exist anywhere else and is just specific to this program. I don't have it's source or access to it's creators. Now I want to copy that text inside of a notepad or MS word but when I do the text is no more readable unless I change the font of word processor to the font that the software is using (the font that text is written with). So I want the text to be readable anywhere and not to depend on a specific font. So is it possible?
I'm a c# programmer. Here is an example of unreadable text:
ý¶† ±øõœ ­ý¶† –ý¾‡¨ ÿ†°†¬ ­ñð‡ì úÞ±¶ Ä쇤 ½±”
à¥ì ±øõœ þ·ñœ­Œ Ý稆­Œ ô±º±” (.ì)
[þü‡íý‘†õø]
ý¶†
[þ¶­ñùì ïõéÎ]
±øõœ ­ý¶† ‡º±”
[þíýº]
ý¶†
[úð‡ýì‡Î —‡¤çȾ†] ÿ¬.¹†.ë† °­©ì ÿû¬‡ì ²† þÎõð.ÿ¬.¹†.ë†"
The interesting thing is that it's showing up like this in almost all the fonts except the one that text is originally written with. By the way the text is in Arabic and all of fonts that I tested the text with are supporting Arabic chars.
Now if I type some text that consist of English and Arabic in that font then change the font of notepad to some other font it's looks OK and works normal! So the problem only appears when the text is pasted into the word processor.
EDIT: I think I found the problem! The custom font is a raster font (bitmap font) which has a .fon extension and in the following thread someone wanted to convert the bitmap font to ttf since he was having a problem in printing the documents. I want to copy and paste, so maybe I have to convert the font ?
The discussion:
how to convert a bitmap font .fon into a truetype font ttf
Any kind of help is really appreciated.
thank you.
any kind of help is really appreciated.
If I had seen this question on superuser.com my answer would have been:
You can change the font of text from font A to Arial.
For example in Microsoft Word
Open the Replace dialog box (Edit >> Replace or Ctrl + H)
Make sure no text is specified in the Find what or Replace with boxes
Click in the Find what box, then click Format (If you don’t see the Format button, click More to expand the search options)
Select Font from the pop up list
In the Find Font dialog box, select the text formatting options you would like to replace
Click OK
Click in the Replace with box
Click Format
Select Font from the pop up list
In the Replace Font dialog box, select the new text formatting options you would like to apply
Click OK
Click Replace all
Click OK
Click Close
(from http://wordprocessing.about.com/cs/quicktips/qt/fontreplace.htm)
As an aside: If the document uses styles, it is actually much easier to change the font. For this reason I try to always use styles and never directly apply fonts to text.
If you are not referring to Word documents, please amend your question to say exactly what software was used to create the text - or exactly what file-format the text is stored in.
Since you asked on stackoverflow.com I slowly deduced you may be writing a program in some unspecified programming language. I suggest you edit your question and specify what programming language you are using and give some example code to illustrate the problem.
For example, in Java you might do something like
JLabel label = new JLabel("hello world");
label.setFont(new Font("Arial", Font.PLAIN, 12));
It sounds very much as though the author of the original program has invented their own character encoding and provided a font to go with it. Maybe the development tools were restricted to ANSI text and the developers came up with this extreme solution.
Test out the hypothesis by writing some English text in the custom
font and see if Arabic
characters appear.
If this is so then you will have to work out what the encoding is and translate the strings character by character.

Resources