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
257
Вот идеи от того, кто не имел дела с 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, Супермодераторы



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

Сейчас этот форум просматривают: нет зарегистрированных пользователей


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

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