重新定义环境 thebibliography

重新定义环境 thebibliography

论文中需要列出来源清单。不同的风格bibtexbiblatex符合大学标准(甚至不符合 GOST 标准)。因此,决定使用环境手动排列列表thebibliography。但它无法正确显示列表。

最小代码(只有大约 20 项,但我只留下几个):

\begin{thebibliography}{99}
    \bibitem{Kotelnikov}
        \newblock {Котельников, И. А.} %1ый автор
        \newblock {LaTeX по-русски} : % название
        \newblock {учебник} / %жанр
        \newblock {И. А. Котельников, П. З. Чеботаев ; редактор Н. Р. Тевс}. -- %пишутся все авторы, редакторы, корректоры, переводчики, место написания (опционально) через точку с запятой
        \newblock {Санкт-Петербург} :%город издательства
        \newblock {Корона-Век}, % издательство
        \newblock {2016}. -- % год издания
        \newblock {496} с. : %кол-со страниц
        \newblock {ил.} -- %наличие иллюстраций, таблиц, цветных иллюстраций, портретов
        \newblock Библиогр.: С. {485-486}. -- %если в книге есть своя библиография (список источников), тогда нужно указать страницы. Если нет - удалить этот блок
        \newblock Текст : {непосредственный}.%возможен вариант ``электронный'', если издание копьютерное (на диске), но тогда нужно добавлять другие блоки до этого
        
    \bibitem{Lvovsky}
        \newblock {Львовский, С. М.} %1ый автор
        \newblock {Набор и вёрстка в системе \LaTeX} : % название
        \newblock {пособие} / %жанр
        \newblock {С.М. Львовский}. -- %пишутся все авторы, редакторы, корректоры, переводчики, место написания (опционально) через точку с запятой
        \newblock {5-e изд., переработанное}. --  %сведения об издании (опционально)
        \newblock {Москва} :%город издательства
        \newblock {МЦНМО}, % издательство
        \newblock {2014}. -- % год издания
        \newblock {400} с. : %кол-со страниц
        \newblock {ил.} -- %наличие иллюстраций, таблиц, цветных иллюстраций, портретов
        \newblock Библиогр.: С. {379-380}. -- %если в книге есть своя библиография (список источников), тогда нужно указать страницы. Если нет - удалить этот блок
        \newblock Текст : {непосредственный}.%возможен вариант ``электронный'', если издание компьютерное (на диске), но тогда нужно добавлять другие блоки до этого
        
    \bibitem{Pahomov}
        \newblock {Пахомов, Б.И.} %1ый автор
        \newblock {С\# для начинающих} : % название
        \newblock {руководство} / %жанр
        \newblock {Б.И. Пахомов ; группа подготовки издания: Е. Кондукова (главный редактор) [и др.]}. -- %пишутся все авторы, редакторы, корректоры, переводчики, место написания (опционально) через точку с запятой
        \newblock {Санкт-Петербург} : %город издательства
        \newblock {БХВ-Петербург}, % издательство
        \newblock {2014}. -- % год издания
        \newblock {432} с. : %кол-со страниц
        \newblock {ил.} -- %наличие иллюстраций, таблиц, цветных иллюстраций, портретов
        \newblock Текст : {непосредственный}.%возможен вариант ``электронный'', если издание компьютерное (на диске), но тогда нужно добавлять другие блоки до этого
        
    \bibitem{Baldin}
        \newblock {Балдин, Е. М.} %1ый автор
        \newblock {Компьютерная типография \LaTeX} : % название
        \newblock {руководство} / %жанр
        \newblock {E.М. Балдин}. -- %пишутся все авторы, редакторы, корректоры, переводчики, место написания (опционально) через точку с запятой
        \newblock {Новосибирск} :%город издательства
        \newblock опубликовано под лицензией {Creative Commons <<Атрибуция-СохранениеУсловий>> 3.0 Непортированная (CCBY-SA 3.0)}, % издательство
        \newblock {2013}. -- % год издания
        \newblock {308} с. : %кол-со страниц
        \newblock {ил.} -- %наличие иллюстраций, таблиц, цветных иллюстраций, портретов
        \newblock Библиогр.: с. {308}. -- %если в книге есть своя библиография (список источников), тогда нужно указать страницы. Если нет - удалить этот блок
        \newblock Систем. требования: Intel Pentium 1,6 GHz и более; 256 Мб (RAM) ; Microsoft Windows XP и выше ; Adobe Reader. -- 
        \newblock Текст : {электронный}.%возможен вариант ``электронный'', если издание компьютерное (на диске), но тогда нужно добавлять другие блоки до этого
        
    \bibitem{Pikabu}
        \newblock {LaTeX для новичков. Часть 2:Движки и преамбула} :%заголовок страницы
        \newblock {Пикабу} : сайт. --  %заголовок сайта
        \newblock {Франкфурт-на-Майне, Германия}. -- . --%расположение сервера сайта
        \newblock URL: {https://pikabu.ru/story/latex\_dlya\_novichkov\_chast\_2dvizhki\_i\_preambula\_5002998} %ссылка
        \newblock (дата обращения: {27.06.2021}). -- %дата обращения к сайту
        \newblock {Текст. Изображение} : электронные. %текст, опционально - иллюстрации, возможно даже видео.
        
    \bibitem{WikiSharp}
        \newblock {SharpDevelop} :%заголовок страницы
        \newblock {Википедия} : сайт. --  %заголовок сайта
        \newblock {Амстердам, Нидерланды}. -- . --%расположение сервера сайта
        \newblock URL: {https://ru.wikipedia.org/wiki/SharpDevelop} %ссылка
        \newblock (дата обращения: {10.09.2021}). -- %дата обращения к сайту
        \newblock {Текст. Изображение} : электронные. %текст, опционально - иллюстрации, возможно даже видео.
        
\end{thebibliography}

现在列表显示如下: 现在

据我了解,环境形成了一种类似于表格的东西,其中一列是数字,另一列是记录本身。看起来不错,但不符合要求的标准。

怎么做:

怎么做

我尝试重新定义\bibitem命令,但只得到了括号,而不是数字后面的点(这已经很好了)。这意味着需要重新定义所有环境。命令\cite有效很重要,这就是为什么我没有将源格式化为简单的编号列表 =)

我想这里需要纯 TeX 的知识,这就是我寻求帮助的原因,因为我几乎不了解它。

发行:TeXLive

编译器:XeLaTeX

答案1

在完成自己的毕业答辩将近六个月后,我找到了一个解决方案。这个解决方案相当复杂,不太明显,而且我也没有完全理解它,但它确实有效。

取自我将在下面给出的来源,但一些值已被调整以尽可能接近normcontrol批准的值。

来源(同一问题的描述,可以在那里找到最终代码的链接):https://github.com/mstyura/bsuir-diploma-latex/issues/19

我的解决方案是在序言中添加以下代码:(相同问题的描述,可以在那里找到最终代码的链接):

\usepackage[numbers]{natbib} %необходимый пакет для форматирования библиографии, опция добавляет номера

\setlength\bibindent{-1.09cm} %корректирует отступ каждого пункта (величина взята с источника)
\setlength{\bibsep}{0em} %убирает вертикальные интервалы между пунктами
%переопределение нумерации списка источников (круглая скобка)
\renewcommand{\@biblabel}[1]{\hspace{\parindent}#1)}

%для описания следующего кода мне не хватает опыта в LaTeX, но он взят из источника и работает
\renewcommand\NAT@bibsetnum[1]{\settowidth\labelwidth{\@biblabel{#1}}%
    \setlength{\leftmargin}{\bibindent}\addtolength{\leftmargin}{\dimexpr\labelwidth+\labelsep\relax}%
    \setlength{\itemindent}{-\bibindent+.4ex}% здесь корректировалась величина отступа, подгонялась под заголовок
    \setlength{\listparindent}{\itemindent}
    \setlength{\itemsep}{\bibsep}\setlength{\parsep}{\z@}%
    \ifNAT@openbib
    \addtolength{\leftmargin}{\bibindent}%
    \setlength{\itemindent}{-\bibindent}%
    \setlength{\listparindent}{\itemindent}%
    \setlength{\parsep}{10pt}%
    \fi
}

结果如下: 代码结果

相关内容