LINUX.ORG.RU

Настройка библиографии LaTeX

 


0

3

Добрый день. Подскажите пожалуйста как сделать чтобы библиографические источники оформить в виде обычных абзацев: отступ – цифра номера – точка – пробел – описание…
Типа
_(оступ)_1. -------
------------------
_(оступ)_2. -------
---------------------
Использую класс extreport. Как изменить описание окружение thebibliography для такого результата? В примере выдержка из extreport.cls приведена между =.

\documentclass[a4paper,14pt]{extreport}
\usepackage[T2A]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[english]{babel}

\frenchspacing 
\setlength\parindent{5ex}

 \makeatletter
 \renewcommand\@biblabel[1]{#1.}
 \makeatother
 
 %===============================================
\makeatletter
\renewenvironment{thebibliography}[1]
{\chapter*{\bibname
		\@mkboth{\MakeUppercase\bibname}{\MakeUppercase\bibname}}%
	\list{\@biblabel{\@arabic\c@enumiv}}%
	{\settowidth\labelwidth{\@biblabel{#1}}%
		\leftmargin\labelwidth
		\advance\leftmargin\labelsep
		\@openbib@code
		\usecounter{enumiv}%
		\let\p@enumiv\@empty
		\renewcommand\theenumiv{\@arabic\c@enumiv}}%
	\sloppy\clubpenalty4000\widowpenalty4000%
	\sfcode`\.\@m}
{\def\@noitemerr
	{\@latex@warning{Empty `thebibliography' environment}}%
	\endlist}
\makeatother
%========================================
 
\begin{document}
\chapter{CHAPTER}
Text. Text. Text. Text. Text.
Text. Text. Text. Text. Text. Text. Text. 
Text. Text. Text. Text \cite{Knuth}.

Text. Text. Text. Text.
Text. Text. Text. Text. Text. Text. Text. 
Text. Text. Text. Text. Text. Text. Text. 
Text. Text. Text. Text. Text. Text.  Text \cite{b3},\cite{Lamport}. \cite{b3,Lamport}.

\begin{thebibliography}{9}
		\bibitem{Knuth} Knuth~D.E. Knuth~D.E. Knuth~D.E. Knuth~D.E. Knuth~D.E. Knuth~D.E. Knuth~D.E. Knuth~D.E. Knuth~D.E. Knuth~D.E. Knuth~D.E. Knuth~D.E. Knuth~D.E. Knuth~D.E.
		\bibitem{Lamport} Lamport, Leslie. LaTeX: A Document Preparation System. Lamport, Leslie. LaTeX: A Document Preparation System. Lamport, Leslie. LaTeX: A Document Preparation System.
		\bibitem{b3} Book \TeX. Book \TeX. Book \TeX. Book \TeX. Book \TeX. Book \TeX. Book \TeX. Book \TeX. Book \TeX. 
\end{thebibliography}

\end{document}


У меня так:

\makeatletter
\renewcommand*{\@biblabel}[1]{\hfill#1.}
\renewcommand*\l@section{\@dottedtocline{1}{1em}{1em}}
\def\redeflsection{\def\l@section{\@dottedtocline{1}{0em}{10em}}}
\makeatother
% Оформление библиографии и подрисуночных записей через точку
\makeatletter
\renewcommand*{\@biblabel}[1]{\hfill#1.}
\renewcommand*\l@section{\@dottedtocline{1}{1em}{1em}}
\renewcommand{\thefigure}{\thesection.\arabic{figure}}  % Формат рисунка секция.номер
\renewcommand{\thetable}{\thesection.\arabic{table}}    % Формат таблицы секция.номер
\def\redeflsection{\def\l@section{\@dottedtocline{1}{0em}{10em}}}
\makeatother
\begingroup 
\renewcommand{\section}[2]{\anonsection{Библиографический список}}
\begin{thebibliography}{00}
\bibitem{espd-gost} 
    ГОСТ 19.701-90, ЕСПД <<Схемы алгоритмов, программ, данных и систем. 
    Условные обозначения и правила выполнения>>. 
    Дата введения: 01.01.1992. -- М: Изд-во стандартов, 1991. -- 26 с.
\bibitem{dstu-gost} 
    ДСТУ 3008-95 <<Документация. Отчеты в сфере науки и техники. 
    Структура и правила оформления>>. 
    Дата введения: 01.01.1996. -- К.: Госстандарт Украины, 1995. -- 37 с.
    
\bibitem{ibm-hypervisors}
    Гипервизоры, виртуализация и облако: О гипервизорах, виртуализации систем и о том, как это работает в облачной среде
    [Электронный ресурс]. --
    Электрон. текстовые данные (87662 bytes) -- 
    Режим доступа: http://www.ibm.com/developerworks/ru/library/cl-hypervisorcompare/
\end{thebibliography}
\endgroup
Результат: http://i.imgur.com/GE5TwmG.png

Amet13 ★★★★★
()
Ответ на: комментарий от Amet13

Amet13, да нужно оформление как получилось у вас. Но у меня что-то ваш код не изменяет оформление списке источников – все остаются выровненными слева по линии.

\documentclass[a4paper,14pt]{extreport}
\usepackage[T2A]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[english,russian]{babel}

\frenchspacing 
\setlength\parindent{5ex}

 %\makeatletter
 %\renewcommand\@biblabel[1]{#1.}
 %\makeatother
  
 \makeatletter
 \renewcommand*{\@biblabel}[1]{\hfill#1.}
 \renewcommand*\l@section{\@dottedtocline{1}{1em}{1em}}
 \def\redeflsection{\def\l@section{\@dottedtocline{1}{0em}{10em}}}
 \makeatother
 % Оформление библиографии и подрисуночных записей через точку
 \makeatletter
 \renewcommand*{\@biblabel}[1]{\hfill#1.}
 \renewcommand*\l@section{\@dottedtocline{1}{1em}{1em}}
 \renewcommand{\thefigure}{\thesection.\arabic{figure}}  % Формат рисунка секция.номер
 \renewcommand{\thetable}{\thesection.\arabic{table}}    % Формат таблицы секция.номер
 \def\redeflsection{\def\l@section{\@dottedtocline{1}{0em}{10em}}}
 \makeatother
  
\begin{document}
\chapter{CHAPTER}
Text. Text. Text. Text. Text.
Text. Text. Text. Text. Text. Text. Text. 
Text. Text. Text. Text \cite{dstu-gost}.

Text. Text. Text. Text.
Text. Text. Text. Text. Text. Text. Text. 
Text. Text. Text. Text. Text. Text. Text. 
Text. Text. Text. Text. Text. Text.  Text \cite{espd-gost},\cite{ibm-hypervisors}. \cite{espd-gost,ibm-hypervisors}.

\begingroup 
\renewcommand{\section}[2]{\anonsection{Библиографический список}}
\begin{thebibliography}{00}
	\bibitem{espd-gost} 
	ГОСТ 19.701-90, ЕСПД <<Схемы алгоритмов, программ, данных и систем. 
	Условные обозначения и правила выполнения>>. 
	Дата введения: 01.01.1992. -- М: Изд-во стандартов, 1991. -- 26 с.
	\bibitem{dstu-gost} 
	ДСТУ 3008-95 <<Документация. Отчеты в сфере науки и техники. 
	Структура и правила оформления>>. 
	Дата введения: 01.01.1996. -- К.: Госстандарт Украины, 1995. -- 37 с.
	\bibitem{ibm-hypervisors}
	Гипервизоры, виртуализация и облако: О гипервизорах, виртуализации систем и о том, как это работает в облачной среде
	[Электронный ресурс]. --
	Электрон. текстовые данные (87662 bytes) -- 
	Режим доступа: http://www.ibm.com/developerworks/ru/library/cl-hypervisorcompare/
	
\end{thebibliography}
\endgroup

\end{document}

Может в преамбуле еще что-то не определено. Как я понял, первая часть вашего кода относится к оформлению содержания и нумерации рисунков, таблиц. В принципе хочу создать шаблон под оформление по ДСТУ 3008-95. А какой документкласс вы использовали?

mid123
() автор топика
Ответ на: комментарий от iVS

iVS, не использовал BibTeX т.к. источников мало и использую просто thebibliography. Кроме того, как я понял, с кодировкой utf8, которую я использую, BibTeX не сильно дружит. Хотелось бы понять как сделать требуемое оформление источников, переопределив окружение thebibliography. Хотя, если с BibTeX это сделать проще подскажите как это закодить.

mid123
() автор топика
Ответ на: комментарий от anonymous

Смысл BibTeX — заполнить базу данных, потом ссылки будут сами форматироваться по нужному стандарту. Можно не помнить все выверты ГОСТа 2003 года.

dn2010 ★★★★★
()
Ответ на: комментарий от mid123

Могу скинуть свою преамбулу. Я сейчас для диплома допиливаю ее.

Для отступа в списках добавьте это:

% Списки
\usepackage{enumitem}
\setlist[enumerate,itemize]{leftmargin=0pt,itemindent=2.5em} % Отступы в списках
\makeatletter
    \AddEnumerateCounter{\asbuk}{\@asbuk}{м)}
\makeatother
\setlist{nolistsep}
\renewcommand{\labelitemi}{--}
\renewcommand{\labelenumi}{\asbuk{enumi})}
\renewcommand{\labelenumii}{\arabic{enumii})}

Amet13 ★★★★★
()
Ответ на: комментарий от Amet13

Спасибо за подсказку по организации списков.

В принципе у меня задача похожа на вашу – запилить шаблон для оформления учебных отчетов (ДСТУ 3008-95), только с небольшим отличием: срок не критичен. Я пока только осваиваю настройки LaTeX на примере документов по учебе, чтобы потом было легче. Конечно же пример преамбулы интересен, скиньте если не «жалко».

mid123
() автор топика
Ответ на: комментарий от dn2010

Вот и я считал (может не правильно), что BibTex ориентирован на управление базой описаний и их формированием, а не на их представление. Пока я в bib-пакетах совсем не ориентируюсь какой за что отвечает. Есть еще и biber. Подскажите, как получить результат хоть каким-нибудь способом.

mid123
() автор топика
Ответ на: комментарий от mid123

Пока так. Потом на гихаб залью все, включая пример диплома.

%%% Преамбула %%%

\usepackage{fontspec} % XeTeX
\usepackage{xunicode} % Unicode для XeTeX
\usepackage{xltxtra}  % Верхние и нижние индексы
\usepackage{pdfpages} % Вставка PDF
\usepackage{verbatimbox} % Оформление исходного кода

% Шрифты, xelatex
\defaultfontfeatures{Ligatures=TeX}
\setmainfont{Times New Roman} % Нормоконтроллеры хотят именно его
\newfontfamily\cyrillicfont{Times New Roman}
%\setsansfont{Liberation Sans} % Тут я его не использую, но если пригодится...
\setmonofont{FreeMono} % Моноширинный шрифты для оформления кода

% Русский язык
\usepackage{polyglossia}
\setdefaultlanguage{russian}

\usepackage{amssymb,amsfonts,amsmath} % Математика
\usepackage{enumerate} % Тонкая настройка списков
\usepackage{indentfirst} % Красная строка после заголовка
\usepackage{float} % Расширенное управление плавающими объектами

% Пути к каталогам с изображениями
\usepackage{graphicx} % Вставка картинок и дополнений
\graphicspath{{images/}{extra/}}

% Формат подрисуночных записей
\usepackage{chngcntr}
\counterwithin{figure}{section}

% Гиперссылки
\usepackage{hyperref}
\hypersetup{
    colorlinks, urlcolor={black}, % Все ссылки черного цвета, кликабельные
    linkcolor={black}, citecolor={black},
    pdfauthor={Амет Умеров},
    pdftitle={Разработка виртуальной инфраструктуры для реализации облачных услуг},
}

% Оформление библиографии и подрисуночных записей через точку
\makeatletter
\renewcommand*{\@biblabel}[1]{\hfill#1.}
\renewcommand*\l@section{\@dottedtocline{1}{1em}{1em}}
\renewcommand{\thefigure}{\thesection.\arabic{figure}}  % Формат рисунка секция.номер
\renewcommand{\thetable}{\thesection.\arabic{table}}    % Формат таблицы секция.номер
\def\redeflsection{\def\l@section{\@dottedtocline{1}{0em}{10em}}}
\makeatother

\renewcommand{\baselinestretch}{1.4} % Полуторный межстрочный интервал
\parindent 12.7mm % Абзацный отступ

\sloppy             % Избавляемся от переполнений
\hyphenpenalty=1000 % Частота переносов
\clubpenalty=10000  % Запрещаем разрыв страницы после первой строки абзаца
\widowpenalty=10000 % Запрещаем разрыв страницы после последней строки абзаца

% Отступы у страниц
\usepackage{geometry}
\geometry{left=2cm}
\geometry{right=1cm}
\geometry{top=2cm}
\geometry{bottom=2cm}

% Списки
\usepackage{enumitem}
\setlist[enumerate,itemize]{leftmargin=0pt,itemindent=2.5em} % Отступы в списках
\makeatletter
    \AddEnumerateCounter{\asbuk}{\@asbuk}{м)}
\makeatother
\setlist{nolistsep}
\renewcommand{\labelitemi}{--}
\renewcommand{\labelenumi}{\asbuk{enumi})}
\renewcommand{\labelenumii}{\arabic{enumii})}

% Содержание
\usepackage{tocloft}
\renewcommand{\cfttoctitlefont}{\hspace{0.38\textwidth}\MakeTextUppercase} % СОДЕРЖАНИЕ
\renewcommand{\cftsecfont}{\hspace{0pt}}            % Имена секций в содержании не жирным шрифтом
\renewcommand\cftsecleader{\cftdotfill{\cftdotsep}} % Точки для секций в содержании
\renewcommand\cftsecpagefont{\mdseries}             % Номера страниц не жирные
\setcounter{tocdepth}{3}                            % Глубина оглавления, до subsubsection

% Нумерация страниц справа сверху
\usepackage{fancyhdr}
\pagestyle{fancy}
\fancyhf{}
\fancyhead[R]{\thepage}
\fancyheadoffset{0mm}
\fancyfootoffset{0mm}
\setlength{\headheight}{17pt}
\renewcommand{\headrulewidth}{0pt}
\renewcommand{\footrulewidth}{0pt}
\fancypagestyle{plain}{ 
    \fancyhf{}
    \rhead{\thepage}}

% Меняем везде перечисления на цифра.цифра
\renewcommand{\theenumi}{\arabic{enumi}.}
\renewcommand{\labelenumi}{\arabic{enumi}.}
\renewcommand{\theenumii}{.\arabic{enumii}.}
\renewcommand{\labelenumii}{\arabic{enumi}.\arabic{enumii}.}
\renewcommand{\theenumiii}{.\arabic{enumiii}}
\renewcommand{\labelenumiii}{\arabic{enumi}.\arabic{enumii}.\arabic{enumiii}.}

% Формат подрисуночных надписей
\RequirePackage{caption}
\DeclareCaptionLabelSeparator{defffis}{ -- }
\captionsetup{justification=centering, labelsep=defffis, format=plain}
\addto\captionsrussian{\renewcommand{\figurename}{Рисунок}}

% Пользовательские функции
\newcommand{\addimg}[3]{ % Добавление одного рисунка
    \begin{figure}
        \centering
        \includegraphics[width=#2\linewidth]{#1}
        \caption{#3}
    \end{figure}
}
\newcommand{\addimghere}[3]{ % Добавить рисунок непосредственно в это место
    \begin{figure}[H]
        \centering
        \includegraphics[width=#2\linewidth]{#1}
        \caption{#3}
    \end{figure}
}
\newcommand{\addtwoimghere}[4]{ % Вставка двух рисунков
    \begin{figure}[H]
        \centering
        \includegraphics[width=#2\linewidth]{#1}
        \hfill
        \includegraphics[width=#3\linewidth]{#2}
        \caption{#4}
    \end{figure}
}

% Заголовки секций в оглавлении в верхнем регистре
\usepackage{textcase}
\makeatletter
\let\oldcontentsline\contentsline
\def\contentsline#1#2{
    \expandafter\ifx\csname l@#1\endcsname\l@section
        \expandafter\@firstoftwo
    \else
        \expandafter\@secondoftwo
    \fi
    {\oldcontentsline{#1}{\MakeTextUppercase{#2}}}
    {\oldcontentsline{#1}{#2}}
}
\makeatother

% Оформление заголовков
\usepackage[compact,explicit]{titlesec}
\titleformat{\section}{}{}{12.5mm}{\centering{\thesection\quad\MakeTextUppercase{#1}}}
\titleformat{\subsection}[block]{}{}{12.5mm}{\thesubsection\quad#1}
\titleformat{\subsubsection}[block]{\normalsize}{}{12.5mm}{\thesubsubsection\quad#1}
\titleformat{\paragraph}[block]{\normalsize}{}{12.5mm}{\MakeTextUppercase{#1}}

% Секции без номеров (введение, заключение...), вместо section*{}
\newcommand{\anonsection}[1]{
    \phantomsection % Корректный переход по ссылкам в содержании
    \paragraph{\centerline{{#1}}}
    \addcontentsline{toc}{section}{\uppercase{#1}}
}

% Библиография: отступы и межстрочный интервал
\makeatletter
\renewenvironment{thebibliography}[1]
    {\section*{\refname}
        \list{\@biblabel{\@arabic\c@enumiv}}
           {\settowidth\labelwidth{\@biblabel{#1}}
            \leftmargin\labelsep
            \itemindent 16.7mm
            \@openbib@code
            \usecounter{enumiv}
            \let\p@enumiv\@empty
            \renewcommand\theenumiv{\@arabic\c@enumiv}
        }
        \setlength{\itemsep}{0pt}
    }
\makeatother

\setcounter{page}{1} % Начало нумерации страниц

Amet13 ★★★★★
()
Ответ на: комментарий от mid123

bibtex на основе базы данных, документа со ссылками и стиля генерит библиографическое описание.

Собственно, пишем базу данных и документ, в преамбуле документа что-то типа

\usepackage[utf8]{inputenc}
\usepackage[backend=biber]{biblatex}

и затем запускаем генерацию

latex doc
latex doc
biber bibliography
latex doc

dn2010 ★★★★★
()
23 февраля 2016 г.

Скажите, а как сделать заголовок библиографии меньшим шрифтом и с не таким огромным отступом сверху?

Dmitry_Sokolowsky ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.