2014 dxdy logo

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

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




На страницу Пред.  1, 2, 3
 
 Re: Latex из командной строки
Сообщение22.03.2015, 10:10 
ellipse
Я не пойму, Вы хотите с ТеХом разобраться или с форумным ТеХом? Потому что это не одно и то же, и советы для одного случая противопоказаны для другого.

 
 
 
 Re: Latex из командной строки
Сообщение22.03.2015, 14:51 
Red_Herring в сообщении #993933 писал(а):
align, gather, equation, multiline автоматически включают матмоду (причём выделенных строк).
Я понимаю, что align, gather, equation, multiline заменяют доллар. И если их заключить в доллары, будет ошибка.

Как я понимаю, здесь на форуме выражение
Код:
[math]$\sum_{i=1}^{n}x_n$[/math]
преобразуется в
Код:
\begin{document}
\pagestyle{empty}
$\sum_{i=1}^{n}x_n$
\end{document}

выражение
Код:
[math]\sum_{i=1}^{n}x_n[/math]
также преобразуется в
Код:
\begin{document}
\pagestyle{empty}
$\sum_{i=1}^{n}x_n$
\end{document}

выражение
Код:
[math]\begin{align} f(x) & = (a+b)^2 \\ & = a^2+2ab+b^2 \end{align}[/math]
преобразуется в
Код:
\begin{document}
\pagestyle{empty}
\begin{align} f(x) & = (a+b)^2 \\ & = a^2+2ab+b^2 \end{align}
\end{document}


То есть выражение
Код:
[math]expression[/math]
иногда преобразуется в
Код:
\begin{document}
\pagestyle{empty}
$expression$
\end{document}
а иногда в
Код:
\begin{document}
\pagestyle{empty}
expression
\end{document}

Вопрос в том, как можно программно определить, когда надо заключать в доллары, а когда нет.

 
 
 
 Re: Latex из командной строки
Сообщение22.03.2015, 14:55 
Можно искать команду, которая работает только в математической моде, и ставить доллар сразу перед ней и в конце строки.

[Upd] Плюс ещё ставить доллар сразу после _ и ^. Хотя вообще в таких случаях (встречается _, ^ или команда математической моды, и при этом начало — не \begin{что-то особое}) логичнее, вроде, было бы ставить доллар в самом начале.

 
 
 
 Re: Latex из командной строки
Сообщение22.03.2015, 14:58 
Otta в сообщении #993934 писал(а):
ellipse
Я не пойму, Вы хотите с ТеХом разобраться или с форумным ТеХом? Потому что это не одно и то же, и советы для одного случая противопоказаны для другого.
Исходя из поставленной цели, надо как-то разобраться одновременно и с тем, и с другим :wink:

 
 
 
 Re: Latex из командной строки
Сообщение22.03.2015, 15:00 
Аватара пользователя
Для начала: откуда Вы взяли \end{displaymath}? И если есть \end{..}. то ему [url]должно[/url] предшествовать \begin{..}.

ellipse в сообщении #994053 писал(а):
Вопрос в том, как можно программно определить, когда надо заключать в доллары, а когда нет.


Где Вы хотите это программно определить? Откуда приходит документ?

 
 
 
 Re: Latex из командной строки
Сообщение22.03.2015, 15:20 
Red_Herring в сообщении #994058 писал(а):
Для начала: откуда Вы взяли \end{displaymath}? И если есть \end{..}. то ему [url]должно[/url] предшествовать \begin{..}.
Это была опечатка, исправил.

Red_Herring в сообщении #994058 писал(а):
ellipse в сообщении #994053 писал(а):
Вопрос в том, как можно программно определить, когда надо заключать в доллары, а когда нет.


Где Вы хотите это программно определить? Откуда приходит документ?


Из тега [math]expression[\math] получаю строку expression.

Затем программно обрабатывается expression->expression2 и создается документ .tex примерно такого содержания:
Код:
\documentclass[12pt]{article}
\usepackage{ucs}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{amsmath}
\usepackage{amsfonts, amssymb}
\usepackage{mathrsfs}
\usepackage{color}
\usepackage{pst-plot}
\usepackage[matrix,arrow,curve,frame,poly,arc]{xy}
\usepackage[final]{graphicx}
\begin{document}
\pagestyle{empty}
\noindent
expression2
\end{document}

 
 
 
 Re: Latex из командной строки
Сообщение23.03.2015, 07:51 
Заработало вроде. Большое спасибо всем за подсказки и советы.
Можно посмотреть и протестировать здесь http://forany.xyz/t-16. Ну и вообще, добро пожаловать в гости :wink:

 
 
 
 Re: Latex из командной строки
Сообщение23.03.2015, 17:14 
Аватара пользователя
ellipse в сообщении #994053 писал(а):
Red_Herring в сообщении #993933 писал(а):
align, gather, equation, multiline автоматически включают матмоду (причём выделенных строк).
Я понимаю, что align, gather, equation, multiline заменяют доллар. И если их заключить в доллары, будет ошибка.

Но при этом есть aligned и gathered, которые можно использовать как раз внутри долларов.

 
 
 
 Re: Latex из командной строки
Сообщение23.03.2015, 17:48 
Аватара пользователя
Munin в сообщении #994577 писал(а):
Но при этом есть aligned и gathered, которые можно использовать как раз внутри долларов.

Не токо можно, но и нужно—внутри матмоды

 
 
 
 Re: Latex из командной строки
Сообщение23.03.2015, 19:30 
ellipse, а что, выравнивания по базовой линии не будет? :-)

 
 
 
 Re: Latex из командной строки
Сообщение29.03.2015, 20:19 
arseniiv в сообщении #994665 писал(а):
ellipse, а что, выравнивания по базовой линии не будет? :-)
Как раз зашел с этой проблемой. Все уже сделал для выравнивания. Но проблема в том, что dvipng выдает странные данные.

$shell_result=This is /Server/texlive/2014/bin/win32/dvipng 1.14 Copyright 2002-2010 Jan-Ake Larsson depth=104 height=-88
При этом реальная высота картинки 16.

$shell_result=This is /Server/texlive/2014/bin/win32/dvipng 1.14 Copyright 2002-2010 Jan-Ake Larsson depth=123 height=-82
При этом реальная высота картинки 41.

Не понятно, как это использовать.

В документации к dvipng написано:
Цитата:
‘--depth*’

Report the depth of the image. This only works reliably when the LaTeX style preview.sty from preview-latex is used with the ‘active’ option. It reports the number of pixels from the bottom of the image to the baseline of the image. This can be used for vertical positioning of the image in, e.g., web documents, where one would use (Cascading StyleSheets 1)

<IMG SRC="filename.png" STYLE="vertical-align: -depthpx">

The depth is a negative offset in this case, so the minus sign is necessary, and the unit is pixels (px).

Что значит preview.sty from preview-latex is used with the ‘active’ option?

Пробовал ставить usepackage[active,tightpage]{preview} - Latex вообще перестал генерировать dvi.

 
 
 
 Re: Latex из командной строки
Сообщение29.03.2015, 22:06 
Нашел такой пример.

\documentclass[10pt]{article}
\usepackage{geometry}
\usepackage{amsmath}
\pagestyle{empty}
\newsavebox{\mybox} %%как я понимаю, определяем новый блок

\newlength{\mywidth} %%определяем переменные
\newlength{\myheight}
\newlength{\mydepth}

\setlength{\topskip}{0pt} %%задаем значения
\setlength{\parindent}{0pt}
\setlength{\abovedisplayskip}{0pt}
\setlength{\belowdisplayskip}{0pt}

\begin{lrbox}{\mybox} %%что такое lrbox?
$\displaystyle
\sigma_{\lambda} =
\frac{24 \pi^3}{\lambda^4 N^2}
\left(\frac{n^2-1}{n^2+2}\right)^{\!2}
$
\end{lrbox}

\settowidth {\mywidth} {\usebox{\mybox}} %%заносим значения
\settoheight{\myheight} {\usebox{\mybox}}
\settodepth {\mydepth} {\usebox{\mybox}}

%% тут не понятно, что делается. кажется, куда-то что-то выводится
%% что такое \newwrite? \foo?

\newwrite\foo
\immediate\openout\foo=\jobname.sizes
\immediate\write\foo{Depth = \the\mydepth}
\immediate\write\foo{Height = \the\myheight}
\addtolength{\myheight} {\mydepth}
\immediate\write\foo{TotalHeight = \the\myheight}
\immediate\write\foo{Width = \the\mywidth}
\closeout\foo

% set the paper-size and do everything in one pdflatex run
\geometry{paperwidth=\mywidth,
paperheight=\myheight,margin=0pt}

\begin{document}
\usebox{\mybox}
\end{document}

-- Вс мар 29, 2015 23:27:25 --

\newwrite\foo
\immediate\openout\foo=\jobname.sizes

понял, тут создается файл с таким же именем, как файл .tex и в него пишутся параметры.

Теперь проблема в том, что блок доллар+доллар внутри блока \begin{lrbox}{\mybox} вызывает ошибку, в то время как доллар работает нормально. :roll:

 
 
 
 Re: Latex из командной строки
Сообщение31.03.2015, 04:39 
arseniiv в сообщении #994665 писал(а):
ellipse, а что, выравнивания по базовой линии не будет? :-)

Готово выравнивание по базовой линии. См. тут http://forany.xyz/t-3

Параметр va=offset добавляется в тег [tex] во время отправки сообщения, то есть меняется текст сообщения.

Можно подавить запрос и установку значения offset, указав va=m, t или b (сокр. от middle, top, bottom)

Сначала сделал так, что текст сообщения не менялся, а offset запрашивался уже при преобразовании тегов в html, то есть при каждой выдаче страницы. Но время генерации страниц увеличилось, поэтому пришлось сделать оптимизацию.

Картинки и значения offset кешируются в текстовых файлах.

 
 
 
 Re: Latex из командной строки
Сообщение31.03.2015, 17:14 
Поздравляю! :-)

 
 
 [ Сообщений: 44 ]  На страницу Пред.  1, 2, 3


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group