Как диакритические знаки представлены шрифтом и напечатаны в приложении Java? - PullRequest
1 голос
/ 15 августа 2011

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

При выводе помеченной цифры печатная машинка использовала тот же двухтактный процесс.

Поскольку «флаг» подобен диакритическому знаку (например, тильде в ñ), я представляю себе, что могу иметь возможность трактовать его как таковой, привязывая его к собственному уникальному ключу, а не к опции-n (как вы делать на Mac).

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

Фонография (если это слово) очень сложная, поэтому я надеюсь, что кто-то, разбирающийся в предмете, сможет указать мне на соответствующие темы.

Ответы [ 2 ]

1 голос
/ 16 августа 2011

Добавьте юникод 0305 после числа в отображаемом тексте:

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.WindowConstants;

public class MacronTest {

  public static void main(String[] args) {
    JFrame jframe = new JFrame();
    JLabel label = new JLabel();
    jframe.add(label);
    jframe.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
    label.setText("1\u0305");
    jframe.setVisible(true);
  }

}
1 голос
/ 15 августа 2011

Java использует Unicode.Некоторые из символов с диакритическими знаками имеют свой собственный символ .Но есть также опция диакритические знаки при ударе , которые фактически имеют нулевую ширину.Примеры здесь и здесь .

Чтобы отобразить их в выводе, вам нужен правильный шрифт.

Что касается представления их в исходном коде, хотя Java в принципе может включать любой символ Unicode в исходный код, в обычной практике это не делается.Вместо этого используются экранированные символы Юникода (например, \ucc81) или символы, не входящие в ASCII, читаются из внешнего источника.

Если вы хотите создать шрифт, это не связано с Java.Для этого вам понадобятся подходящие инструменты, такие как FontCreator или FontLab.Эти шрифты должны быть затем установлены в ОС, из которой Java будет ссылаться на них.хотя загрузка их в Java также возможна.

...