Посты за Март 2017
Экспорт bibTeX
13 Марта, 2017
Комментарии
Заметка, чтобы не забыть. При написании TeXовских документов, я использую общий для всех файл biblatex. В основном потому что удобно иметь один шаблон и не думать об этом. Но посылать огромную библиографию в редакцию как-то некрасиво.
Простой способ получить biblatex-файл, в котором содержатся только использованные в документе ссылки возможно следующим образом:
bibexport -o outfile.bib ${document}.aux
при использовании непосредственно bibtex
biber --output-format=bibtex ${document}.bcf
при использовании biber
Определить использование последнего можно по факту наличия bcf
-файла после сборки документа.
Кстати, пока не забыл, беспроблемная сборка:
latexmk --outdir=build -f -pdf $document
Closure-Compiler и ghcjs
13 Марта, 2017
Комментарии
Ghcjs оказывается иногда незаменим если хочется Хаскеля в JavaScript-окружении. Однако его выдача имеет нередко просто чудовищные размеры.
Решить (или по крайней мере уменьшить) проблему размера возможно с помощью гугловского closure-compiler. Однако в случае сборки под node.js возникает трудность: ADVANCED_OPTIMIZATIONS
ломают названия нодовских функций. И все, привет. Есть, само собой, https://github.com/dcodeIO/ClosureCompiler.js, но он отмечен как outdated.
В общем, можно достичь нужного эффекта руками. Для этого следует клонировать https://github.com/dcodeIO/node.js-closure-compiler-externs и включить параметром --externs
все *.js
файлы оттуда. Вручную это, конечно, грустно. Поэтому я набросал вот такой вот скрипт:
#!/bin/bash
closure-compiler $1.jsexe/all.js --compilation_level=ADVANCED_OPTIMIZATIONS $(ls node.js-closure-compiler-externs/*.js | sed 's/^/--externs=/') --externs=$1.jsexe/all.js.externs > $1.js
Он, само собой, ужасен, но нужного эффекта достичь позволяет.
Замечание: гарантий, что extern’ы корректные, ни у кого нет. Поэтому что-то в каких-то случаях может ломаться совершенно случайным образом. Используйте на свой страх и риск.