LINUX.ORG.RU

Xelatex + спецификация eskdx + гостовские шрифты

 , ,


0

2

Добрый вечер

Помогите осилить проблему. Хочу сделать идеальную спецификацию. Сейчас со шрифтами не получается. Шрифт использую гостовский, из КОМПАС 3D. Он установлен в системе и в том же LibreOffice я могу задать тексту любые аттрибуты, а тут нет.

Собственно, сейчас у меня есть вот такой исходник

% Поддержка \No (символ №) убрана из нового babel и вместо него теперь используется \textnumero
\newcommand{\No}{\textnumero}

\documentclass[]{eskdtab}

\usepackage{eskdspec}

\usepackage{ifxetex}
\ifxetex
	% XeLaTeX

	% Generate Unicode chars from accented glyphs, break \textnumero
	%\usepackage{xunicode}

	% "Extras" for LaTeX users of XeTeX.
	\usepackage{xltxtra}
	
	% Help with Russian	
	\usepackage{xecyr}

	% Enagles loading of OpenType fonts
	\usepackage[cm-default]{fontspec}

	% Задаёт основной шрифт документа
	\setmainfont{GOST type A}

	%\setromanfont{GOST type A}
	%\setsansfont{GOST type A}
	%\setmonofont{GOST type A}
	%\newfontfamily\cyrillicfont{GOST type A}

	% Свойства шрифтов по умолчанию
	% Для того чтобы работали стандартные сочетания символов ---, --, << >> и т.п.
	\defaultfontfeatures{Mapping=tex-text}

	% Загружает пакет многоязыковой вёрстки
	% На ЛОРе пишут:	
	% Немного почитал документацию и решил не использовать polyglossia, т.к. в eskdx используется babel (для которого и нужен xecyr).
	% \usepackage{polyglossia}

	% Устанавливает главный язык документа
	% \setdefaultlanguage[spelling = modern]{russian}

	% Объявляет второй язык документа
	% \setotherlanguage{english}

	\renewcommand{\ESKDfontTabBody}{\ESKDfontV\itshape}
\else
	% default: pdfLaTeX
	\usepackage[T2A]{fontenc}
	\usepackage[utf8]{inputenc}
\fi

\ESKDtitle{Блок питания}
\ESKDdocName{Спецификация}

\ESKDauthor{Вася}
\ESKDchecker{Петя}
\ESKDnormContr{Петя}

\ESKDsignature{ПЭ3}

\begin{document}

\begin{ESKDspecification}
& & 1 & ЧМ.6.104.01 & Корпус & 1 & \\
& & 2 & ЧМ.6.104.02 & Седло & 1 & \\
\end{ESKDspecification}
\end{document}

Из него получается вот такой pdf.

Не устраивает, что, во-первых, шрифт по размеру маленький практически во всех ячейчках. Но это частично научился исправлять с помощью \renewcommand. И, во-вторых, шрифт почему-то не наклонный. Ещё директива \defaultfontfeatures не работает, но надеюсь, что в этой спецификации мне это не понадобится.

В логе сборки вот такие сообщения валятся

LaTeX Font Warning: Font shape `EU1/GOSTtypeA(0)/m/sl' undefined
(Font)              using `EU1/GOSTtypeA(0)/m/n' instead on input line 63.

ABD: EveryShipout initializing macros

LaTeX Font Warning: Font shape `EU1/GOSTtypeA(0)/m/it' undefined
(Font)              using `EU1/GOSTtypeA(0)/m/n' instead on input line 65.


LaTeX Font Warning: Font shape `OML/cmm/m/it' in size <16> not available
(Font)              size <17.28> substituted on input line 65.


LaTeX Font Warning: Font shape `OMS/cmsy/m/n' in size <16> not available
(Font)              size <17.28> substituted on input line 65.


LaTeX Font Warning: Font shape `OT1/cmr/m/n' in size <16> not available
(Font)              size <17.28> substituted on input line 65.

[1] 
AED: lastpage setting LastPage
(./spec.aux)

LaTeX Font Warning: Size substitutions with differences
(Font)              up to 1.28pt have occurred.


LaTeX Font Warning: Some font shapes were not available, defaults substituted.

Что со всем этим делать не знаю.


Хм, считал что зитекс и бабель - вещи несовместимые. Я когда чем-то таким баловался, использовал xecyr и polyglossia. Увы, помочь не могу

anonymous ()

Попробуй вот так:

\documentclass[a4paper,12pt,oneside]{extarticle}
%\usepackage{/home/eddy/ed}
%\usepackage[koi8-r]{inputenc}
\usepackage[russian,english]{babel}

% Установить пакет ttf-xits для математики!
%\setmathfont{XITS Math}

\usepackage{xltxtra,fontspec,amsmath,unicode-math}
\defaultfontfeatures{Scale=MatchLowercase}
\setromanfont[Numbers=Uppercase]{OpenGost Type B TT}
\setmonofont[Scale=0.90,Ligatures=NoCommon]{OpenGost Type A TT}

\def\No{\textnumero}

\textwidth=175mm
\textheight=260mm
\oddsidemargin=-.4mm
\headsep=5mm

\topmargin=-1in
\unitlength=1mm

\def\VL{\line(0,1){15}}
\def\HL{\line(1,0){185}}
\def\Box#1#2{\makebox(#1,5){#2}}
\def\simpleGrad{\sl\small\noindent\hbox to 0pt{%
\vbox to 0pt{%
\noindent\begin{picture}(185,287)(5,0)
\linethickness{0.3mm}
\put(0,0){\framebox(185,287){}}
\put(0,0){\Box{7}{Лит.}}
\put(0, 15)\HL
\multiput(0, 5)(0, 5){2}{\line(1,0){65}}
\put(7, 0){\VL\Box{10}{Изм.}}
\put(17, 0){\VL\Box{23}{\No~докум.}}
\put(40, 0){\VL\Box{15}{Подп.}}
\put(55, 0){\VL\Box{10}{Дата}}
\put(65, 0){\VL\makebox(110,15){\large\sc\rightmark}}
\put(175, 0){\VL\makebox(10,10){\normalsize\thepage}}
\put(175,10){\line(1,0){10}}
\end{picture}
}}}

\makeatletter
\def\@oddhead{\simpleGrad}
\def\@oddfoot{}
\makeatother
\begin{document}
\noindent Страница 1, верх\hfill право
\section{Раздел 1}
Текст раздела. Никаких декораций сделать в этом шрифте нельзя.
$$
\int_1^{10} \sin x\,dx\quad
\sum_{20}^\infty = \partial\alpha/\partial\delta\quad
\mathbf{bold}
$$
\vfill
\noindent Страница 1, низ\hfill право
\newpage
Страница 2

{\tt Моноширинный шрифт } выбран более тонким
\end{document}

вполне прилично выходит.

Eddy_Em ☆☆☆☆☆ ()

Анонимусу, чье сообщение будет удалено: пакет ESKDX — жесточайшее дерьмище! Кроме того, то, что я выше написал, было простым приколом. Я никогда не пользуюсь хрюникодом в текстах.

Eddy_Em ☆☆☆☆☆ ()
Ответ на: комментарий от anonymous

Тем, что всё равно половину всего надо прикручивать руками. Да, навскидку вспомнил одно из самого бесючего - нельзя задать разный текст в графах основных надписей на разных листах, рамка вместе с надписями создаётся лишь один раз, а потом в документе будут её копии.

false ★★★★★ ()
Последнее исправление: false (всего исправлений: 1)

А можно дурацкую идею?

xlsfonts/xfontsel видят такой шрифт с таким размером/начертанием?

anonymous ()
Ответ на: комментарий от false

Да, это точно. Хотя я чертежей больше 1 листа не делал и не очень помню, как они оформляются )

anonymous ()
Ответ на: комментарий от Eddy_Em

Этот вариант попробовал. Но выходит явно не спецификация, хотя рамка и прослеживается. Рисовать самому по аналогии не хочется. Слишком много всего.
Я не думаю, что у меня проблема будет присвоить обычному тексту нужным шрифт. Проблема именно с пакетом esdkx.
Спасибо, что напомнил про шрифт OpenGost. Его попробовал, но результат пока такой же.

gogi ()
Ответ на: комментарий от anonymous

xlsfonts/xfontsel видят такой шрифт с таким размером/начертанием?

Дело не в этом. Вчера у меня иксы не видели шрифты. Это да, но сегодня уже видят. Различий нет.

gogi ()
Ответ на: комментарий от Eddy_Em

Для вот такого кода

	\usepackage{polyglossia}

	% Устанавливает главный язык документа
	\setdefaultlanguage[spelling = modern]{russian}

	% Объявляет второй язык документа
	\setotherlanguage{english}

	\setmainfont{OpenGost Type A TT}
	\setromanfont{OpenGost Type A TT}
	\setsansfont{OpenGost Type A TT}
	\setmonofont[Ligatures=NoCommon]{OpenGost Type A TT}
	\newfontfamily\cyrillicfont{OpenGost Type A TT}

Ругается вот так

*************************************************
* fontspec warning: "icu-feature-not-exist-in-font"
* 
* OpenType feature 'Ligatures=NoCommon' (-liga) not available for font
* 'OpenGost Type A TT' with script 'Latin' and language 'Default'.
*************************************************
*************************************************
* fontspec warning: "icu-feature-not-exist-in-font"
* 
* OpenType feature 'Ligatures=NoCommon' (-liga) not available for font
* 'OpenGost Type A TT' with script 'Latin' and language 'Default'.
*************************************************
(./spec.aux) (/usr/share/texmf/tex/latex/tipa/t3cmr.fd)
*geometry* driver: auto-detecting
*geometry* detected driver: xetex

LaTeX Font Warning: Font shape `EU1/OpenGostTypeATT(2)/m/sl' undefined
(Font)              using `EU1/OpenGostTypeATT(2)/m/n' instead on input line 80
.

ABD: EveryShipout initializing macros
*************************************************
* fontspec warning: "icu-feature-not-exist-in-font"
* 
* OpenType feature 'Ligatures=NoCommon' (-liga) not available for font
* 'OpenGost Type A TT' with script 'Cyrillic' and language 'Default'.
*************************************************
*************************************************
* fontspec warning: "icu-feature-not-exist-in-font"
* 
* OpenType feature 'Ligatures=NoCommon' (-liga) not available for font
* 'OpenGost Type A TT' with script 'Cyrillic' and language 'Default'.
*************************************************
gogi ()
Ответ на: комментарий от gogi

Если убрать Ligatures=NoCommon, то остаётся только

LaTeX Font Warning: Font shape `EU1/OpenGostTypeATT(2)/m/sl' undefined
(Font)              using `EU1/OpenGostTypeATT(2)/m/n' instead on input line 80

gogi ()
Ответ на: комментарий от Eddy_Em

Её включал только для лигатур, потому что там на язык ругалось. А без неё не ругается, поэтому она и так у меня отключена.

Такое впечатление, что эти два гостовских шрифта недоделанные какие-то. А других нету.

gogi ()
Ответ на: комментарий от gogi

В гостовских шрифтах по определению не существует лигатур.

Eddy_Em ☆☆☆☆☆ ()

Для джедаев из гугла. Вот тут нашёл немного материала. Там человек пишет, что тоже несмог шрифт «наклонить». Но однако же перечень элементов (я тут немного напутал, мне нужен именно перечень, а не спецификация) у него что надо получился!

gogi ()
Последнее исправление: gogi (всего исправлений: 1)
Ответ на: комментарий от gogi

Полиглоссия это не для лигатур. Прочитай документацию.

Алсо, ГОСТы и совковые говношрифты не нужны.

inputenc тоже не нужен, выкини.

anonymous ()
Ответ на: комментарий от anonymous

ГОСТы и совковые говношрифты не нужны

По мне ГОСТовские шрифты выглядят как образец чего-то совершенного. Олсо, ГОСТы нужны.

inputenc тоже не нужен, выкини.

Я поступил радикальнее: eskdx выкинул.

gogi ()
1 декабря 2015 г.
Ответ на: комментарий от bookman900

Ух ты на ЛОРе некропосты разрешили!
По теме: насколько я помню я остановился на архиве с electronix.ru Ссылка выше.

gogi ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.