Fontspec, шрифты открытого типа и линейные рисунки

Fontspec, шрифты открытого типа и линейные рисунки

Итак, вот в чем проблема: я использую fontspec, и у ряда моих шрифтов есть линейная фигура только в шрифте с малыми заглавными буквами. Поэтому мой вопрос в том, как мне сказать XeLaTeX, что когда дело доходит до чисел (нумерация разделов, сноски, ...), нужно брать их из этих файлов? Вместо обычного файла шрифта, который он использует для всего остального? Есть ли команда типа \setfigurefont?

решение1

Вероятно, лучше пропатчить команды, которые выводят цифры (вместе с пунктуацией и, возможно, заглавными буквами). Перечисление их всех может оказаться утомительным, поэтому, возможно, вам следует пойти \arabicнапрямую:

\newfontfamily\myLFfont[Numbers=Lining]{fontLF.otf} 
\let\arabicnumber\arabic
\def\arabic{\myLFfont\arabicnumber}

решение2

Размещаю это здесь, чтобы иметь возможность включить код.

Делаетэтот вопрос(особенно второй ответ) поможете вообще? Если у вас есть настройка для LaTeX, похоже, вы сможете объединить это с fontspec, используя что-то вроде предложенного кодаздесь:

\documentclass{article}
\usepackage{fontspec}
\newfontfamily\unicodefont{Lucida Grande}
\usepackage{mathpazo}
\usepackage[T1]{fontenc}
\begin{document}
A legacy \TeX\ font. {\unicodefont A unicode font.}
\end{document}

Если лицензия это позволяет, то преобразование шрифтов в формат type1 и создание файлов поддержки для LaTeX или pdfLaTeX, вероятно, будет самым простым решением, поскольку в данной ситуации нет никаких реальных преимуществ использования шрифтов opentype и XeLaTeX, и это только усложняет ситуацию.

Независимо от того, можете ли вы преобразовать сами шрифты в type1 или нет, вы можете сделать следующее:

  1. Сгенерируйте файлы .afm для шрифтов. Это даст вам что-то, что напримерФонтинстзнает, как с этим справиться.
  2. Используйте инструкции вРуководство по установке шрифтов Филиппа Леманано создайте виртуальные шрифты, которые берут линейные (а не старомодные) цифры из шрифтов с малыми капителями, поскольку именно так организованы ваши файлы. В уроке 3 объясняется, как это сделать, хотя вам нужно будет прочитать предыдущие уроки, если вы не знакомы с fontinst.
  3. Это позволит вам создать файлы, необходимые для использования виртуальных шрифтов, содержащих линейные фигуры, а затем вы сможете просто использовать соответствующие семейства при наборе документа.
  4. Вам нужно будет правильно установить шрифты для TeX, хотя для тестирования вы можете просто иметь все в своем рабочем каталоге, и это должно работать.

Я предполагаю, что если вы используете XeLaTeX, это позволит вам использовать линейные фигуры из шрифта opentype sc вместе с обычными верхними и нижними буквами из стандартного прямого шрифта opentype. Если вам разрешено их преобразовывать, создание шрифтов type1 даст вам большую гибкость, поскольку вы сможете использовать их и с обычным LaTeX.

Я понимаю, что LuaTeX может создавать виртуальные шрифты «на лету», так что вы также можете рассмотреть эту возможность, хотя я не знаю, как это работает и предложит ли это вам более простое решение в данном конкретном случае.

Вы потеряете доступ ко всем функциям OpenType шрифтов, которые у вас есть. Однако, судя по вашему описанию шрифтов, я подозреваю, что это мало что вам потеряет, если вообще что-то потеряет. Не похоже, чтобы шрифты были настроены на использование функций OpenType, и вы в любом случае не можете использовать функции, которых нет в шрифтах. (Если бы они были созданы с учетом OpenType, я бы ожидал, что разные стили рисунков будут включены в один и тот же шрифт и включены как функции OpenType. Это бы все значительно упростило, но, к сожалению, это не то, что у вас есть на самом деле.)

Связанный контент