Как стать автором
Обновить

LaTex: Упражнение

Время на прочтение1 мин
Количество просмотров4.5K
Для того, чтобы старшему ребёнку давать примеры на сложение и вычитание в столбик, написал скрипт на Groovy, который генерирует LaTeX с примерами.
Цель была попрактиковаться в груви, ну и писать примеры от руки надоело.

Раньше на латехе ничего не писал, но что это и зачем нужен знал из Универа.
Часа два трахался с тем, как на LaTeX сделать нужный вид столбика.
Для работы с LaTeX поставил соответствующие пакеты из CygWin.

Вот скрипт, надеюсь кому нибудь пригодится:

////////////////////////////////////////////////////
int n = 30
def f1 = new File("d:\\temp\\ex.tex")
def f2 = new File("d:\\temp\\sol.tex")
/////////////////////////////////////////////////////

def r = new Random(System.currentTimeMillis())

f1.delete();
f2.delete();

def header = """
\\documentclass[a4paper,12pt,twocolumn]{article}
\\begin{document} \n"""

f1<< header
f2<< header

n.times {

int a = r.nextInt(10000)
int b = r.nextInt(10000)
boolean plus = r.nextBoolean()
if (a<b) { def t =a; a= b; b = t}
int c = plus?a+b:a-b

def sign = plus?"+":"-"

f1<< """\$\$ \\frac{$sign \\begin{array}{rcc}
$a \\\\
$b
\\end{array}}{} \$\$\n"""

f2<< """\$\$ \\frac{$sign \\begin{array}{rcc}
$a \\\\
$b
\\end{array}}{$c} \$\$\n"""
}

def footer = """
\\end{document} \n"""

f1<<footer
f2<<footer


Вот как это выглядит:

image

P.S. Самый подходящий блог, вроде бы — разработка. Или перенести в какой нибудь другой?
Теги:
Хабы:
Всего голосов 27: ↑21 и ↓6+15
Комментарии25

Публикации

Истории

Ближайшие события

One day offer от ВСК
Дата16 – 17 мая
Время09:00 – 18:00
Место
Онлайн
Конференция «Я.Железо»
Дата18 мая
Время14:00 – 23:59
Место
МоскваОнлайн
Антиконференция X5 Future Night
Дата30 мая
Время11:00 – 23:00
Место
Онлайн
Конференция «IT IS CONF 2024»
Дата20 июня
Время09:00 – 19:00
Место
Екатеринбург
Summer Merge
Дата28 – 30 июня
Время11:00
Место
Ульяновская область