Russian Qt Forum
Ноябрь 23, 2024, 10:04 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1] 2   Вниз
  Печать  
Автор Тема: BibMake - генератор библиографических списков  (Прочитано 18314 раз)
m_ax
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2095



Просмотр профиля
« : Июнь 23, 2013, 14:30 »

Мотивация

При использовании LaTeX'а http://ru.wikipedia.org/wiki/LaTeX для набора документов (статей, книг и т.п.) которые должны включать список цитированной литературы (References), часто сталкиваюсь с проблемой его оформления в соответствии с правилами или требованиями его оформления. Т.е. это просто утомительно, особенно когда ссылок порядка ста.
Конечно, BibTeX http://ru.wikipedia.org/wiki/BibTeX легко решает эту проблему, при условии что у вас есть соответствующий .bst файл с инструкциями (на Фортоподобном языке) которые определяют стиль оформления ссылок. На основе .bst файла и библиографической базы (bib-файлы специального текстового формата для хранения списков библиографических записей) программа bibtex создаёт bbl файл со списком литературы, который в свою очередь подхватывает latex.
   
Итак, проблема с оформлением библиографии возникает когда у нас нет соответствующего .bst файла. Раньше эту проблему я решал одним из трёх способов:
1) Вообще не использовать BiBTeX и набирать список литературы вручную (в соответствии с правилами) в самом LaTeX файле. Это приемлемо, когда ссылок немного, но всё равно это утомительно.. Если ещё учесть, что после правок самой статьи, порядок ссылок в тексте может измениться и тогда придётся переставлять их и в самой библиографии.

2) Использовать близкий по стилю .bst файл и корректировать уже сгенерированный bbl файл.  Это занятие тоже утомительное)

3) Взять близкий по стилю .bst файл и подправить его. И может быть, после продолжительных ночных бдений, что-нибудь и получится) Я, конечно, ничего не имею против форта http://ru.wikipedia.org/wiki/%D0%A4%D0%BE%D1%80%D1%82_(%D1%8F%D0%B7%D1%8B%D0%BA_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F)
но подходить к этому третьему пункту нужно с очищенным (от плюсов) сознанием)

В связи с вышесказанным, назрела необходимость написать свою альтернативу BiBTeX'а - BibMake.
Идеология BibMake при этом будет полностью соответствовать BibTeX'у, только вместо устрашающих .bst файлов будет использован свой формат шаблона оформления. Достаточно прозрачный и интуитивно понятный любому, кто владеет LaTeX'ом на начальном уровне. Таким, чтобы этот шаблон оформления можно было легко изменить в соответствии с правилами (или ГОСТ'ами).

О архитектуре

BibMake включает в себя ядро (core) предоставляющее своё API и саму утилиту bibmake.
Сейчас работаю над самим ядром. Большая часть уже реализована.

Настало время разработать формат для шаблона. Например этот аналог bst файла может выглядеть так:

Код
Bash
article {
#AUTHORS #TITLE {\it #JOURNAL}  {\bf #VOLUME}, (#YEAR), p.~#PAGES  
}
 
book{
...
}
 
booklet{
...
}
 
и т.д.
 
где будут определены зарезервированные слова, и на их места будет вставлены данные из bib файла (библиографической базы). На основе этого шаблона будет получен bbl файл.
Например такой (с ссылкой на статью):
Код
Bash
\begin{thebibliography}{10}
\bibitem{Fivel_PRD_1970} Fivel, D. I. and Mitter, P. K. Theory of Weak Interactions without Divergences {\it Phys. Rev. D}  {\bf 1}, (1970), p.~3270--3290
и т.д.
\end{thebibliography}
 
Т.е. все ссылки на статьи оформляются согласно шаблону article, ссылки на книгу (book), согласно шаблону book и т.д.

Вобщем, сейчас разрабатываю этот формат.
Есть правда пока некоторые сложности.. но..
Если есть какие-либо идеи или замечания - welcome)
Единственное, синтаксис шаблона должен быть наиболее близок к синтаксису LaTeXа и быть наиболее интуитивно понятным)

Спасибо за внимание) В ближайшее время выложу исходники.

 





 
   


     
Записан

Над водой луна двурога. Сяду выпью за Ван Гога. Хорошо, что кот не пьет, Он и так меня поймет..

Arch Linux Plasma 5
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #1 : Июнь 23, 2013, 14:59 »

Несколько лучше чем предыдущая попытка пополнения кладовой, но все равно - мелкотемье, мелкочленье. 
Записан
Old
Джедай : наставник для всех
*******
Online Online

Сообщений: 4350



Просмотр профиля
« Ответ #2 : Июнь 23, 2013, 15:09 »

Несколько лучше чем предыдущая попытка пополнения кладовой, но все равно - мелкотемье, мелкочленье. 
Вы знаете, уже мало что может сравниться с эпохальным "Переходничком".
После этого, все остальное в программировании "мелкотемье, мелкочленье". Улыбающийся
Уж простите, не сдержался.
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #3 : Июнь 23, 2013, 15:35 »

Вы знаете, уже мало что может сравниться с эпохальным "Переходничком".
После этого, все остальное в программировании "мелкотемье, мелкочленье". Улыбающийся
Да, неплохая была темка Улыбающийся Обычно достаточно не упомянуть известные термины, не сослаться на паттерн - и "начитавшегося" можно брать тепленьким.

Кстати у меня есть задача несколько похожая на ту что у m_ax. Вроде и просто, но как ее сделать - ясно не предствляю, а поскольку пользователи не очень настаивают - давно и лежит несделанная.

- приложение делает картинки, может одну, может серию. Было бы желательно дать возможность "подписывать" их, т.е. писать поверх текст заданный пользователем. Напр внизу картинки
Цитировать
кадр 15, время 1:07, всего 15:06   Сделал Я!
Но в отличие от задачи m_ax никаких файлов создавать нельзя, надо как-то это впихнуть в UI. И что-то я затрудняюсь с организацией и дызайном. Есть предложения?
Записан
Old
Джедай : наставник для всех
*******
Online Online

Сообщений: 4350



Просмотр профиля
« Ответ #4 : Июнь 23, 2013, 15:46 »

Кстати у меня есть задача несколько похожая на ту что у m_ax.
Для кого это кстати, для m_ax? Улыбающийся
Что-то мне подсказывает, что он не отнесет вашу задачу к "крупнотемью и крупночленью".

Как всегда постановка задачи на высоте... Вы ее не можете решить, только потому, что вы ее не можете сформулировать даже самому себе.
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #5 : Июнь 23, 2013, 15:57 »

Для кого это кстати, для m_ax? Улыбающийся
Что-то мне подсказывает, что он не отнесет вашу задачу к "крупнотемью и крупночленью".
Так я и сам ее к этому не отношу  Улыбающийся

Как всегда постановка задачи на высоте... Вы ее не можете решить, только потому, что вы ее не можете сформулировать даже самому себе.
Зачем "уличать" меня если я прямо говорю что не могу сфломулировать, т.е. не вижу как это сделать элегантно, удобно для юзверя.  Вот Вы и объясните/покажите как, поразите широтой размаха, концептуальностью и.т.п.  Улыбающийся
Записан
Old
Джедай : наставник для всех
*******
Online Online

Сообщений: 4350



Просмотр профиля
« Ответ #6 : Июнь 23, 2013, 16:03 »

Зачем "уличать" меня если я прямо говорю что не могу сфломулировать, т.е. не вижу как это сделать элегантно, удобно для юзверя. 
Что сделать? Вы так и не написали. Улыбающийся
Для текущей постановки: на главное окно программы нужно добавить QLineEdit, в который пользователь будет набирать строку, которая будет добавляться на все картинки.
Записан
m_ax
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2095



Просмотр профиля
« Ответ #7 : Июнь 23, 2013, 16:03 »

Да, неплохая была темка Улыбающийся Обычно достаточно не упомянуть известные термины, не сослаться на паттерн - и "начитавшегося" можно брать тепленьким.
Вы это серьёзно? Т.е. свой, доморощенный костыль для вас всё равно будет всех милее) О чём тут можно говорить?

Цитировать
Кстати у меня есть задача несколько похожая на ту что у m_ax.

Ой, чувствую, она совсем не похожая..
 

Записан

Над водой луна двурога. Сяду выпью за Ван Гога. Хорошо, что кот не пьет, Он и так меня поймет..

Arch Linux Plasma 5
Old
Джедай : наставник для всех
*******
Online Online

Сообщений: 4350



Просмотр профиля
« Ответ #8 : Июнь 23, 2013, 16:07 »

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

"Начитавшийся" просто не в состоянии понять всю глубину этого решения... Улыбающийся

Ой, чувствую, она совсем не похожая..
А я пока ничего не чувствую. Улыбающийся
Но думаю, что задача про то, как для пользователя удобней задавать шаблоны.
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #9 : Июнь 23, 2013, 16:17 »

Вы это серьёзно? Т.е. свой, доморощенный костыль для вас всё равно будет всех милее) О чём тут можно говорить?
Ну напр о том как человек превращается в жалкого копировальщика чужих решений - но Вам ведь этот разговор не понравится  Улыбающийся

на главное окно программы нужно добавить QLineEdit, в который пользователь будет набирать строку, которая будет добавляться на все картинки.
Там "откуда ни возьмись" появляется вагон опций

- размеры отступов
- выравнивание слева/справа
- рамка для текста, ее заливка (часто полупрозрачная)
- неск строк, вверху/внизу
- размер шрифта
- как-то намекнуть (что ли) как вводить имена переменных
и.т.д.

В общем "пришел за памперсами, купил подводную лодку". Не хочется начинать "большую возню" для скромного ф-ционала  
Записан
m_ax
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2095



Просмотр профиля
« Ответ #10 : Июнь 23, 2013, 16:27 »

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

"Начитавшийся" просто не в состоянии понять всю глубину этого решения... Улыбающийся
Точно) Жалкие копировальщики не способны к "творческому" мышлению)
Записан

Над водой луна двурога. Сяду выпью за Ван Гога. Хорошо, что кот не пьет, Он и так меня поймет..

Arch Linux Plasma 5
Old
Джедай : наставник для всех
*******
Online Online

Сообщений: 4350



Просмотр профиля
« Ответ #11 : Июнь 23, 2013, 16:31 »

Ну напр о том как человек превращается в жалкого копировальщика чужих решений - но Вам ведь этот разговор не понравится  Улыбающийся
Про какие решения вы говорите? Что вы подразумеваете под "решением"?

Там "откуда ни возьмись" появляется вагон опций
Да вы что? Тремя сообщениями выше про про них забыли? Улыбающийся

Не хочется начинать "большую возню" для скромного ф-ционала  
Тогда лучше не начинать. Оно когда еще и не хочется, вообще плохо будет получаться.

Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #12 : Июнь 23, 2013, 16:47 »

Да вы что? Тремя сообщениями выше про про них забыли? Улыбающийся
Ну а зачем сразу лезть со всеми подробностями? Лучше посмотреть как другие умеют работать с постановкой задачи.

Тогда лучше не начинать. Оно когда еще и не хочется, вообще плохо будет получаться.
Не то чтобы "не хочется", фича полезная, вот только не вижу как сделать компактно, поэтому и не начинаю
Записан
_OLEGator_
Гость
« Ответ #13 : Июнь 23, 2013, 19:57 »

Igors, честно говоря ты уже замахал. В каждую тему лезешь со своими нравоучениями и жизненной позицией. Я уже не могу читать темы, где ты оставляешь свой неповторимый след, а точнее не читаю.
Может тебе отдельный форум создать? Потому что ты уже во все ветки лезешь.
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #14 : Июнь 23, 2013, 20:16 »

Igors, честно говоря ты уже замахал. В каждую тему лезешь со своими нравоучениями и жизненной позицией. Я уже не могу читать темы, где ты оставляешь свой неповторимый след, а точнее не читаю.
Может тебе отдельный форум создать? Потому что ты уже во все ветки лезешь.
Судя хоть по этой теме - единственный поучающий здесь Вы, причем довольно хамовитый  Улыбающийся
Записан
Страниц: [1] 2   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.091 секунд. Запросов: 23.