diff options
author | Karl Berry <karl@freefriends.org> | 2009-06-24 16:35:13 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2009-06-24 16:35:13 +0000 |
commit | d73a503687f31a927aea191ec9ed3cf1c950fd8f (patch) | |
tree | 7dc5b70b51a539ac785341bad4387d836bb371c2 /Master/texmf-dist/source/latex/disser/disser-bst.dtx | |
parent | 3c2360d0385b88c9a20bd20ac33c71d9cec07294 (diff) |
disser update (23jun09)
git-svn-id: svn://tug.org/texlive/trunk@13941 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source/latex/disser/disser-bst.dtx')
-rw-r--r-- | Master/texmf-dist/source/latex/disser/disser-bst.dtx | 206 |
1 files changed, 132 insertions, 74 deletions
diff --git a/Master/texmf-dist/source/latex/disser/disser-bst.dtx b/Master/texmf-dist/source/latex/disser/disser-bst.dtx index 0e519751885..7e504c7d62d 100644 --- a/Master/texmf-dist/source/latex/disser/disser-bst.dtx +++ b/Master/texmf-dist/source/latex/disser/disser-bst.dtx @@ -22,13 +22,13 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %<*driver> -\ProvidesFile{disser-bst.drv}[2008/12/01 1.0.0 Bibliography style for dissertations.] +\ProvidesFile{disser-bst.drv}[2009/06/19 1.1.2 Bibliography style for dissertations.] \documentclass{ltxdoc} \usepackage[a4paper, includeheadfoot, nohead, mag=1000, left=5cm, right=1cm, top=1.5cm, bottom=1.5cm]{geometry} \usepackage{ifpdf,indentfirst,color} -\definecolor{darkblue}{rgb}{0,0,.5} +\definecolor{darkblue}{rgb}{0,0,.6} \ifpdf \usepackage[% pdftex, @@ -50,7 +50,7 @@ \fi \hypersetup{ - colorlinks = true, linkcolor = black, + colorlinks = true, linkcolor = darkblue, citecolor = darkblue, filecolor = darkblue, menucolor = darkblue, urlcolor = darkblue } @@ -87,7 +87,7 @@ % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % -% \title{\texttt{disser.bst} "--- стиль библиографических ссылок} +% \title{Стили библиографии: \texttt{disser} и \texttt{disser-s}} % \date{Версия \fileversion\\[6pt]\filedate} % \author{Станислав Кручинин\\[6pt] % \normalsize E-mail: @@ -96,69 +96,10 @@ % % \maketitle % -% \tableofcontents -% -% \section{Введение} -% -% Cтиль для оформления библиографических ссылок |disser.bst| представляет собой -% доработанную версию |gost71u.bst| из пакета |gost|, написанного Максимом Поляковым. -% Создание |disser.bst| обусловлено следующими причинами: пакет |gost| более не -% поддерживается автором, а оформление библиографии в соответствии с его стилями -% противоречит некоторым требованиям, предъявляемым диссертационными советами -% к библиографическим ссылкам. -% -% Основные отличия |disser.bst| от |gost71u.bst|: -% -% \begin{enumerate} -% \item Инициалы авторов всегда печатаются перед фамилией. -% \item Авторы, независимо от их количества, всегда печатаются перед -% названием источника. -% \item Отсутствует поддержка украинского языка. -% \item Настраиваемый префикс у номера библиографической ссылки (макрос |\BibPrefix|). -% \end{enumerate} -% -% \section{Руководство по использованию} -% -% Для использования |disser.bst| необходима версия \BibTeX{} с поддержкой -% 8-битных символов (|bibtex8|). В зависимости от кодировки, использованной -% в bib-файле, необходимо подключать тот или иной файл с описанием кодовой -% страницы и порядка сортировки (csf-файл), например, |koi8u.csf| или -% |cp1251.csf|. Примеры библиографических записей приведены в документации к -% пакету |gost|, который может быть найден в любом современном дистрибутиве \LaTeX{}. -% -% Последовательность команд, используемая для полной сборки документа -% с библиографией: -% \begin{verbatim} -% latex <tex_file> -% bibtex8 -H -c <csf_file> <tex_file_basename> -% latex <tex_file> -% latex <tex_file> -% \end{verbatim} -% Здесь |<tex_file>| "--- файл документа, |<csf_file>| "--- файл описания -% кодовой страницы, |<tex_file_basename>| "--- имя файла документа без расширения. -% -% Данный стиль позволяет менять префикс номера ссылок, т.\,е. использовать -% ссылки вида [A1] вместо [1]. Эта возможность необходима поскольку в -% автореферате следует различать ссылки на работы соискателя и на внешние -% источники. Префикс номера ссылки определяется макросом |\BibPrefix|, -% значение которого должно быть задано до использования команды -% |\bibliographystyle|. -% -% Пример: -% \begin{verbatim} -% \def\BibPrefix{A} -% \bibliographystyle{disser} -% \bibliography{thesis}\end{verbatim} -% В данном случае ссылки на библиографию будут иметь вид [A$n$], где $n$ "--- -% номер. -% -% К сожалению, пакет |natbib| не <<сжимает>> ссылки, содержащие нецифровые -% символы. Поэтому ссылки вида [A1, A2, A3, A4] не преобразуются к более -% компактной форме [A1--A4]. Ведется работа над исправлением этого недостатка. -% % \section{Исходный текст}\parindent=0pt % \begin{macrocode} -%<*disser-bst> + +%<*disser-bst|disser-s-bst> % \end{macrocode} % Список полей, используемых в bib-файлах. @@ -840,6 +781,7 @@ FUNCTION {output.bibitem} "\bibitem[" write$ "\BibPrefix" write$ label write$ + "\BibPostfix" write$ "]{" write$ cite$ write$ "}" write$ @@ -1544,6 +1486,121 @@ MACRO {tcs} {"Theoretical Computer Science"} READ +%<*disser-s-bst> + +FUNCTION {sortify} +{ purify$ + "l" change.case$ +} + +INTEGERS { len } + +FUNCTION {chop.word} +{ 's := + 'len := + s #1 len substring$ = + { s len #1 + global.max$ substring$ } + 's + if$ +} + +FUNCTION {sort.format.names} +{ 's := + #1 'nameptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { nameptr #1 > + { " " * } + 'skip$ + if$ + s nameptr + "{vv{ } }{ll{ }}{ f{ }}{ jj{ }}" + format.name$ 't := + nameptr numnames = t "others" = and + { "et al" * } + { t sortify * } + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {sort.format.title} +{ 't := + "A " #2 + "An " #3 + "The " #4 t chop.word + chop.word + chop.word + sortify + #1 global.max$ substring$ +} + +FUNCTION {author.sort} +{ author empty$ + { key empty$ + { "to sort, need author or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { + author num.names$ #4 < + {author sort.format.names } + {title sort.format.title} + if$ + } + if$ +} + +FUNCTION {author.title.sort} +{ author empty$ + { title empty$ + { key empty$ + { "to sort, need author, title, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { title sort.format.title } + if$ + } + { + author num.names$ #4 < + {author sort.format.names } + {title sort.format.title} + if$ + } + if$ +} + + +FUNCTION {presort} +{ + author.title.sort + " " + * + year field.or.null sortify + * + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := +} + +ITERATE {presort} + +SORT + +%</disser-s-bst> STRINGS { longest.label } @@ -1572,15 +1629,16 @@ ITERATE {longest.label.pass} FUNCTION {begin.bib} { - "\ifx\undefined\BibPrefix\def\BibPrefix{}\else\fi" write$ newline$ - "\begin{thebibliography}{\BibPrefix" longest.label * "}" * write$ newline$ - "\def\selectlanguageifdefined#1{" write$ newline$ - "\expandafter\ifx\csname date#1\endcsname\relax" write$ newline$ + "\ifx\undefined\BibPrefix\def\BibPrefix{}\else\fi" write$ newline$ + "\ifx\undefined\BibPostfix\def\BibPostfix{}\else\fi" write$ newline$ + "\begin{thebibliography}{\BibPrefix" longest.label * "\BibPostfix}" * write$ newline$ + "\def\selectlanguageifdefined#1{" write$ newline$ + "\expandafter\ifx\csname date#1\endcsname\relax" write$ newline$ "\else\language\csname l@#1\endcsname\fi}" write$ newline$ - "\ifx\undefined\url\def\url#1{{\small #1}}\else\fi" write$ newline$ - "\ifx\undefined\BibUrl\def\BibUrl#1{\url{#1}}\else\fi" write$ newline$ - "\ifx\undefined\BibAnnote\long\def\BibAnnote#1{}\else\fi" write$ newline$ - "\ifx\undefined\BibEmph\def\BibEmph#1{\emph{#1}}\else\fi" write$ newline$ + "\ifx\undefined\url\def\url#1{{\small #1}}\else\fi" write$ newline$ + "\ifx\undefined\BibUrl\def\BibUrl#1{\url{#1}}\else\fi" write$ newline$ + "\ifx\undefined\BibAnnote\long\def\BibAnnote#1{}\else\fi" write$ newline$ + "\ifx\undefined\BibEmph\def\BibEmph#1{\emph{#1}}\else\fi" write$ newline$ preamble$ empty$ 'skip$ { preamble$ write$ newline$ } @@ -1600,5 +1658,5 @@ FUNCTION {end.bib} EXECUTE {end.bib} -%</disser-bst> +%</disser-bst|disser-s-bst> % \end{macrocode} |