Skip to content

Commit

Permalink
Add install script
Browse files Browse the repository at this point in the history
  • Loading branch information
rominf committed Apr 28, 2014
1 parent 23bd45e commit f1e69e4
Show file tree
Hide file tree
Showing 2 changed files with 100 additions and 10 deletions.
33 changes: 23 additions & 10 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
latex-g7-32
Стиль LaTeX для расчётно-пояснительной записки к курсовым и дипломным работам (ГОСТ 7.32-2001)
===========

Стиль LaTeX для расчётно-пояснительной записки к курсовым и дипломным работам (ГОСТ 7.32-2001). Ориентирован на студентов IT специальностей.
Ориентирован на студентов IT специальностей.

Изначально был написан в расчёте на `pdfLaTeX`, с коммита `23b1612` добавлена поддержка `XeLaTeX`. Если требуется использование `pdfLaTeX`, то в `Makefile` надо поменять в третьей строке `xelatex` на `pdflatex`.
Изначально был написан в расчёте на `pdfLaTeX`, с коммита `23b1612` добавлена поддержка `XeLaTeX`. Помимо стилей содержит "рыбу" РПЗ (в той же папке `tex`). Его можно собрать используя make.

Также имеются необходимые макеты (layout) для [LyX](http://ru.wikipedia.org/wiki/LyX) (редактор, редактирование в котором больше похоже на работу в Microsoft Word, чем на написание LaTeX кода, но результат получается такой же хороший, как в LaTeX). Для использования `LyX` также нужно скопировать стили LaTeX (из папки `tex`).

## Результат
См. вкладку [Релизы](https://github.com/rominf/latex-g7-32/releases).
Expand Down Expand Up @@ -42,12 +44,27 @@ minted polyglossia xecyr
python pygments
```

## Использование
После изменения РПЗ запустите `make` в корне. Результатом будет `rpz.pdf`.
#### LyX
```
lyx
```

#### Установочный скрипт
```
python3.4
```

Копирует (или перемещает) файлы со стилями в общую `texmf` папку, макеты `LyX` в папку с настройками `LyX`. Для получения помощи вызовите `install.py --help`.

## Использование LaTeX
После изменения РПЗ запустите `make` в корне. Результатом будет `rpz.pdf`. Если требуется использование `pdfLaTeX` то в `Makefile` надо поменять в третье строке `xelatex` на `pdflatex`.

### Редактор
Можно использовать любой редактор, например, `Kile`. На комманду `cd .. && make` вешается горячая клавиша и создаётся проект с корректным главным докукментом.

## Использование LyX
Откройте `lyx/rpz.lyx` и редактируйте.

## Авторы

### 1. Первая версия
Expand Down Expand Up @@ -81,13 +98,9 @@ python pygments
### 3b. Добавление layouts LyX
[Расим (Brotherofken)](http://habrahabr.ru/post/116517/)

### 4. GitHub, поддержка XeLaTeX
### 4. GitHub, поддержка XeLaTeX, LyX
[Роман Инфлянскас](https://github.com/rominf)

## TODO
1. Поддержка `LyX`.
2. Добавление на CTAN?

## См. также
### Статьи
[Записки дебианщика](http://mydebianblog.blogspot.nl/2008/11/latex.html)
Expand Down
77 changes: 77 additions & 0 deletions utils/install.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
#!/usr/bin/env python3
"""Installer for g7-32 LaTeX style
Usage:
install.py ([move] | copy | symlink) ([--keep-existing] | --overwrite-existing) ([--update-packages] | --no-update-packages)
install.py --help
install.py --version
Options:
-k --keep-existing Keep existing files
-o --overwrite-existing Overwrite existing files
-u --update-packages Update packages
-n --update-packages Don't update packages
-h --help Show this screen
--version Show version
"""
__version__ = '1.0.0'

import os
import sys
from os import symlink, remove
from pathlib import Path
from shutil import copyfile as copy, move
from docopt import docopt
from subprocess import call
import logging
logging.basicConfig(level=logging.DEBUG)

if __name__ == '__main__':
args = docopt(__doc__, version=__version__)
current_dir = Path(sys.argv[0]).parent.absolute()
src_tex = Path(current_dir/"../tex")
src_lyx = Path(current_dir/"../lyx")
texmf = Path(os.environ.get('TEXMFHOME', os.path.expanduser("~/texmf")))
tex = texmf/"tex"
inc = tex/"inc"
g2_105 = tex/"latex/G2-105"
g7_32 = tex/"latex/G7-32"
base = tex/"latex/base"
bibtex = texmf/"bibtex/bst/gost780u"
lyx = Path(os.path.expanduser("~/.lyx/layouts"))
destinations = [texmf, tex, g2_105, g7_32, base, bibtex, lyx];
logging.debug("destinations: {}".format(destinations))
for x in destinations:
try:
x.mkdir(parents=True)
except FileExistsError:
pass
move_function = lambda src, dst: move(str(src), str(dst))
if args['copy']:
move_function = lambda src, dst: copy(str(src), str(dst))
elif args['symlink']:
move_function = lambda src, dst: symlink(str(src), str(dst/src.name))
destination_source = {
inc: src_tex.glob("*.inc.tex"),
g2_105: [src_tex/"G2-105.sty"],
g7_32: [src_tex/"G7-32.sty", src_tex/"cyrtimespatched.sty", src_tex/"GostBase.clo"],
base: [src_tex/"G7-32.cls"],
bibtex: [src_tex/"gost780u.bst"],
lyx: src_lyx.glob("layouts/*"),
}
logging.debug("dict {}".format(destination_source))
for destination, source in destination_source.items():
logging.debug("copying to {}".format(destination))
for f in source:
if args['--overwrite-existing']:
try:
logging.debug("trying to remove {}".format(destination/f.name))
remove(str(destination/f.name))
except FileNotFoundError:
pass
move_function(f.absolute(), destination.absolute())
if args['--update-packages']:
try:
call("texhash", shell=True)
except:
pass

0 comments on commit f1e69e4

Please sign in to comment.