2014 dxdy logo

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

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




На страницу 1, 2, 3  След.
 
 Форумный LaTeX - пара "хаков"
Сообщение16.05.2014, 15:24 
Аватара пользователя
Пара "хаков":

Переключение режимов

\( формула \) = $ формула $ - но форум не реагирует на эти ограничители, и их можно делать вложенными внутри тега math.
\displaystyle - переключение в стиль выключной формулы (с большими дробями, символами сумм и интегралов)
\textstyle - переключение в стиль внутритекстовой формулы (с маленькими дробями, символами сумм и интегралов)
\dfrac{}{} , \tfrac{}{} - напечатать только дробь в выключном или внутритекстовом стиле

Пустые места (невидимые символы и формулы)

\phantom{ формула } - пустой прямоугольник такого же размера, как формула. Например: $\sqrt{\phantom{x}}$
\hphantom{ формула } - пустой горизонтальный объект такого же размера, как формула.
\vphantom{ формула } - пустой вертикальный объект такого же размера, как формула.
\mathstrut = \vphantom{(}

Примеры применения: $a_x^2b_y$ (некрасиво) $a_x^2b_y^{\vphantom{2}}$ (лучше)
$\begin{cases}\hphantom{0}x+3y=5\\7x-\hphantom{0}y=7\end{cases}$

Символы и формулы, не занимающие места (для наложения)

\lefteqn{ формула } - напечатать формулу справа от данной точки, и вернуться в данную точку. $\lefteqn{\rightarrow}a$ (Аргумент всегда печатается в displaystyle.)

\smash{ формула } - формула не имеет размера по вертикали
\smash[‌t]{ формула } - формула не имеет высоты (над базовой линией)
\smash[‌b]{ формула } - формула не имеет глубины (под базовой линией)

\llap{ текст } - напечатать текст слева от данной точки, и вернуться в данную точку.
\rlap{ текст } - напечатать текст справа от данной точки, и вернуться в данную точку.
    В этих командах отключается математический режим, поэтому внутри формул их стоит использовать так:
    \llap{\( формула \)}
    \rlap{\( формула \)}
    (при этом, аргумент печатается всегда в textstyle.) Дальше это используется без пояснений.
Эти команды используют "клей", и у меня не всегда работали корректно (может быть, руки кривые).

\makebox[0pt]{\( формула \)} = \makebox[0pt][с]{\( формула \)} - напечатать текст нулевой ширины, центрированный по данной точке
\makebox[0pt][l]{\( формула \)} - напечатать текст нулевой ширины справа от данной точки
\makebox[0pt][r]{\( формула \)} - напечатать текст нулевой ширины слева от данной точки

Например, можно выровнять по вертикали $i$ и $2$ в такой дроби: $\dfrac{-i\hphantom{-}}{\,\hphantom{2\,}\llap{\(\sqrt{2\,}\)}}$
Перечёркнутая лямбда: \rlap{\(\bar{\phantom{a}}\)}\lambda $\rlap{\(\bar{\phantom{a}}\)}\lambda$
Слеш-нотация: \rlap{\(/\)}p $\rlap{\(/\)}p$

Ещё примеры:
$\lefteqn{\overbrace{\phantom{1+2+3}}}1+\underbrace{2+3+4}$ $\makebox[0pt][l]{\(\overbrace{\phantom{1+2+3}}^{\textit{первые}}\)}1+\underbrace{2+3+4}_{\textit{вторые}}$ $\makebox[0pt][l]{$\sqrt{4}$}%
\makebox[0pt][l]{{\color{blue}$\sqrt{\vphantom{4}\hphantom{4}}$}}%
\hphantom{{\sqrt{4}}}%
=
\makebox[0pt][l]{$\sqrt{\dfrac{8}{2}}$}%
\makebox[0pt][l]{{\color{green}$\sqrt{\vphantom{\dfrac{8}{2}}\hphantom{\dfrac{8}{2}}}$}}%
\hphantom{{\sqrt{\dfrac{8}{2}}}}%
$
$$x^2+px+q=x^2+2\cdot\left(\frac{p}2}\right)\cdot x+q=
\makebox[0pt][l]{\color{magenta}\underbrace{\hphantom{x^2+2\left(\frac{p}2\right)+ \left(\frac{p}2\right)^2}\vphantom{x^2+2\left(\frac{p}2\right) x+\left(\frac{p}2\right)^2}}_{\makebox[0pt][c]{полный квадрат получился!}}}
x^2+2\left(\frac{p}2}\right) x+\overbrace{\left(\frac{p}2\right)^2-\left(\frac{p}2\right)^2}^\substack{\text{\color{blue}чисто}\\ \text{\color{blue}нолик прибавили!}}} + q =\left(x+\frac{p}2}\right)^2-\left(\frac{p}2}\right)^2+q.$$

Другие способы комбинации символов

r1 \joinrel r2 - написание подряд слитно символов r1 и r2. Символы должны быть символами отношения (\mathrel). Например: $\mathrel{|}\joinrel =$
\mkernXmu - точное расстояние между символами, в единицах mu.
\mathaccent c1c2 - печать символа c1 ("акцента") поверх символа c2. Например: $\mathaccent \cdot \cup$
\not - зачёркивание любого символа. Например: $\not\perp$

\stackrel{ формула сверху }{ формула } - печать надписи сверху. Например: \stackrel{\mathrm{def}}{=} $\stackrel{\mathrm{def}}{=}$

\overset{ индекс сверху }{ формула } - печать индекса сверху: $\overset{a}{X}$
\underset{ индекс снизу }{ формула } - печать индекса снизу: $\underset{b}{X}$

{}_{s1}^{s2}S_{s3}^{s4} - индексы слева и справа для обычных символов: ${}_{s1}^{s2}S_{s3}^{s4}$
\sideset{_{s1}^{s2}}{_{s3}^{s4}}S - индексы слева и справа для символов операций (\mathop): $\sideset{_{s1}^{s2}}{_{s3}^{s4}}\sum$
Полный набор индексов:
$\sideset{_a^b}{_{ccc}^{ddd}}{\mathop{\scalebox{1.5}{\(\digamma\)}}}\limits_{e}^{f}$

\substack{ формула \\ формула } - многострочные индексы: $\displaystyle\sum_{\substack{i,j=1\\i\ne j}}^n$

Сдвиги вверх и вниз

\raisebox{ высота }{\( формула \)} - сдвиг текст на указанную высоту (положительную или отрицательную). Единицы измерения:
    pt - пункты,
    ex - высота $x,$
    em - ширина $M,$
    \height - высота текста над базовой линией
    \depth - глубина текста под базовой линией
    \totalheight - полная высота текста
Например: $x\raisebox{\depth}{\(q\)}\raisebox{-\height}{\(x\)}x$

\begin{array}[‌t]{c} массив \end{array} - выравнивание массива по верхней строке
\begin{array}[‌b]{c} массив \end{array} - выравнивание массива по нижней строке

Повороты и отражения

\scalebox{ масштаб }[ верт. масштаб ]{\( формула \)} - масштабирование текста с коэффициентами (если вертикальный масштаб не задан, то = горизонтальному)
\reflectbox{\( формула \)} - отражение текста по горизонтали (по вертикали - в сочетании с \rotatebox)
\resizebox*{ гор. размер }{ верт. размер }{\( формула \)} - масштабирование текста в точные размеры
\resizebox*{!}{ верт. размер }{\( формула \)} - масштабирование текста в точный вертикальный размер
\resizebox*{ гор. размер }{!}{\( формула \)} - масштабирование текста в точный горизонтальный размер
\rotatebox{ угол в градусах }{\( формула \)} - поворот текста вокруг начальной точки
\rotatebox[‌c]{ угол в градусах }{\( формула \)} - поворот текста вокруг центральной точки

Например: $\rlap{\reflectbox{\(\mathsf{L}\)}}\rotatebox[c]{180}{\(\mathsf{L}\)}$

(Написано при участии Алексей К.)

 
 
 
 Re: Форумный LaTeX - пара хаков
Сообщение16.05.2014, 16:59 
Это было бы превосходно в другом разделе. :appl:

 
 
 
 Re: Форумный LaTeX - пара хаков
Сообщение17.05.2014, 02:13 
Да уж. Хорошо бы отдельным ФАКом, со ссылкой из формы ответа.

 
 
 
 Re: Форумный LaTeX - пара хаков
Сообщение17.05.2014, 11:58 
Аватара пользователя
arseniiv
Примеры применения ещё не набросаете? А то у меня мало фантазии.

-- 17.05.2014 13:00:28 --

$\makebox[0pt][l]{\(\overbrace{\phantom{1+2+3}}^{\textit{первые}}\)}1+\underbrace{2+3+4}_{\textit{вторые}}$

 
 
 
 Posted automatically
Сообщение17.05.2014, 12:00 
Аватара пользователя
 i  Тема перемещена из форума «Тестирование» в форум «TeXнические обсуждения»

 
 
 
 Re: Форумный LaTeX - пара хаков
Сообщение17.05.2014, 12:08 
Аватара пользователя
Пояснение: здесь я собрал то, чем мне постоянно то и дело приходится пользоваться. Чтобы не держать в памяти, я бы хотел занести это в форумный FAQ.

Так что, если вы, arseniiv, или кто-то ещё, тоже имеете свои постоянные "примочки", я думаю, их можно дописать сюда.

 
 
 
 Re: Форумный LaTeX - пара хаков
Сообщение17.05.2014, 14:22 
Аватара пользователя
команды \shoveleft и \shoveright в multline

\begin{multline}
\text{some expression }=\\
\shoveright{\text{another expression }}\\
\shoveleft{\text{yet another expression }}\\
{\text{yet another expression }}
\end{multline}

Но все эти "примочки" = стандарт LaTeX + amsmath. В mathtools

 
 
 
 Re: Форумный LaTeX - пара хаков
Сообщение17.05.2014, 15:15 
Аватара пользователя
Да, кстати!

Как использовать окружения формул, отличающиеся от стандартных "одинарных" и "двойных долларов".

Если написать тег [‌math][/‌math] без знаков доллара - результат будет скормлен LaTeX в текстовом режиме. Форум не будет знать, что результат надо "выключить", и просто вставит его в строку. Если надо получить в результате выключную формулу, надо поставить дополнительно вокруг тег центрирования: [‌c][‌math][/‌math][/‌c]. Например:
\begin{multline}
\text{some expression }=\\
\shoveright{\text{another expression }}\\
\shoveleft{\text{yet another expression }}\\
{\text{yet another expression }}
\end{multline}

 
 
 
 Re: Форумный LaTeX - пара "хаков"
Сообщение17.05.2014, 17:13 
Аватара пользователя
В реальном TeX я предпочитаю mathtools и код

Код:
\begin{align*}
&\smashoperator{\sum_{2q+2l+2j\ge 3}^{} }\qquad B^w_{qjl}+\\
&\smashoperator{\sum_{2k+2q+2m+2s+2l\ge 3}^{}}\qquad B^w_{kqjmsl}
\end{align*}


дает


Изображение

а не

\begin{align*}
&\smashoperator{\sum_{2q+2l+2j\ge 3}^{} }\qquad B^w_{qjl}+\\
&\smashoperator{\sum_{2k+2q+2m+2s+2l\ge 3}^{}}\qquad B^w_{kqjmsl}
\end{align*}

 
 
 
 Re: Форумный LaTeX - пара "хаков"
Сообщение17.05.2014, 17:39 
Аватара пользователя
К сожалению, здесь mathtools недоступны. Это предложение для документации для пользователей форума. А преамбулу на форуме не хотят менять.

Ваш пример можно набрать так:
\begin{align*}
&\sum_{\makebox[0pt]{\(\scriptstyle 2q+2l+2j\geqslant 3\)}}\qquad B^w_{qjl}+{}\\
{}+{}\qquad&\sum_{\makebox[0pt]{\(\scriptstyle 2k+2q+2m+2s+2l\geqslant 3\)}}\qquad B^w_{kqjmsl}
\end{align*}

-- 17.05.2014 18:43:00 --

Как раз с использованием вышеупомянутого "хака" \makebox[0pt]{\( ... \)}
Он позволяет индексам у знаков суммы "не занимать места".
Также используется \scriptstyle , чтобы индексы печатались в нужном размере.
И наконец, в русской традиции используются $\geqslant,$ а не $\ge,$ и при переносе формулы знак повторяют до и после переноса.

-- 17.05.2014 18:44:59 --

И чтобы знак бинарной операции ``$+$'' стоял с правильными пробелами, вокруг него ставятся пустые формулы {} , чтобы формула не начиналась и не заканчивалась на него.

 
 
 
 Re: Форумный LaTeX - пара "хаков"
Сообщение17.05.2014, 18:19 
Аватара пользователя
Munin в сообщении #864441 писал(а):
\makebox[0pt]{\( ... \)}


замещает \smashoperator{}, который, однако, может иметь опции [l] и [r]; тогда "зануляется" только левая или правая часть индексов. К сожалению, многие хаки делают код тяжеловесным.

На самом деле основные претензии к форуму—старое s/w. Я подозреваю, что и phpbb не очень новое, а ТеХ вообще скомпилирован давным давно. Кстати, если я правильно помню свой опыт, нужен ocaml для компиляции переходника между форумом и TeX и преамбула закладывается именно на этом этапе (я сам компилировал с несколькими лишними пакетами). При этом я вовсе не предлагаю что-то менять: этак можно костей не собрать.

 
 
 
 Re: Форумный LaTeX - пара "хаков"
Сообщение17.05.2014, 18:27 
Munin в сообщении #864441 писал(а):
А преамбулу на форуме не хотят менять.
Может, хотя бы ради mathtools захотят? Почитал его описание.

Спасибо, что упомянули, Red_Herring — пригодится когда-нибудь!

 
 
 
 Re: Форумный LaTeX - пара "хаков"
Сообщение17.05.2014, 18:31 
Аватара пользователя
Red_Herring в сообщении #864457 писал(а):
На самом деле основные претензии к форуму—старое s/w.

На самом деле, данная тема заводилась вовсе не для того, чтобы высказывать претензии к форуму. Если очень хочется, можете завести новую тему.

 
 
 
 Re: Форумный LaTeX - пара "хаков"
Сообщение17.05.2014, 22:33 
Алексей К. в ответ на какой-то бред в сообщении #253663 писал(а):
Верны ли, по-Вашему, равенства
$$\makebox[0pt][l]{$\sqrt{4}$}%
\makebox[0pt][l]{{\color{blue}$\sqrt{\vphantom{4}\hphantom{4}}$}}%
\hphantom{{\sqrt{4}}}%
=
\makebox[0pt][l]{$\sqrt{\dfrac{8}{2}}$}%
\makebox[0pt][l]{{\color{green}$\sqrt{\vphantom{\dfrac{8}{2}}\hphantom{\dfrac{8}{2}}}$}}%
\hphantom{{\sqrt{\dfrac{8}{2}}}}%
$$Нано$\TeX$нологи, кстати, заинтересовались и торопят.


-- 17 май 2014, 23:41:54 --

$$x^2+px+q=x^2+2\cdot\left(\frac{p}2}\right)\cdot x+q=
\makebox[0pt][l]{\color{magenta}\underbrace{\hphantom{x^2+2\left(\frac{p}2\right)+ \left(\frac{p}2\right)^2}\vphantom{x^2+2\left(\frac{p}2\right) x+\left(\frac{p}2\right)^2}}_{\makebox[0pt][c]{полный квадрат получился!}}}
x^2+2\left(\frac{p}2}\right) x+\overbrace{\left(\frac{p}2\right)^2-\left(\frac{p}2\right)^2}^\substack{\text{\color{blue}чисто}\\ \text{\color{blue}нолик прибавили!}}} + q =\left(x+\frac{p}2}\right)^2-\left(\frac{p}2}\right)^2+q.$$

 
 
 
 Re: Форумный LaTeX - пара "хаков"
Сообщение17.05.2014, 23:25 
Аватара пользователя
Это примеры применения? Спасибо :-)

Кстати, про цвета ещё можно было бы добавить... или не надо - боюсь, все начнут формулы раскрашивать :-)

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


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