четверг, 21 ноября 2013 г.

Список литературы (используемых источников) в OpenOffice.org / LibreOffice

Как вставить список литературы

Механизм таков:
  1. вставляются ссылки на источники Вставка → Оглавление и указатели → Элемент списка литературы...
  2. вставляется сам список литературы Вставка → Оглавление и указатели → Оглавление и указатели... В окне из списка Вид выбрать Библиография.
Ссылки на источники вставляются из базы данных. Поэтому, перед тем как вставить ссылку на источник источник его сначала надо создать. Источники можно сохранять (создавать) в двух местах:
  • в глобальной базе данных
  • в документе
Источники из глобальной базы данных библиографии можно использовать в любом документе. На источники, хранящиеся в документе, можно ссылаться только из того документа, в котором они созданы.
Чтобы вставить ссылку  на источник в текст едем в меню: Вставка → Оглавление и указатели → Элемент списка литературы... Где выбираем откуда вставлять: из базы данных библиографии или из содержимого документа. Элемент выбирается из раскрывающегося меню Сокращённое название.  Если выбрать вставку из документа, то в этом же окошке активизируется кнопка Создать с говорящим названием. Нажав на эту кнопку можно создать источник, заполнив нужные поля в диалоговом окне. Таким образом источник сохранится в документе. Нажав на кнопку Вставить в позиции курсора появится ссылка на источник. Вид её будет, скорее всего, непотребный и надо сделать кое-какие настройки (см. ниже).

Как вставить источник в базу данных библиографии

Для этого едем в меню Сервис → База данных библиографии. Откроется окно с таблицей и кучей полей. Все их заполнять необязательно, да относятся они к разным типам источников (тип надо выбрать из раскрывающегося меню). В поле Сокращённо надо коротко и точно описать источник, чтобы в будущем по этому полю легко и быстро его найти при вставке ссылки. Чтобы вставить новый источник, надо в таблице поставить курсор на последнюю строку.

Как вставить источник в документ

Вставка → Оглавление и указатели → Элемент списка литературы...Выбрать Из содержимого документа и нажать на кнопку Создать.

Как настроить список литературы и ссылки на источники

Ссылки на исчточник по-умолчанию некошерные. В большинстве случаев они должны выглядеть так [1]. Это настаивается при вставке списка литературы: выставить галочку Пронумеровать элементы и из списка Скобки выбрать [].
При создании источника заполнялось много-много полей. Из них то и состоят записи в списке. Их количество, порядок и содержание формируются на вкладке Элементы всё того же диалогового окна в позиции Структура. Структура настаивается для выбранного типа источника. Сперва надо выбрать тип источника, затем настроить его структуру, получив в процессе много удовольствия.
Все эти действия можно проделать над вставленным списком литературы, щёлкнув по нему пкм и выбрав меню Править оглавление / указатель.
К элементам списка литературы применяются стиль абзаца Библиография и стиль списка Нумерованный список 1, рекомендуется создать из них дочерние пользовательские стили, которые настраивать по своему усмотрению. Если элементы должны нумеровать в квадратных скобках, то надо настроить стиль списка: пкм по стилю  → Изменить → Параметры
→ До и После. Стиль списка привязывается к стилю абзаца: пкм по стилю абзаца → Изменить → Структура и нумерация → Стиль нумерации. Тут же рекомендуется изменить уровень структуры на Основной текст.

Как убрать элементы списка литературы из оглавления / содержания

Баг это или фича, но элементы списка литературы вставляются в оглавление. Фикс: пкм по стилю абзаца → Изменить → Структура и нумерация
Уровень структуры выбрать Основной текст. PROFIT!!!

Резюме

  1. создать источник
  2. вставить ссылку на источник
  3. вставить библиографию
  4. настроить структуру элементов
  5. создать свои стили для абзаца и списка библиографии
  6. настроить стили
  7. убрать элементы списка из оглавления
Все созданные стили лучше бы сохранить, например в шаблон, чтобы в будущем избежать п.п. 5-7.

вторник, 13 августа 2013 г.

Русский язык в MySQL с кодировкой utf8

1. Создаём базу данных с указанием кодировки:
CREATE DATABASE dbname CHARACTER SET utf8;
2. Проверяем результат:
show variables like 'char%';

+--------------------------+----------------------------+
| Variable_name            | Value                                          |
+--------------------------+----------------------------+
| character_set_client     | utf8                       |
| character_set_connection | utf8                       |
| character_set_database   | utf8                       |
| character_set_filesystem | binary                     |
| character_set_results    | utf8                       |
| character_set_server     | latin1                     |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+

пятница, 1 марта 2013 г.

установка SQL Server Express 2008 и Management Studio

Теперь всё ставится через жопу центр установки. После запуска инсталятора всё время будет открываться одно и тоже окно. И каждый раз надо нажимать на кнопку "New SQL Sqerver installation or add features ... ".
Порядок действий:
  1. поставить MS SQL
  2. натянуть на него апдейт
  3. добавить менеджмент студио - тут надо выбрать "новая установка" в начале и на одном из экранов мастера (там где выбор между установкой нового и добавлением компонента). 
ref:

суббота, 23 февраля 2013 г.

Проблема SSL при использовании svn из командной строки
Решение:
sudo apt-get install libneon27-dev
cd /usr/lib
sudo mv libneon-gnutls.so.27 libneon-gnutls.so.27.old
sudo ln -s libneon.so.27 libneon-gnutls.so.27

Англо-Русский перевод из Python на основе API Яндекс.Перевода

При чтении англо-язычной литературы часто хочется подсмотреть перевод незнакомых слов. Для этого в браузерах есть плагины, например в Chrome и в Firefox. Руки тянутся делать и вне браузера. Один из способов - уподобится плагинам, испльзуя api одного из онлановых переводчиков, например от Яндекс. Оный предоставляет xml и json форматы выхлопа. Используем json.
Скрипт читает английский стандартный ввод и пишет по-русский в стандартный вывод.


#!/usr/bin/env python
import httplib
import sys
from string import maketrans
import json

HOST = "translate.yandex.net"
RSRC = "/api/v1/tr.json/translate?lang=en-ru"
HTTP_OK = 200
TRANS_OK = 200

def outResult(uData):
result = uData.encode("utf8")
return result

def readFromStdIn():
result = ""
for line in sys.stdin:
result += "&text=" + line.strip()
return result

def prepareURL(arg):
text = arg.strip()
transTable = maketrans(" ?", "+.")
text = text.translate(transTable)
return text

def parseJSONResponseToList(dataString):
respDict = json.loads(dataString)
transCode = respDict['code']
if transCode == TRANS_OK:
lineList = respDict['text']
else:
lineList = None
return lineList


def getResponse(host, rsrc):
h = httplib.HTTP(host)
h.putrequest("GET", rsrc)
h.putheader("Host", host)
h.putheader("User-agetnt", "python httplib on linux 3")
h.endheaders()
retCode, retMsg, headers = h.getreply()
if retCode == HTTP_OK:
f = h.getfile()
line = f.read()
f.close()
return line
else:
print retCode, headers, retMsg

#prepare translate

respLine = getResponse(HOST, RSRC + prepareURL(readFromStdIn()))
transLines = parseJSONResponseToList(respLine)
translation = u''
for line in transLines:
translation += line + ' '
try:
outLine = outResult(translation)
except:
pass
print outLine

Надо бы добавить определение языка, передачу через аргументы командной строки, обработку ошибок...

Чтобы переводить выделенный текст используем xclip и bash :

#!/bin/bash
xclip -o | /home/maa/soft/shell/yandex_translate_en-ru.py | while read MESSAGE; do notify-send Перевод "`xclip -o` : $MESSAGE"; done


И, наконец, вешаем на shell скрипт хоткей. 

пятница, 22 февраля 2013 г.

Читать из стандартного ввода/вывода stdin


Python: прочитать stdin

#!/usr/bin/env python
import sys

lines = ""
for line in sys.stdin:
    lines = lines  + line.strip() #склеиваем и кастрируем конец строки
print lines

На выхлопе одна строка, склеенная из stdin