Автор Гілка: Знак гривні в TeX-системах  (Прочитано 8858 раз)

Відсутній gray380

  • Новачок
  • *
  • дописів: 45
  • Карма: +0/-0
  • Solaris
Вітаю!

Знак гривні є в TeX-системах?
Щось ґуґль не допоміг в пошуках.
We're all gonna be in the same place when we die.
We're all gonna be just dirt in the ground.
(c) Tom Waits

Відсутній yurchor

  • Видавець
  • *******
  • дописів: 3640
  • Карма: +3/-0
  • Grateful for our Iron Lung
    • Вікі користувачів KDE
Re: Знак гривні в TeX-системах
« Відповідей #1 : 2017-03-09 16:44:12 »
Вітаю!

Знак гривні є в TeX-системах?
Щось ґуґль не допоміг в пошуках.
Некоректна постановка питання: знак гривні може бути, а може і не бути у відповідному шрифті.


У Computer Modern Unicode немає.


Тому вибираєте будь-який шрифт, у якому є символ, і вставляєте його до вашого файла TeX. Потім вписуєте символ у текстовий файл початкового коду і збираєте.
Try to reach you before winter comes
Always a place for you in my heart
You're not alone
All used up
I'd give anything to talk to you

Відсутній gray380

  • Новачок
  • *
  • дописів: 45
  • Карма: +0/-0
  • Solaris
Re: Знак гривні в TeX-системах
« Відповідей #2 : 2017-03-09 17:01:10 »
Дякую.
Саме про шрифти йшлось.
Якщо у CM нема, значить нема ;)
Додавити инші шрифти, поки що, не бачу сенсу.
We're all gonna be in the same place when we die.
We're all gonna be just dirt in the ground.
(c) Tom Waits

Відсутній Олександр Барановський

  • Модератор дошки
  • Графоман
  • *****
  • дописів: 366
  • Карма: +0/-0
Re: Знак гривні в TeX-системах
« Відповідей #3 : 2017-04-11 13:14:00 »
Не обов’язково ж відмовлятися від CM: можна тільки символ гривні взяти з іншого шрифту, а весь текст хай буде CM.

Зацікавило це питання. Але я з XeTeX зовсім не працював раніше, довелося ґуґлити. Знайшов Foreign currency signs in XeTeX і Computer Modern fonts and Cyrillic letters. Вийшло таке:
Код: LaTeX
  1. \documentclass[a4paper]{article}
  2.  
  3. \usepackage{fontspec}
  4. \usepackage{newunicodechar}
  5.  
  6. \setmainfont[
  7.  Ligatures=TeX,
  8.  Extension=.otf,
  9.  BoldFont=cmunbx,
  10.  ItalicFont=cmunti,
  11.  BoldItalicFont=cmunbi,
  12. ]{cmunrm}
  13.  
  14. \newfontfamily{\currencies}{FreeSerif}
  15. \newunicodechar{}{{\currencies ₴}}
  16.  
  17. \usepackage{polyglossia}
  18. \setdefaultlanguage{ukrainian}
  19.  
  20. \begin{document}
  21.  
  22. Тест 123~₴
  23.  
  24. \end{document}

У мене не встановлено шрифти Computer Modern Unicode (і для експерименту я не хотів їх встановлювати). Тому викликав за іменем файла. Але якщо є Computer Modern Unicode, то замість рядків 6–12 можна написати просто
Код: LaTeX
  1. \setmainfont[Ligatures=TeX]{CMU Serif}

Тепер у мене таке запитання: чи можна якось таке зробити без XeTeX (тобто, використовуючи рушій pdfTeX)?

Я знаю, що можна «призначити» символу з унікодом 20B4 якусь «дію»:
Код: LaTeX
  1. \DeclareUnicodeCharacter{20B4}{\texthryvnia}
Але як означити \texthryvnia? Тобто

1. У якому Type 1 шрифті знайти потрібний гліф? Чи це взагалі можливо зі «стандартними TeXівськими шрифтами»? Наскільки я розумію цю технологію, файл опису шрифту може містити не більше ніж 256 елементів. Тому щоб додати якийсь новий символ, треба стандартний викинути, а цього ніхто робити не буде?

2. Якщо це неможливо зі стандартними TeXівськими шрифтами, то залишається тільки використовувати, наприклад, FreeSerif у форматі TrueType чи OpenType? Але підключити такі шрифти до стандартного рушія видається мені дуже нетривіальною задачею.

Як обхідний шлях я знайшов тільки варіант скласти потрібний символ з курсивної «г» і «дорівнює»:
Код: LaTeX
  1. \documentclass[a4paper]{article}
  2.  
  3. \usepackage[T2A]{fontenc}
  4. \usepackage[utf8]{inputenc}
  5. \usepackage[ukrainian]{babel}
  6.  
  7. \def\texthryvnia{%
  8.   \rlap{\textit{г}}%
  9.   \raisebox{0.2ex}{$\scriptscriptstyle=$}%
  10. }
  11. \DeclareUnicodeCharacter{20B4}{\texthryvnia}
  12.  
  13. \begin{document}
  14.  
  15. Тест 123~₴
  16.  
  17. \end{document}
У своїх заявках дехто з науковців описував, якими корисними будуть їхні заплановані дослідження для національних інтересів, тоді як насправді ними рухала щира наукова допитливість і бажання написати пару статей.
Станіслав М. Улям, «Пригоди математика»