пятница, 10 декабря 2010 г.

Установка boost под Windows. Сборка из исходников

Новый пост из серии «Простой проект с использованием CMake, log4cxx, boost».

В предыдущей записи было рассказано, как установить boost с помощью Boost Installer. Данный подход оказался неудачным, поскольку сервера, с которых инсталлятор скачивал необходимые файлы, часто оказывались недоступны. Поэтому рассмотрим второй способ установки — сборку из исходников.

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

Сборка осуществляется за два шага. Сначала нужно собрать bjam, утилиту, управляющую процессом компиляции и установки. Для этого предназначена команда bootstrap. После ее запуска необходимо собрать и установить сам boost.
bjam --prefix="C:\Program Files (x86)\boost\boost_1_44_0" --build-type=complete --with-system --with-filesystem install

Ключи имеют следующие значения:
  • prefix — директория, куда будет установлена библиотека;
  • build-type определяет варианты сборки (статические/динимические, многопоточность, наличие отладочной информации, способ линковки с run-time'ом). complete осуществляет сборку всех возможных вариантов;
  • with-system — собирать библиотеку system;
  • with-filesystem — собирать библиотеку filesystem.

воскресенье, 28 ноября 2010 г.

LaTeX и шрифт 14 пунктов

Чтобы использовать шрифт размером больше 12 пунктов, необходимо установить пакет extsizes. Размер шрифта указывается при объявлении класса документа.

\documentclass[14pt]{extarticle}

При использовании нестандартных шрифтов рекомендуется использовать нестандарные классы, такие как extarticle.

При трасляции может быть выдано предупреждение
Package ExtSizes Warning: It is better to use one of the extsizes classes, if you can.

Оно означает, что где-то в прамбуле явно через usepackage подключается пакет extsizes. Эту команду нужно убрать. Подробности можно найти здесь.

суббота, 27 ноября 2010 г.

BibTeX, utf8 и стили gost

У BibTeX из TeX Live возникает проблема с кодировкой utf8 при использовании стиля gost78s, которая может касаться и других стилей gost: вместо инициалов авторов подставляются неюникодные символы, что приводит к ошибке трансляции.
! Package inputenc Error: Unicode char \u8:�. not set up for use with LaTeX.

Это можно решить тем же способом, что и проблему с MiKTeX: необходимо заменить f. (f с точкой) на ff (две f). В файле /usr/share/texmf-texlive/bibtex/bst/gost/gost780s.bst эта подстрока встречается два раза. Чтобы не менять системный файл, этот файл можно скопировать в рабочую папку, сменив имя, чтобы LaTeX не спутал его с системным.

Найдено здесь.

вторник, 9 ноября 2010 г.

WCF: аутентификация по логину и паролю. Ссылки

http://codebetter.com/blogs/peter.van.ooijen/archive/2010/03/22/a-simple-wcf-service-with-username-password-authentication-the-things-they-don-t-tell-you.aspx

http://codebetter.com/blogs/peter.van.ooijen/archive/2010/04/09/a-simple-wcf-service-with-username-password-authentication-the-things-you-told-me.aspx

Как запустить просмотр pdf из Makefile в Windows

Q: Как сделать так, чтобы цель Makefile'а под Windows запускала pdf'ку в программе по умолчанию?

A:
view: $(PDF)
  cmd /c start $(PDF)

LaTeX: единый Makefile для Windows и Linux

Бывает необходимо собирать документы LaTeX и на Windows и на Linux. За счет использования MiKTeX и GnuWin можно не беспокоится о платформозависимости, но остается один мелкий нюанс: создание директории для сборки командой mkdir. В linux'е она принимает ключ -p, позволяя создать несколько вложенных директорий за раз и не падать с ошибкой, если директория уже существует. В винде этот ключ рассматривается как имя папки и повторный запуск make'а прерывает сборку с ошибкой, что папка уже существует. Для решения этой проблемы нужно реализовать ветвление по типу ОС.

...

UNAME = $(shell uname)
ifeq ($(UNAME), windows32)
  MKDIR_COMMAND = if not exist $(BUILD_DIR) mkdir $(BUILD_DIR)
else
  MKDIR_COMMAND = mkdir -p $(BUILD_DIR)
endif

all: $(PDF)

$(PDF): $(TEX) $(STYLE)
  $(MKDIR_COMMAND)
  pdflatex -output-directory=$(BUILD_DIR) $(TEX)
  pdflatex -output-directory=$(BUILD_DIR) $(TEX)
  mv $(BUILD_DIR)/$(PDF) .

...

суббота, 6 ноября 2010 г.

Установка PSCyr под TeX Live

Google на вопрос об установке PSCyr под linux отвечает массой странных ссылок, предлагающих превратить Убунту в Слаку. Самая адекватная, на мой взгляд, инструкция находится здесь. Позволю себе ее скопировать, приведя ее в соответствие тому, что есть сейчас.

  1. Нужно достать PSCyr. На данный момент последняя версия, доступная тут — 0.4d-beta9. Скачиваем файлы pscyr-0.4-beta9exp2-tex.tar.gz и pscyr-0.4-beta9exp2-type1.tar.gz.
  2. В домашнем каталоге необходимо создать директорию с именем .texmf-var. В этом каталоге будут храниться пользовательские настройки, что довольно удобно: дополнительные пакеты может ставить и простой пользователь, не только root.
  3. Теперь извлекаем из скачанных архивов в ~/.texmf-var/ каталоги fonts и tex. Каталог dvips извлекать не нужно!
  4. В каталоге ~/.texmf-var/fonts/ необходимо создать два каталога: map и enc. Здесь хранится информация осоответствии имен файлов и имен шрифтов, а также о кодировках шрифтов.
  5. Теперь настал черед директории dvips из архивов. Необходимо распаковать файл dvips/pscyr/pscyr.map в каталог ~/.texmf-var/fonts/map/, а файлы dvips/pscyr/t2a.enc и dvips/pscyr/t2d.enc в каталог ~/.texmf-var/fonts/enc/. Тем самым, необходимые для работы PSCyr файлы оказываются на нужных местах. Остается только указать xdvi и dvips, чтобы они их использовали.
  6. Изменение конфигурационных файлов. Увы, тут без прав root не обойтись. В файл /etc/texmf/xdvi/xdvi.cfg нужно добавить строку dvipsmap pscyr.map. А в файл /etc/texmf/dvips/config/config.ps строку p +pscyr.map. После чего от имени пользователя выполнить команду texhash. PSCyr должен работать с этого момента.

Проверено на Ubuntu 10.10 Maverick Meerkat, texlive версии 2009-10.

Update: лучше пользоваться этим.