2014 dxdy logo

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

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




Начать новую тему Ответить на тему На страницу Пред.  1, 2, 3
 
 Re: Latex из командной строки
Сообщение22.03.2015, 10:10 
Заслуженный участник


09/05/13
8904
ellipse
Я не пойму, Вы хотите с ТеХом разобраться или с форумным ТеХом? Потому что это не одно и то же, и советы для одного случая противопоказаны для другого.

 Профиль  
                  
 
 Re: Latex из командной строки
Сообщение22.03.2015, 14:51 


25/11/08
449
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 
Заслуженный участник


27/04/09
28128
Можно искать команду, которая работает только в математической моде, и ставить доллар сразу перед ней и в конце строки.

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

 Профиль  
                  
 
 Re: Latex из командной строки
Сообщение22.03.2015, 14:58 


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

 Профиль  
                  
 
 Re: Latex из командной строки
Сообщение22.03.2015, 15:00 
Заслуженный участник
Аватара пользователя


31/01/14
11063
Hogtown
Для начала: откуда Вы взяли \end{displaymath}? И если есть \end{..}. то ему [url]должно[/url] предшествовать \begin{..}.

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


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

 Профиль  
                  
 
 Re: Latex из командной строки
Сообщение22.03.2015, 15:20 


25/11/08
449
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 


25/11/08
449
Заработало вроде. Большое спасибо всем за подсказки и советы.
Можно посмотреть и протестировать здесь http://forany.xyz/t-16. Ну и вообще, добро пожаловать в гости :wink:

 Профиль  
                  
 
 Re: Latex из командной строки
Сообщение23.03.2015, 17:14 
Заслуженный участник
Аватара пользователя


30/01/06
72407
ellipse в сообщении #994053 писал(а):
Red_Herring в сообщении #993933 писал(а):
align, gather, equation, multiline автоматически включают матмоду (причём выделенных строк).
Я понимаю, что align, gather, equation, multiline заменяют доллар. И если их заключить в доллары, будет ошибка.

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

 Профиль  
                  
 
 Re: Latex из командной строки
Сообщение23.03.2015, 17:48 
Заслуженный участник
Аватара пользователя


31/01/14
11063
Hogtown
Munin в сообщении #994577 писал(а):
Но при этом есть aligned и gathered, которые можно использовать как раз внутри долларов.

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

 Профиль  
                  
 
 Re: Latex из командной строки
Сообщение23.03.2015, 19:30 
Заслуженный участник


27/04/09
28128
ellipse, а что, выравнивания по базовой линии не будет? :-)

 Профиль  
                  
 
 Re: Latex из командной строки
Сообщение29.03.2015, 20:19 


25/11/08
449
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 


25/11/08
449
Нашел такой пример.

\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 


25/11/08
449
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 
Заслуженный участник


27/04/09
28128
Поздравляю! :-)

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 44 ]  На страницу Пред.  1, 2, 3

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



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

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


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

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