Где найти код семейства для пользовательского шрифта

Где найти код семейства для пользовательского шрифта

Есть ли справочный список для кодировки шрифтов в LaTeX? Место, где можно найти определенный шрифт и получить соответствующий код, который его представляет. Некоторые из них даже не логичны, например, дляГерои TeX GyreЯ бы представил себе код вроде " tgh", но код выглядит так: " qhv":

{\usefont{T1}{qhv}{b}{n}\selectfont\huge}  %"qhv" - TeX Gyre Heros, "b" - bold
{\usefont{T2A}{qcr}{m}{n}qcr\selectfont}   % Another font

Я искал эквивалентный семейный код дляАлегреяиАлегрея Сансно я не могу его найти. Он должен существовать, я думаю, потому что моя логика говорит мне, что каждый шрифт в мире имеет такой код, связанный с ним? Или, может быть, нет? Где можно искать такой код? Я также открыл шрифт в моем просмотрщике шрифтов, но безуспешно.

Ваше здоровье!

решение1

Более общий способ поиска имени семейства, который не требует от вас открытия файлов и не зависит от существования файла .sty, — это использование имен файлов определения шрифта ( .fd). Это будет работать с любым шрифтом, настроенным для использования с LaTeX, независимо от того, .styпредоставлен файл или нет.

Предположим, вы хотите использовать Zapf Chancery. Это поставляется пакетом zapfchanи включено в стандартные дистрибутивы TeX. Изучение содержимого texmf-dist/tex/latex/zapfchan/(TeX Live):

8ruzc.fd   omluzc.fd  omsuzc.fd  ot1uzc.fd  t1uzc.fd   ts1uzc.fd

В этом случае файла нет .sty. Это делает еще более важным возможность выяснить фамилию, поскольку это единственный способ использовать шрифт с LaTeX.

На этом этапе полезно немного узнать о кодировках шрифтов. 8r, oml, oms, ot1, t1и ts1— это строчные версии различных кодировок шрифтов, используемых TeX: 8r, OML, OMS, OT1, T1 и TS1. Чтобы выяснить название семейства, неважно, что это. Важно лишь то, что вы знаете, что это кодировки.

  • Возьмите имя любого .fdфайла. -> Например t1uzc.fd, .
  • Удалите .fdсуффикс. -> Например t1uzc.
  • Удалите префикс кодировки. -> Например uzc.
  • Остается название семейства шрифтов. Например uzc, .

Некоторые шрифты могут иметь несколько различных семейств шрифтов, в дополнение к различным кодировкам. В этих случаях вам нужно будет провести дополнительное исследование, чтобы выяснить, какое семейство вы хотите использовать. Однако для Zapf Chancery есть только одно семейство, uzcи именно его вы будете использовать для выбора шрифта в LaTeX.

Названия файлов определения шрифтов сообщают вам еще одну важную информацию: они сообщают, в каких кодировках доступен шрифт. В этом случае у вас есть:

  • 8r: это «сырая» кодировка — можете забыть об этом, если только вы не заинтересованы в самостоятельном создании пакетов шрифтов;
  • OML/OMS: кодировки, поддерживающие математику;
  • OT1: кодировка текста TeX по умолчанию, также используется в математике;
  • T1: улучшенная кодировка текста с гораздо лучшей поддержкой, чем OT1, в частности, для диакритических символов;
  • TS1: дополнительная текстовая кодировка, которая предоставляет различные символы, такие как символ авторского права, цифры старого стиля и т. д.

В этот момент вы можете быть озадачены, обнаружив, что

\fontencoding{T1}\fontfamily{uzc}\selectfont Is this Zapf Chancery?

все еще выдает Computer Modern Roman вместо Zapf Chancery. LaTeX предупредит вас, что он заменил шрифты на консоли и в журнале, а (для pdfTeX) ваш просмотрщик PDF покажет вам, что CMR все еще используется. Почему выбор шрифта не удается?

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

Читая t1uzc.fd, находим следующую строку:

\DeclareFontShape{T1}{uzc}{mb}{it}{
   <-> uzcmi8t
}{}

Это показывает, что семейство включает в себя шрифт серии mb(средний жирный) и начертание it(курсив).

Следующие два объявления формы:

\DeclareFontShape{T1}{uzc}{m}{it}{<->ssub * uzc/mb/it}{}
\DeclareFontShape{T1}{uzc}{mb}{sl}{<->ssub * uzc/mb/it}{}

сообщите нам, что этот единственный шрифт ( uzc/mb/it) автоматически заменяется (т.е. без предупреждения), если запрашивается курсивная форма в средней насыщенности ( mсерия) или наклонная форма ( sl) в средней жирной серии.

Окончательное объявление формы:

\DeclareFontShape{T1}{uzc}{m}{sl}{<->ssub * uzc/mb/sl}{}

говорит нам, что uzc/mb/slмолча заменяется, если запрашивается наклонная форма в средней серии. Поскольку курсив, средний полужирный заменяются в uzc/mb/slлюбом случае, это фактически означает, что независимо от того, какой курсив и наклонный запрашиваются, и независимо от того, какой средний и средний полужирный, мы всегда получим курсив, средний полужирный.

Однако для стандартной, прямой формы ничего не определено. Поэтому, чтобы фактически использовать Zapf Chancery, нам нужно также изменить форму на курсив или наклонную. Чтобы быть в безопасности, лучше всего указать и толщину. Таким образом, если, скажем, жирный шрифт активен, мы не получим чего-то неожиданного (например, CMR жирным шрифтом).

\fontencoding{T1}\fontfamily{uzc}\fontshape{it}\fontseries{mb}\selectfont Is this Zapf Chancery?

Обратите внимание, что этот метод поиска фамилии будет работать независимо от того, соответствует ли название шрифта схеме Berry. Например,

texmf-dist/tex/latex/ebgaramond/T1EBGaramond-OsF.fd

говорит нам, что в кодировке T1 доступно семейство шрифтов с указанным именем, EBGaramond-OsFкоторое мы могли бы выбрать аналогичным образом, \fontfamily{}если это уместно. [Хотя в этом случае, как правило, лучше использовать файл, .styпредоставленный пакетом.)

решение2

Шрифты Alegreya (с засечками и без) не используют схему Berry, где название семейства представляет собой трех- (или четырех) буквенную аббревиатуру.

Фамилии вы найдете в Alegreya.styи AlegreyaSans.sty.

Алегрея

220 \else % type1
221 
222   \def\Alegreyafamily{Alegreya-\Alegreya@figurealign \Alegreya@figurestyle}
223   \def\Alegreya{\fontfamily{\Alegreyafamily}\selectfont}
224   \def\AlegreyaLF{\fontfamily{Alegreya-LF}\selectfont}
225   \def\AlegreyaOsF{\fontfamily{Alegreya-OsF}\selectfont}
226   \def\AlegreyaTLF{\fontfamily{Alegreya-TLF}\selectfont}
227   \def\AlegreyaTOsF{\fontfamily{Alegreya-TOsF}\selectfont}

АлегреяСанс

235 \else % type1
236 
237   \def\AlegreyaSansfamily{AlegreyaSans-\AlegreyaSans@figurealign \AlegreyaSans@figurestyle}
238   \def\AlegreyaSans{\fontfamily{\AlegreyaSansfamily}\selectfont}
239   \def\AlegreyaSansLF{\fontfamily{AlegreyaSans-LF}\selectfont}
240   \def\AlegreyaSansOsF{\fontfamily{AlegreyaSans-OsF}\selectfont}
241   \def\AlegreyaSansTLF{\fontfamily{AlegreyaSans-TLF}\selectfont}
242   \def\AlegreyaSansTOsF{\fontfamily{AlegreyaSans-TOsF}\selectfont}

Я добавил номера строк для справки. Последние четыре строки в каждом фрагменте кода сообщают, что использовать в качестве аргумента для \fontfamily.

Аббревиатуры LF, OsFи означают «lining figures», «oldstyle figures», «tabular lines figures» и «tabular oldstyle figures» TLF.TOsF

Для XeLaTeX или LuaLaTeX проще: введите

\newfontfamily{\alegreyasans}[
  <options>
]{AlegreyaSans}

и используйте \alegreyasansэтот шрифт, когда вам это нужно.

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