Мне нужно решить две проблемы.
Первый вариант подразумевает редактирование BST-файла в соответствии с моими потребностями. Я хочу что-то вроде этого:
Мне удалось сделать перенос строки между заметкой и URL, вставив \par
в исходную запись bib (например, note={\par blah blah blah}
), но наверняка есть более простой и элегантный способ? Кроме того, я хотел бы сделать перенос строки после заголовка статьи. Я внес различные изменения в:
FUNCTION {article}
{ output.bibitem
format.title "title" output.check
new.block
format.authors "author" output.check
new.block
crossref missing$
{
journal
"journal" bibinfo.check
emphasize
"journal" output.check
format.date "year" output.check
date.block
format.vol.num.pages output
}
{ format.article.crossref output.nonnull
format.pages output
}
if$
format.issn output
new.block
format.url output
new.block
format.note output
fin.entry
}
Без всякого успеха. Где или как я могу изменить вышесказанное, чтобы вставить перенос строки. Или следует редактировать:
FUNCTION {format.title}
{ title
duplicate$ empty$ 'skip$
{ "t" change.case$ }
if$
"title" bibinfo.check
duplicate$ empty$ 'skip$
{
bolden
}
if$
}
и
FUNCTION {format.note}
{
note empty$
{ "" }
{ note #1 #1 substring$
duplicate$ "{" =
'skip$
{ output.state mid.sentence =
{ "l" }
{ "u" }
if$
change.case$
}
if$
note #2 global.max$ substring$ * "note" bibinfo.check
}
if$
} ?
Другая проблема — дата. Мне не нужна точка после года, мне нужен только пробел. (Я поклялся, что именно это я и сказал makebst...) В прошлом я редактировал поле даты, чтобы заменить запятую на точку, но я не вижу ничего о точках и запятых в функции даты:
FUNCTION {format.date}
{
month "month" bibinfo.check
duplicate$ empty$
year "year" bibinfo.check duplicate$ empty$
{ swap$ 'skip$
{ "there's a month but no year in " cite$ * warning$ }
if$
*
}
{ swap$ 'skip$
{
swap$
" " * swap$
}
if$
*
}
if$
duplicate$ empty$
'skip$
{
before.all 'output.state :=
" " swap$ *
}
if$
}
Второй вопрос более смелый. Я хочу, чтобы PDFLaTeX вызывал цитату (как определено в файле BST) в теле документа, как будто он вводит файл .tex вместо цитаты. Таким образом, вместо текста, показывающего (например) Akbarzadeh et al 2016, он загрузит всю запись, как я ее определил. Я не хочу, чтобы что-то выглядело как библиография, а выглядело бы примерно так:
Есть идеи, как это сделать? Надеюсь, где-то есть пакет, который делает именно это.
Я не уверен, какой минимальный пример нужен... Дайте мне знать, что, по вашему мнению, вам нужно, чтобы помочь решить эту проблему.
Спасибо
решение1
Я не смог разобраться с BibLaTeX (кажется, он не работает в TeXWorks, или возникла проблема с пакетом, или что-то в этом роде...), но я нашел решение здесь:https://tug.org/pracjourn/2008-1/calleecharan/
Минимальные примеры: Tex-файл
\documentclass[a4paper]{article}
\usepackage[twoside,inner=25.4mm,tmargin=25.4mm,nohead,bmargin=25.4mm,textwidth=159.2mm]{geometry}
\usepackage[latin1]{inputenc}
\usepackage{lastpage}
\usepackage{url}
\begin{document}
\nocite{begcla1}
\nocite{art2}
\nocite{endcla1}
\nocite{art1}
\nocite{endcla2}
%\nocite{Elem2}
\bibliographystyle{datastyle}
\bibliography{dataset}
\end{document}
Файл с нагрудным номером:
@CREATESECTION{begcla1,
heading={Section 1}
}
@style1{art1,
title = { My dog eats cats},
author = {Katz, JP},
journal = { Cat cuisine},
volume = {1},
pages = {3--5},
year = {2016},
url = {\url{http://www.cateaters.com}},
note = {I found this article delicious.}
}
@ENDSECTION{endcla1
}
@CREATESECTION{begcla2,
heading={Section 2}
}
@style1{art2,
title = { My cat eats dogs},
author = {Dags, JP},
journal = { Dog cuisine},
volume = {1},
pages = {3--5},
year = {2016},
url = {\url{http://www.dogeaters.com}},
note = {It made me gag.}
}
@ENDSECTION{endcla2
}
bst-файл:
Entry
{
title
heading
author
journal
volume
pages
year
url
note
} {} {}
FUNCTION{print}
{
cite$ pop$
}
FUNCTION {bolden}
{ duplicate$ empty$
{ pop$ "" }
{ "{\fontfamily{lmss}\bfseries\selectfont\large " swap$ * "}" * }
if$
}
FUNCTION {format.heading}
{ heading bolden
}
FUNCTION{createsection}
{
"\vspace{0.5cm}" write$
newline$ newline$ write$
newline$ newline$ write$
write$ newline$ print format.heading write$ newline$ write$
newline$ newline$ write$
newline$ newline$ write$
"\vspace{0.25cm}" write$
}
FUNCTION{Style1}{
"{\fontfamily{lmss}\bfseries\selectfont " write$ print title write$ "}" write$%
print write$ ". " write$ newline$ newline$
print write$ author write$%
print write$ ". " write$%
print "{\em " write$ print journal write$ "}" write$%
print write$ ", " write$%
print volume write$%
print write$ ":" write$%
print pages write$%
print write$ ", " write$%
print write$ year write$%
print write$ "." write$ newline$ newline$
print write$ url write$ newline$ newline$
print write$ ``{\normalsize `` write$ print note write$ ``}'' write$ newline$ newline$
}
FUNCTION{fin}
{newline$
}
Read
ITERATE{call.type$}
EXECUTE{fin}
Я хотел бы найти способ включить \url
форматирование в BST вместо файла bib, но не понял, как это сделать. Это не такое элегантное решение, как я надеялся, но оно сработает.
Если у кого-то есть предложения, как привести код в порядок, буду очень признателен. Я действительно не знаю, что делаю...