Вытащить библиографию [РЕШЕНО]

Автор CaPpuCcino, 18 августа 2010, 08:03

0 Пользователи и 1 гость просматривают эту тему.

CaPpuCcino

Добрый день, уважаемые!
по неопытности забил всю библиографию во внутренний формат документа Writer. Теперь не знаю как её оттуда выудить. В некоторых ЧаВо видел, что это должно быть возможно если сделать экспорт документа в формат BibTex, что должно быть доступно начиная с версии 2.4 через Файл>Экспорт>.bib
У меня версия 3.2.0 и 3.2.1 русская локализация под ОС Виндавс, но при экспорте доступны только 2 расширения (pdf,x?ml).
Посоветуйте, плз, как поступить. Где найти конец, за который тащить. (Может кто нить укажет например формат файла, чтобы выудить библиографию скриптом? Или может в сборке под Линух присутствует этот фильтр, которого в Вин версии нет?).
Целую неделю бьюсь.
ЗЫ: библиографический плагин под ФаерЛису просьба не предлагать, т.к. сижу на другом браузере и устанавливать целую лису очень не хочется

спасибо

N2H4

#1
У меня этот пункт есть (3.1.1 Pro, Linux), но у меня установлено расширение (http://wiki.services.openoffice.org/wiki/Расширения:_Часто_задаваемые_вопросы)
Writer2LaTeX для экспорта в LaTeX (http://sourceforge.net/projects/writer2latex/). Я не помню, была ли возможность экспорта до его установки.
В OOo под Linux это расширение действительно входит изначально, но в виде очень старой версии (нет выбора кодировки .tex-файла) — всё равно надо ставить отдельно.

Однако, получить библиографию в человеческом виде не удалось ни разу. Независимо от кодировки документа .tex, русский текст в .bib имеет вид {\textcyrillic{{\CYRA}}}{\textcyrillic{{\cyrr}}}{\textcyrillic{{\cyrn}}}

P.S.
Сейчас вот захотелось обновить это расширение встроенной обновлялкой OOo — перестало работать. :( Пришлось откатываться на старый профиль и ставить новую версию руками...

CaPpuCcino

вот, спасибо!
фильтр появился!!! (странно, что они объявляют, что bib фильтр присутствует в инсталяшке по дефолту, а оно не так)
с кириллицей действительно траблы, но слава богу у меня 90% литературы англоязычная, остальные 10% забью заново.
зато теперь хоть скриптиком пробежаться можно, да в базу данных залить по-человечьи :)
респект!

N2H4

#3
В принципе, если Вы всё равно будете заниматься скриптописательством, можно и кириллицу так обработать, а не вбивать заново — заменить "{\textcyrillic{{\CYRA}}}" на "А", "{\textcyrillic{{\cyra}}}" на "а", и так далее...

йцукенгшщзхъфывапролджэячсмитьбю
{\textcyrillic{{\cyrishrt}}}{\textcyrillic{{\cyrc}}}{\textcyrillic{{\cyru}}}{\textcyrillic{{\cyrk}}}{\textcyrillic{{\cyre}}}{\textcyrillic{{\cyrn}}}{\textcyrillic{{\cyrg}}}{\textcyrillic{{\cyrsh}}}{\textcyrillic{{\cyrshch}}}{\textcyrillic{{\cyrz}}}{\textcyrillic{{\cyrh}}}{\textcyrillic{{\cyrhrdsn}}}{\textcyrillic{{\cyrf}}}{\textcyrillic{{\cyrery}}}{\textcyrillic{{\cyrv}}}{\textcyrillic{{\cyra}}}{\textcyrillic{{\cyrp}}}{\textcyrillic{{\cyrr}}}{\textcyrillic{{\cyro}}}{\textcyrillic{{\cyrl}}}{\textcyrillic{{\cyrd}}}{\textcyrillic{{\cyrzh}}}{\textcyrillic{{\cyrerev}}}{\textcyrillic{{\cyrya}}}{\textcyrillic{{\cyrch}}}{\textcyrillic{{\cyrs}}}{\textcyrillic{{\cyrm}}}{\textcyrillic{{\cyri}}}{\textcyrillic{{\cyrt}}}{\textcyrillic{{\cyrsftsn}}}{\textcyrillic{{\cyrb}}}{\textcyrillic{{\cyryu}}}

ЙЦУКЕНГШЩЗХЪФЫВАПРОЛДЖЭЯЧСМИТЬБЮ
{\textcyrillic{{\CYRISHRT}}}{\textcyrillic{{\CYRC}}}{\textcyrillic{{\CYRU}}}{\textcyrillic{{\CYRK}}}{\textcyrillic{{\CYRE}}}{\textcyrillic{{\CYRN}}}{\textcyrillic{{\CYRG}}}{\textcyrillic{{\CYRSH}}}{\textcyrillic{{\CYRSHCH}}}{\textcyrillic{{\CYRZ}}}{\textcyrillic{{\CYRH}}}{\textcyrillic{{\CYRHRDSN}}}{\textcyrillic{{\CYRF}}}{\textcyrillic{{\CYRERY}}}{\textcyrillic{{\CYRV}}}{\textcyrillic{{\CYRA}}}{\textcyrillic{{\CYRP}}}{\textcyrillic{{\CYRR}}}{\textcyrillic{{\CYRO}}}{\textcyrillic{{\CYRL}}}{\textcyrillic{{\CYRD}}}{\textcyrillic{{\CYRZH}}}{\textcyrillic{{\CYREREV}}}{\textcyrillic{{\CYRYA}}}{\textcyrillic{{\CYRCH}}}{\textcyrillic{{\CYRS}}}{\textcyrillic{{\CYRM}}}{\textcyrillic{{\CYRI}}}{\textcyrillic{{\CYRT}}}{\textcyrillic{{\CYRSFTSN}}}{\textcyrillic{{\CYRB}}}{\textcyrillic{{\CYRYU}}}

:)

CaPpuCcino

точно, спасибо, я и не заметил. думал, что это просто мусор :)
хотя может быть даже проще в исходник взглянуть, может там не так всё и сложно окажется, чтоб подправить :)

N2H4

Если сможете сделать "русифицированный" Writer2LaTeX, выложите сюда, пожалуйста!
Думаю, это будет интересно не только мне.

CaPpuCcino

явовскую прогу переделывать не стал - времени нет
накатал скрипт на lua, который конвертит тэги в кириллицу. проверено под дас Виндавс + JabRef.
скрипт предназначен для интеграции с известным фриварным текстовым редактором SciTE запускается из меню текстового редактора
(почему с SciTE? потому что я с ним работаю. и скриптовый движок в нём уже встроен, так что отдельный движок устанавливать нет необходимости)
инструкция по интеграции и запуску находится в файле скрипта. привожу её также здесь, чтобы юзер имел представление о сложности предстоящей работы
инструкция на англ. во избежании проблем с кодировкой:

-- this is Lua script for SciTE integrated Lua engine execution
-- the script works on selected text!!!
-- it translates tags generated by Writer2BibTex converter into their cerillic symbols by searching
-- in the selected text tags that match a string in translit_tag array ad substituting it
-- with a correspondent symbol in translit_letter

-- Execution:
-- this file should be placed in $(SciteDefaultHome)\tools\Convert_BibTex_Cyr.lua, where $(SciteDefaultHome) is SciTE home dir
-- to bind the lue script with SciTE
-- add to $(SciteDefaultHome)\SciTEToolsMenu.properties
-- the following lines
--
--  command.name.59.$(file.patterns.text)=BibTex Cyr Convert
--  command.59.$(file.patterns.text)=dofile $(SciteDefaultHome)\tools\Convert_BibTex_Cyr.lua
--  command.mode.59.$(file.patterns.text)=subsystem:lua,savebefore:no
--
-- "BibTex Cyr Convert" will appear in your "Tools" menu
-- IMPORTANT!!! the script is now associated exclusivelly with TEXT files, so the file you want to "translate"
-- should have .txt extension (it is done so that a user do not need finer tuning of SciTE configuration file,
-- if you are familiar with SciTE you may add .bib to file associations)

SciTE я думаю найти проблемы не представит (википедии ссылка есть)

будут какие-нить вопр. или пож., с радостью отвечу
всех благ

[вложение удалено Администратором]

N2H4

#7
«Прикрутить» Ваш скрипт к scite и SciTE-Ru под Linux мне не удалось, но этот пример сподвиг меня написать конвертер на баше (запуск: имя_скрипта имя_файла.bib):

#!/bin/bash

translit_tag=( fake {\\\\textcyrillic{{\\\\cyrishrt}}} {\\\\textcyrillic{{\\\\cyrc}}} {\\\\textcyrillic{{\\\\cyru}}} {\\\\textcyrillic{{\\\\cyrk}}} {\\\\textcyrillic{{\\\\cyre}}} {\\\\textcyrillic{{\\\\cyrn}}} {\\\\textcyrillic{{\\\\cyrg}}} {\\\\textcyrillic{{\\\\cyrsh}}} {\\\\textcyrillic{{\\\\cyrshch}}} {\\\\textcyrillic{{\\\\cyrz}}} {\\\\textcyrillic{{\\\\cyrh}}} {\\\\textcyrillic{{\\\\cyrhrdsn}}} {\\\\textcyrillic{{\\\\cyrf}}} {\\\\textcyrillic{{\\\\cyrery}}} {\\\\textcyrillic{{\\\\cyrv}}} {\\\\textcyrillic{{\\\\cyra}}} {\\\\textcyrillic{{\\\\cyrp}}} {\\\\textcyrillic{{\\\\cyrr}}} {\\\\textcyrillic{{\\\\cyro}}} {\\\\textcyrillic{{\\\\cyrl}}} {\\\\textcyrillic{{\\\\cyrd}}} {\\\\textcyrillic{{\\\\cyrzh}}} {\\\\textcyrillic{{\\\\cyrerev}}} {\\\\textcyrillic{{\\\\cyrya}}} {\\\\textcyrillic{{\\\\cyrch}}} {\\\\textcyrillic{{\\\\cyrs}}} {\\\\textcyrillic{{\\\\cyrm}}} {\\\\textcyrillic{{\\\\cyri}}} {\\\\textcyrillic{{\\\\cyrt}}} {\\\\textcyrillic{{\\\\cyrsftsn}}} {\\\\textcyrillic{{\\\\cyrb}}} {\\\\textcyrillic{{\\\\cyryu}}} {\\\\textcyrillic{{\\\\CYRISHRT}}} {\\\\textcyrillic{{\\\\CYRC}}} {\\\\textcyrillic{{\\\\CYRU}}} {\\\\textcyrillic{{\\\\CYRK}}} {\\\\textcyrillic{{\\\\CYRE}}} {\\\\textcyrillic{{\\\\CYRN}}} {\\\\textcyrillic{{\\\\CYRG}}} {\\\\textcyrillic{{\\\\CYRSH}}} {\\\\textcyrillic{{\\\\CYRSHCH}}} {\\\\textcyrillic{{\\\\CYRZ}}} {\\\\textcyrillic{{\\\\CYRH}}} {\\\\textcyrillic{{\\\\CYRHRDSN}}} {\\\\textcyrillic{{\\\\CYRF}}} {\\\\textcyrillic{{\\\\CYRERY}}} {\\\\textcyrillic{{\\\\CYRV}}} {\\\\textcyrillic{{\\\\CYRA}}} {\\\\textcyrillic{{\\\\CYRP}}} {\\\\textcyrillic{{\\\\CYRR}}} {\\\\textcyrillic{{\\\\CYRO}}} {\\\\textcyrillic{{\\\\CYRL}}} {\\\\textcyrillic{{\\\\CYRD}}} {\\\\textcyrillic{{\\\\CYRZH}}} {\\\\textcyrillic{{\\\\CYREREV}}} {\\\\textcyrillic{{\\\\CYRYA}}} {\\\\textcyrillic{{\\\\CYRCH}}} {\\\\textcyrillic{{\\\\CYRS}}} {\\\\textcyrillic{{\\\\CYRM}}} {\\\\textcyrillic{{\\\\CYRI}}} {\\\\textcyrillic{{\\\\CYRT}}} {\\\\textcyrillic{{\\\\CYRSFTSN}}} {\\\\textcyrillic{{\\\\CYRB}}} {\\\\textcyrillic{{\\\\CYRYU}}} )

translit_letter=( fake й ц у к е н г ш щ з х ъ ф ы в а п р о л д ж э я ч с м и т ь б ю Й Ц У К Е Н Г Ш Щ З Х Ъ Ф Ы В А П Р О Л Д Ж Э Я Ч С М И Т Ь Б Ю )

LIMIT=${#translit_letter[@]}
echo  $1

for ((n=1; n < $LIMIT; n++))
do  
echo  $n  ${translit_tag[$n]}  ${translit_letter[$n]} s/${translit_tag[$n]}/${translit_letter[$n]}/
sed -i s/${translit_tag[$n]}/${translit_letter[$n]}/g "$1"
done

CaPpuCcino

ну, теперь думаю всем бурет счастье.
респект  :)

CaPpuCcino

только что проверил на последней русской сборке установленной начисто SciTE_203_75Ru_200710
действовал, строго по инструкции приведённой в файле - работает!
думаю, что проблема в следующем
1) вы скачали файл отсюда с расширением .txt, я к сож. забыл сказать, что расширение нужно поленять на .lua (с этим расширением мне движок форума не позволил загрузить), а в пути  к скрипту прописано жёстко  $(SciteDefaultHome)\tools\Convert_BibTex_Cyr.lua
(т.е. редактор будет искать именно .lua);
2) возможно вы не выделили текст, который собирались конвертить, а в инстр. по прим. сказано  "the script works on selected text!!!", наверное мне нужно было больше акцентировать на этом внимание потенц. польз.

если кому-нибудь захочет пользовать этот скрипт (баш не доступен под Виндой), и всё-таки что-то с SciTE не сработает, пишите сюда, попробуем разобраться.
удач

N2H4

#10
Возможно, я что-то делаю не так — не приходилось работать с lua ни под Linux, ни под Windows. Протокол моих действий:

-1. На всякий случай удаляю старый SciTE. Качаю исходники SciTE-Ru с svn (т.к. готовых сборок под Linux они не выпускают), собираю и устанавливаю с префиксом prefix=/usr
Настроечные файлы оказались в /usr/share/scite/, исполняемый — /usr/bin/SciTE, после запуска в домашнем каталоге ~ образовались файлы .SciTE.session и .SciTEUser.properties

0. Смотрю на каталог с конфигурационными файлами SciTE:

abap.properties                     opal.properties
abaqus.properties                   others.properties
abbrev.properties                   pascal.properties
ada.properties                      perl.properties
asm.properties                      pov.properties
asn1.properties                     powerpro.properties
au3.properties                      powershell.properties
ave.properties                      PrintHi.png
baan.properties                     ps.properties
blitzbasic.properties               purebasic.properties
bullant.properties                  python.properties
caml.properties                     rebol.properties
cmake.properties                    r.properties
cobol.properties                    ruby.properties
CommandValues.html                  SciTEDirector.html
conf.properties                     SciTEDoc.html
cpp.properties                      SciTEDownload.html
csound.properties                   SciTEExtension.html
css.properties                      SciTEExternalLexer.html
d.properties                        SciTEExtras.html
eiffel.properties                   SciTEFAQ.html
Embedded.properties                 SciTEGlobal.properties
erlang.properties                   SciTE.html
escript.properties                  SciTEIco.png
euphoria.properties                 SciTEImage.html
flagship.properties                 SciTELexer.html
forth.properties                    SciTELua.html
fortran.properties                  SciTE.properties
freebasic.properties                SciTERegEx.html
gap.properties                      ScriptLexer.html
html.properties                     scriptol.properties
inno.properties                     smalltalk.properties
kix.properties                      sorcins.properties
latex.properties                    specman.properties
lisp.properties                     spice.properties
lot.properties                      sql.properties
lout.properties                     tacl.properties
lua.properties                      tal.properties
matlab.properties                   tcl.properties
metapost.properties                 tex.properties
mmixal.properties                   vb.properties
nimrod.properties                   verilog.properties
nncrontab.properties                vhdl.properties
nsis.properties                     yaml.properties

подкаталога tools/ нету, создаю.

1. Копирую файл Convert_BibTex_Cyr.txt, переименованный в Convert_BibTex_Cyr.lua, в /usr/share/scite/tools/. В Вашей инструкции внутри файла указано нужное расширение этого файла, так что всё нормально.
Создаю файл /usr/share/scite/SciTEToolsMenu.properties с текстом

command.name.59.$(file.patterns.text)=BibTex Cyr Convert

command.59.$(file.patterns.text)=dofile $(SciteDefaultHome)\tools\Convert_BibTex_Cyr.lua

command.mode.59.$(file.patterns.text)=subsystem:lua,savebefore:no

Запускаю SciTE, меню Tools не меняется.

Дописываю в ~/.SciTEUser.properties строку import SciTEToolsMenu, перезапускаю SciTE, меню Tools не меняется.

Копирую эти 3 строки прямо в ~/.SciTEUser.properties, перезапускаю SciTE, меню Tools не меняется.

Меняю их (в ~/.SciTEUser.properties) на

command.name.59.*=BibTex Cyr Convert
command.59.*=dofile /usr/share/scite/tools/Convert_BibTex_Cyr.lua
command.mode.59.*=subsystem:lua,savebefore:no

перезапускаю SciTE, меню Tools снова не меняется.

2. При этом текст выделялся, файлы были как с расширением *.tex, так и *.txt...

[вложение удалено Администратором]

CaPpuCcino

не думал, что сборка под Вин и Лин, могут так сильно различаться. в Вин файл SciTEToolsMenu.properties входит в стандартную иерархию конфигурационных файлов и определяет содержание меню (так что его создавать не приходиться. он есть стандарт). также набор утверждённых скриптов луа, устанавливается сразу в папке tools. к сожалению у меня нет сейчас возможности разбираться с луниховской сборкой. в этом прошу меня уволить.
думаю линуховые пользователи вполне удовлетворятся вашим скриптом, а под виндовз смогут восп. моим, так что мы, получается перекрыли практически весь рынок и далее ломать копья не имеет смысла.