LINUX.ORG.RU

cat /Data/scripts/makeformula 
#!/bin/sh
if [ "$1" = "" ]; then
	echo "usage: makeformula <latex string without \$s>"
	exit
fi
[ "$2" != "" ] && pngname="$2" || pngname="out.png"
mask=tmp_$$
texfile=${mask}.tex
cat > $texfile << EOF
\documentclass[12pt]{article}
\usepackage[english, russian]{babel}
\usepackage[koi8-r]{inputenc}
\usepackage[matrix,arrow,curve]{xy}
\usepackage[intlimits]{amsmath}
\usepackage{amsfonts}
\pagestyle{empty}
\setbox0=\hbox{$\displaystyle
EOF

echo "$1" >> $texfile

cat >> $texfile << EOF
$}
\textwidth=\wd0
\textheight=\ht0
\advance\textwidth by 2em
\advance\textheight by 2\dp0
\topmargin=-1.5cm
\oddsidemargin=-1cm
\begin{document}
\vbox{\vss\hbox{\hss\copy0\hss}\vss}
\end{document}
EOF

latex $texfile
dvipng -D 600 ${mask}.dvi -o $pngname
rm -f ${mask}*

Использовать так:

makeformula "\left\{\begin{aligned}x&=2y-1;\\\\ 3y-2x=4.\end{aligned}\right."
На выходе - картинка.

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

Скрипт не работает - подскажи пожалуйста, чего ему не хватает

jumper@jumper-F5RL:~$ ./mform "\left\{\begin{aligned}x&=2y-1;\\\\ 3y-2x=4.\end{aligned}\right."
This is pdfTeX, Version 3.1415926-1.40.10 (TeX Live 2009/Debian)
entering extended mode
(./tmp_23465.tex
LaTeX2e <2009/09/24>
Babel <v3.8l> and hyphenation patterns for english, usenglishmax, dumylang, noh
yphenation, loaded.
(/usr/share/texmf-texlive/tex/latex/base/article.cls
Document Class: article 2007/10/19 v1.4h Standard LaTeX document class
(/usr/share/texmf-texlive/tex/latex/base/size12.clo))
(/usr/share/texmf-texlive/tex/generic/babel/babel.sty
(/usr/share/texmf-texlive/tex/generic/babel/english.ldf
(/usr/share/texmf-texlive/tex/generic/babel/babel.def))
(/usr/share/texmf-texlive/tex/generic/babel/russianb.ldf

Package babel Warning: No hyphenation patterns were loaded for
(babel)                the language `Russian'
(babel)                I will use the patterns loaded for \language=0 instead.


! Package babel Error: No Cyrillic encoding definition files were found.

See the babel package documentation for explanation.
Type  H <return>  for immediate help.
 ...                                              
                                                  
l.91        lcyenc.def, lwnenc.def, ot2enc.def.}
                                                %
? quit
OK, entering \batchmodeThis is dvipng 1.13 Copyright 2002-2010 Jan-Ake Larsson
tmp_23465.dvi: No such file or directory

psh ★★
() автор топика
Ответ на: комментарий от psh

Конечно. Это же обычный латех. Разве что для сложных формул, чтобы не мучиться с удвоением обратных слешей и экранированием спецсимволов, можно сделать вариант скрипта, чтобы «съедать» формулу из файла.

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

Для формул, если русские индексы не используются, можно просто убрать опцию russian при подключении пакета babel. Ну и inputenc можно выкинуть.

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

Убрал, теперь ругается вот так

This is pdfTeX, Version 3.1415926-1.40.10 (TeX Live 2009/Debian)
entering extended mode
(./tmp_24000.tex
LaTeX2e <2009/09/24>
Babel <v3.8l> and hyphenation patterns for english, usenglishmax, dumylang, noh
yphenation, loaded.
(/usr/share/texmf-texlive/tex/latex/base/article.cls
Document Class: article 2007/10/19 v1.4h Standard LaTeX document class
(/usr/share/texmf-texlive/tex/latex/base/size12.clo))
(/usr/share/texmf-texlive/tex/generic/babel/babel.sty
(/usr/share/texmf-texlive/tex/generic/babel/english.ldf
(/usr/share/texmf-texlive/tex/generic/babel/babel.def)))

! LaTeX Error: File `xy.sty' not found.

Type X to quit or <RETURN> to proceed,
or enter new name. (Default extension: sty)

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

Опять не взлетает:(

jumper@jumper-F5RL:~$ ./makeformula "\left\{\begin{aligned}x&=2y-1;\\\\ 3y-2x=4.\end{aligned}\right."
This is pdfTeX, Version 3.1415926-1.40.10 (TeX Live 2009/Debian)
entering extended mode
(./tmp_24362.tex
LaTeX2e <2009/09/24>
Babel <v3.8l> and hyphenation patterns for english, usenglishmax, dumylang, noh
yphenation, loaded.
(/usr/share/texmf-texlive/tex/latex/base/article.cls
Document Class: article 2007/10/19 v1.4h Standard LaTeX document class
(/usr/share/texmf-texlive/tex/latex/base/size12.clo))
(/usr/share/texmf-texlive/tex/generic/babel/babel.sty
(/usr/share/texmf-texlive/tex/generic/babel/english.ldf
(/usr/share/texmf-texlive/tex/generic/babel/babel.def)))
(/usr/share/texmf-texlive/tex/latex/amsmath/amsmath.sty
For additional information on amsmath, use the `?' option.
(/usr/share/texmf-texlive/tex/latex/amsmath/amstext.sty
(/usr/share/texmf-texlive/tex/latex/amsmath/amsgen.sty))
(/usr/share/texmf-texlive/tex/latex/amsmath/amsbsy.sty)
(/usr/share/texmf-texlive/tex/latex/amsmath/amsopn.sty))
(/usr/share/texmf-texlive/tex/latex/amsfonts/amsfonts.sty)
(/usr/share/texmf-texlive/tex/latex/amsfonts/umsa.fd)
(/usr/share/texmf-texlive/tex/latex/amsfonts/umsb.fd)
! Text line contains an invalid character.
l.7 \left\{^^H
              egin{aligned}x&=2y-1;\ 3y-2x=4.\end{aligned}

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

Убрал из твоего скрипта последнюю строчку(удаление временных файлов), посмотрел тех файл, а там

|x|=^Hegin{cases}x,&    ext{если >0$;}
с латехом всё нормально походу, а проблема в баше

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

Подставил то что нужно в сгенерированный файл, остальную часть скрипта доделал руками, всё получилось. Спасибо за помощь!

psh ★★
() автор топика

...или используйте mimetex (страшненький, но весит очень мало) или mathtex (зависит от LaTeX, но даёт на выходе нормальные картинки).

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

Попробовал mathtex, то что надо, спасибо.

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