2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




На страницу Пред.  1, 2, 3  След.
 
 Tab stop
Сообщение10.03.2020, 07:39 
Аватара пользователя
arseniiv в сообщении #1443964 писал(а):
Или например фигурный пробел, полезный для позиционирования арабскоцифренных чисел, в большей части шрифтов имеющих одинаковую ширину...
Для этого же (и подобного) есть decimal tab stop и dynamic tab stop.
Tab stop писал(а):
Some software supports tab stops whose positions are set dynamically by the position of a specific character in a line of text. Adobe InDesign supports this with a non-printing "indent to here" character.

 
 
 
 Re: Очередное шапито при парсинге: символ 160
Сообщение10.03.2020, 13:10 
Ну вы раз с HTML работаете, вам достаточно перед анализом полученной страницы с кодом text сделать что-то типа

Код:
text = text.replace(' ', ' ');
text = text.replace(' ', ' ');
text = text.replace(' ', ' ');
...

 
 
 
 Re: Очередное шапито при парсинге: символ 160
Сообщение10.03.2020, 14:12 
Аватара пользователя
Про пробелы

 
 
 
 Re: Очередное шапито при парсинге: символ 160
Сообщение10.03.2020, 14:57 
Аватара пользователя
arseniiv в сообщении #1443990 писал(а):
А как же единица, она не так редко тоньше.
Munin в сообщении #1443991 писал(а):
Она по внешнему виду тоньше, но по размеру символа занимает полное знакоместо.
Оказывается, прав всё же arseniiv, а за примерами далеко ходить не надо.

Arial:

Изображение

Times New Roman:

Изображение

По 80 цифр в строке. Использовался LibreOffice Wtiter.

 
 
 
 Re: Очередное шапито при парсинге: символ 160
Сообщение10.03.2020, 15:04 
Aritaborian в сообщении #1444037 писал(а):
LibreOffice Wtiter.

В ворде и блокноте вроде ровно все.

 
 
 
 Re: Очередное шапито при парсинге: символ 160
Сообщение10.03.2020, 15:09 
Аватара пользователя
gevaraweb, а какой у вас был шрифт?

Windows Notepad, Arial:

Изображение

Windows Notepad, Times New Roman:

Изображение

(MS Word у меня нет, проэкспериментировать не могу.)

 
 
 
 Re: Очередное шапито при парсинге: символ 160
Сообщение10.03.2020, 15:25 
Aritaborian действительно, в блокноте от шрифта играет... в ворде реже, но бывает

Изображение

 
 
 
 Re: Очередное шапито при парсинге: символ 160
Сообщение10.03.2020, 16:12 
Аватара пользователя
gevaraweb в сообщении #1444043 писал(а):
в блокноте от шрифта играет... в ворде реже, но бывает

Это явно Ворд умничает, а в фонте ширина разная - проверил в фотошопе.

И в Иллюстраторе ширина разная.

 
 
 
 Re: Очередное шапито при парсинге: символ 160
Сообщение10.03.2020, 16:16 
Munin в сообщении #1443991 писал(а):
Она по внешнему виду тоньше, но по размеру символа занимает полное знакоместо.
Часто, но не всегда! (Да, это уже можно было не писать ввиду предыдущих постов.)

gevaraweb
eugensk уже написал, что уникод определяет свойства кодпойнтов, позволяющие матчить их суразно, но например движок JS в Firefox ещё не научился воспринимать \p{...} в регэкспах. Во многих языках однако поддержка таких вещей уже давно. Главное только знать, что конкретно значит то или иное свойство/категория, чтобы не сделать слишком широкий или узкий критерий. Заменять же пробелы по одному — сомнительная с точки зрения производительности и удостоверения корректности затея.

Aritaborian
gevaraweb
Сравните версии шрифтов. Ещё кстати вроде мог быть при рендеринге переключатель того, использовать ли цифры разной или одинаковой ширины, но я ни про какую программу не знаю, как подобные вещи в них переключать (в шрифтах позволены ещё другие вариации, типа old-style numerals, имеющих разную высоту и выходящих вниз и вверх, против обычных).

 
 
 
 Re: Очередное шапито при парсинге: символ 160
Сообщение10.03.2020, 20:21 
Моноширинность цифр в пропорциональном шрифте спасает не всегда: вдруг система счисления более чем десятичная? А символы ABCDEF (хотя бы, а то и остальные тоже) вполне могут отличаться от ширины цифр. Мне так несколько раз в МК понадобилось рисовать эти символы дважды в шрифте, обычно и моноширинно для использования в качестве "цифр".
А ещё аналогичная проблема часто есть с символами десятичной точки (для чисел), изредка с символом двоеточие (для времени) и символом деления (для даты). Почти всегда проблема с символом плюса и минуса. Изредка и с другими символами возникает засада. Так что одним пробелом и единицей проблема не исчерпывается.

 
 
 
 Re: Очередное шапито при парсинге: символ 160
Сообщение10.03.2020, 20:44 
Аватара пользователя
В общем так, господа.
В нормальных цивилизованных шрифтах, кроме этих ваших пропорциональных букв, есть ещё диапазон Unicode Halfwidth and Fullwidth Forms, в котором все цифры и буквы латиницы имеют совершенно одинаковую стандартную ширину. Можно ими набирать хоть 16-ричные числа, хоть 62-ичные.
Надеюсь этим поставить точку в этом не очень осмысленном обсуждении.

 
 
 
 Re: Очередное шапито при парсинге: символ 160
Сообщение10.03.2020, 20:48 
Ну эти диапазоны не сами для себя придуманы и их обычно нет в шрифтах, не содержащих китайские иероглифы или кану, или они могут выглядеть страаашно даже в таких.

-- Вт мар 10, 2020 22:50:41 --

Наконец вроде в шрифтах с правильными пропорциями ерогов пропорции halfwidth латиницы и цифр будут слишком узкими, а fullwidth — слишком широкими, точнее более вероятно со слишком большими визуальными пробелами.

 
 
 
 Re: Очередное шапито при парсинге: символ 160
Сообщение10.03.2020, 20:51 
Аватара пользователя
arseniiv в сообщении #1444127 писал(а):
и их обычно нет в шрифтах, не содержащих китайские иероглифы или кану

...да кому они нужны, такие шрифты?..

-- 10.03.2020 20:53:12 --

arseniiv в сообщении #1444127 писал(а):
Наконец вроде в шрифтах с правильными пропорциями ерогов

Как написано у А.Привалова: "не бывает". Не доросла типографика пока до того, чтобы правильно изобразить то, что простой китайский старичок легко пишет кисточкой.

 
 
 
 Re: Очередное шапито при парсинге: символ 160
Сообщение10.03.2020, 20:54 
Ну кстати нужны, если например думать про веб-шрифты, которые клиентский браузер скачивает, если они не в кэше. Тогда если такой шрифт не используется для некоторых весьма больших диапазонов, связанных с весьма сложными в среднем по форме символами, лучше их поддержку обрезать, чтобы шрифт загружался быстрее.

-- Вт мар 10, 2020 22:56:32 --

Munin в сообщении #1444128 писал(а):
Не доросла типографика пока до того, чтобы правильно изобразить то, что простой китайский старичок легко пишет кисточкой.
Ну тогда читайте ту часть как «с наиболее правильными из имеющихся». Я хотел отсечь только немногочисленные потенциальные шрифты, где ероги добавили от балды «чтобы были», не особо разбираясь в них, или скопировали откуда-то с неправильной метрикой (вот это не так уж гипотетическо).

 
 
 
 Re: Очередное шапито при парсинге: символ 160
Сообщение11.03.2020, 01:20 
Аватара пользователя
Добавлять CJK ideographs - отдельная большая попоболь, так что "от баллы" это не делают.

 
 
 [ Сообщений: 40 ]  На страницу Пред.  1, 2, 3  След.


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group