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.

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



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

Хм, считал что зитекс и бабель - вещи несовместимые. Я когда чем-то таким баловался, использовал 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
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.