Pull to refresh

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

Reading time 1 min
Views 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. Самый подходящий блог, вроде бы — разработка. Или перенести в какой нибудь другой?
Tags:
Hubs:
+15
Comments 25
Comments Comments 25

Articles