2014 dxdy logo

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

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




Начать новую тему Ответить на тему На страницу 1, 2  След.
 
 Шрифт Consolas. Как его встроить в TeX Live, OS FreeBSD
Сообщение30.08.2016, 18:02 


25/11/11
19
Как встроить шрифт Consolas, чтобы он работал на TeX Live 2016, на web-сервере под OS FreeBSD?

 Профиль  
                  
 
 Re: Шрифт Consolas. Как его встроить в TeX Live, OS FreeBSD
Сообщение30.08.2016, 18:36 
Заслуженный участник


26/05/14
981
Это платный шрифт. Вам придётся купить лицензию у Microsoft.

 Профиль  
                  
 
 Re: Шрифт Consolas. Как его встроить в TeX Live, OS FreeBSD
Сообщение30.08.2016, 18:43 


25/11/11
19
Купим.
Для нас это очень важно. Есть код, который на лету по Windows изготавливает PDF-листинги программ, написанных на С/C++, PHP, Pascal.
Но это под Windows. XeLaTeX берет шрифт Consolas прямо из системной папки. А шрифта, подобного Consolas под FreeBSD в TeX Live нет :-(
Неужели его никак не "прикрутить" на web-сервере?
Может быть, кто-нибудь, подобной проблемой занимался?

 Профиль  
                  
 
 Re: Шрифт Consolas. Как его встроить в TeX Live, OS FreeBSD
Сообщение30.08.2016, 18:54 
Заслуженный участник


26/05/14
981
Google говорит: http://tex.stackexchange.com/questions/ ... ve-utility
От себя добавлю, что всегда остаётся возможность держать Windows в виртуальной машине.

 Профиль  
                  
 
 Re: Шрифт Consolas. Как его встроить в TeX Live, OS FreeBSD
Сообщение30.08.2016, 19:29 


25/11/11
19
На сервере хостинга у меня нет виртуальной машины.
Утилита
getnonfreefonts
на сайт установлена.
Но как получить Consolas для TeX Live?

 Профиль  
                  
 
 Re: Шрифт Consolas. Как его встроить в TeX Live, OS FreeBSD
Сообщение30.08.2016, 19:44 
Заслуженный участник


26/05/14
981
К сожалению, я не знаю ответа на этот вопрос.
Как программист, я уверен что прочитав код этой утилиты вы поймёте как именно работает установка платных шрифтов и сумеете повторить процедуру для Консолас.

 Профиль  
                  
 
 Re: Шрифт Consolas. Как его встроить в TeX Live, OS FreeBSD
Сообщение30.08.2016, 19:54 


25/11/11
19
Чтение кода утилиты не помогает "прикрутить" Consolas :-(
Не хочется изготавливать листинги с помощью шрифтов sm-super.
Все-таки, 1 место по красоте программистского шрифта заслужено отдано именно Consolas.
Пробовал шрифт Inconsolata (очень похожего на Consolas), Inconsolata встроен в TeX Live, но, к сожалению, в нем нет кириллицы.

 Профиль  
                  
 
 Re: Шрифт Consolas. Как его встроить в TeX Live, OS FreeBSD
Сообщение30.08.2016, 20:33 
Заслуженный участник


26/05/14
981
Беглое чтение скрипта и его брата (их там двое) показало что
1. Форматы файлов шрифтов не ttf. Надо преобразовывать, а как не ясно.
2. Установка каждого конкретного шрифта делается своим специальным кодом. Надо разбираться в том как TeX Live их использует.
К сожалению, я пас.

 Профиль  
                  
 
 Re: Шрифт Consolas. Как его встроить в TeX Live, OS FreeBSD
Сообщение30.08.2016, 22:08 


13/07/14
258
Вот идеи от того, кто не имел дела с FreeBSD.
Перейти на lualatex.
Выяснить, откуда он берет шрифты (наверняка можно почитать, про команды обновления загрузки шрифтов и для xelatex).
Используется синтаксис Bash
luaotfload-tool --update -f
luaotfload-tool --find="Arial"

Положить туда Consolas и ещё раз обновить инфу о шрифтах.
Или аналогичными махинациями заставить искать шрифты в папке с документом.


Вообще, строго говоря, fontspeс'у можно прописать конкретный путь до папки со шрифтами или до шрифта. По аналогии с:
код: [ скачать ] [ спрятать ]
Используется синтаксис LaTeX
%%% Кодировки и шрифты %%%
\ifxetexorluatex
    \setmainlanguage[babelshorthands=true]{russian}  % Язык по-умолчанию русский с поддержкой приятных команд пакета babel
    \setotherlanguage{english}                       % Дополнительный язык = английский (в американской вариации по-умолчанию)
    \ifwindows
        \setmonofont{cour}[                     % Courier New
            Script = Latin,
            Path = c:/windows/fonts/,
            Extension = .ttf,
            UprightFont = *,
            BoldFont = *bd,
            ItalicFont = *i,
            BoldItalicFont = *bi]
        \newfontfamily\cyrillicfonttt{cour}[    % Courier New
            Script = Cyrillic,
            Path = c:/windows/fonts/,
            Extension = .ttf,
            UprightFont = *,
            BoldFont = *bd,
            ItalicFont = *i,
            BoldItalicFont = *bi]
    \else
        \setmonofont{Courier New}
        \newfontfamily\cyrillicfonttt{Courier New}[Script = Cyrillic]
    \fi
    \ifXeTeX
        \defaultfontfeatures{Ligatures=TeX,Mapping=tex-text}
    \else
        \defaultfontfeatures{Ligatures=TeX}
    \fi
    \ifwindows
        \setmainfont{times}[                    % Times New Roman
            Script = Latin,
            Path = c:/windows/fonts/,
            Extension = .ttf,
            UprightFont = *,
            BoldFont = *bd,
            ItalicFont = *i,
            BoldItalicFont = *bi]
        \newfontfamily\cyrillicfont{times}[     % Times New Roman
            Script = Cyrillic,
            Path = c:/windows/fonts/,
            Extension = .ttf,
            UprightFont = *,
            BoldFont = *bd,
            ItalicFont = *i,
            BoldItalicFont = *bi]
        \setsansfont{arial}[                    % Arial
            Script = Latin,
            Path = c:/windows/fonts/,
            Extension = .ttf,
            UprightFont = *,
            BoldFont = *bd,
            ItalicFont = *i,
            BoldItalicFont = *bi]
        \newfontfamily\cyrillicfontsf{arial}[   % Arial
            Script = Cyrillic,
            Path = c:/windows/fonts/,
            Extension = .ttf,
            UprightFont = *,
            BoldFont = *bd,
            ItalicFont = *i,
            BoldItalicFont = *bi]
    \else
        \setmainfont{Times New Roman}
        \newfontfamily\cyrillicfont{Times New Roman}[Script = Cyrillic]
        \setsansfont{Arial}
        \newfontfamily\cyrillicfontsf{Arial}[Script = Cyrillic]
    \fi
\fi

 Профиль  
                  
 
 Re: Шрифт Consolas. Как его встроить в TeX Live, OS FreeBSD
Сообщение01.09.2016, 10:41 


25/11/11
19
Большое спасибо
slavav
и
Lenchik
в обсуждении проблемы.

Теперь все работает!
1. На web-servere папка с TeX Live 2016
texlive
весит 2.6 GB
Она находится в каталоге сайта
htdocs

2. В домашнем каталоге ~
создал папку
/.fonts.conf
в нее переписал из папки TEXMFSYSVAR/fonts/conf
конфигурационный файл (он создается при установке XeTeX)
texlive-fontconfig.conf.
Это сделано затем, чтобы XeTeX и LuaTeX могли
использовать все шрифты, установленные в FreeBSD, а не
только те, которые находятся в директориях TeX'a.
Шрифты будут искаться по имени.

А потом этот же конфигурационный файл
texlive-fontconfig.conf
скопировал в
/www/webworkb/.config/fontconfig/conf.d
Затем посмотрел, что скажет команда
$ fc-cache -r

3. В домашнем каталоге ~ создал папку
/.fonts
и поместил в нее папку Consolas c 4-мя шрифтами
consola.ttf
consolab.ttf
consolai.ttf
consolaz.ttf

4. После этого запустил
$ fc-cache -fv
и увидел шрифты, которые есть вне системы TeX Live.
Результат работы этой утилиты - список директорий, в
которых TeХ Live будет дополнительно искать шрифты,
которые нужны пользователю - программе *.tex
Внимательно изучил наличие этих директорий.
Есть ли они, и какие шрифты в них находятся.

Увидел, что в директории
/www/webworkb/.cache/fontconfig
идет проверка (cleaning) файлов

Понял, что шрифты ищутся в директориях
/www/webworkb/.local/share/fonts - ее нет
/www/webworkb/.fonts - она уже есть!
/www/webworkb/.fontconfig - ее нет

5. Для просмотра системных шрифтов сервера FreeBSD запустил
$ fc-list
или
$ fc-list -f "%{family}\n" | sort -u
[
в результате работы команды первой строкой будет
Consolas
]
или
$ fc-list : family style file spacing

6. Вот теперь будет работать команда
$ xelatex color.tex
Будет порождаться файл color.pdf

Впервые это случилось 31.08.16, 16:17, Surgut
Впервые сработал Consolas на web-сервере хостинга.

В файле color.tex
есть две команды:
\usepackage{fontspec}

% MSP, 01.09.16, 10:47
\setmainfont{Consolas}%
[
Path = /www/webworkb/.fonts/Consolas/,
UprightFont = consola.ttf,
BoldFont = consolab.ttf
]
они записаны выше
\usepackage[english, russian]{babel}

Все!
Проблема решена!
Файл компилируется удаленно по команде с интерфейса сайта.

Еще раз спасибо за обсуждение проблемы.

 Профиль  
                  
 
 Re: Шрифт Consolas. Как его встроить в TeX Live, OS FreeBSD
Сообщение01.09.2016, 15:51 


25/11/11
19
На вход сайта подается листинг, например, *.php
Результат работы скрипта, позволяющего создать PDF-ку на Consolas:
http://www.best-listing.ru/php_1.pdf

 Профиль  
                  
 
 Re: Шрифт Consolas. Как его встроить в TeX Live, OS FreeBSD
Сообщение01.09.2016, 22:14 
Заслуженный участник
Аватара пользователя


30/01/06
72407
texMSP в сообщении #1147922 писал(а):
Все-таки, 1 место по красоте программистского шрифта заслужено отдано именно Consolas.

Простите за вопрос не по теме, а в чём его существенное отличие от Lucida Console?

 Профиль  
                  
 
 Re: Шрифт Consolas. Как его встроить в TeX Live, OS FreeBSD
Сообщение01.09.2016, 22:33 
Заслуженный участник


26/05/14
981
Munin в сообщении #1148398 писал(а):
Простите за вопрос не по теме, а в чём его существенное отличие от Lucida Console?
Хотя на вкус и цвет товарища нет, но разница огромная. Особенно для тех кому приходится смотреть на код по нескольку часов подряд. Consolas - лучший выбор на Windows. Он легче читается чем Lucida и он лучше сглаживается на LCD экранах.

 Профиль  
                  
 
 Re: Шрифт Consolas. Как его встроить в TeX Live, OS FreeBSD
Сообщение02.09.2016, 00:03 
Заслуженный участник
Аватара пользователя


30/01/06
72407
Ну, мне приходится. Ладно, убедили, надо бы попробовать. Хотя откуда его взять...

 Профиль  
                  
 
 Re: Шрифт Consolas. Как его встроить в TeX Live, OS FreeBSD
Сообщение02.09.2016, 07:10 


25/11/11
19
Munin в сообщении #1148428 писал(а):
Ну, мне приходится. Ладно, убедили, надо бы попробовать. Хотя откуда его взять...

Например, в Windows 7, в папке Fonts.

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 22 ]  На страницу 1, 2  След.

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: YandexBot [bot]


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group