Quero escrever algum texto entre o título e o conteúdo da bibliografia.
tentei resolver comesta soluçãomas não funciona com o pacote multibib. Obrigado.
% arara: xelatex
% arara: bibtex: { files: [ main, B , A ] }
% arara: xelatex
% arara: xelatex
% arara: clean1
\documentclass{report}
\usepackage{etoolbox}
\newcommand{\bibpreface}[1]{\patchcmd{\thebibliography}{\list}{#1\list}{}{}}
\usepackage[resetlabels,labeled]{multibib}
\usepackage{xepersian}
\settextfont{XB Niloofar}
\newcommand{\ReferenceDocuments}{\rl{مستندات مرجع}}
\newcommand{\RelevantDocumentation}{\rl{مستندات ذیربط}}
\newcites{A,B}{\ReferenceDocuments%
,
\RelevantDocumentation}
\begin{document}
یک استناد به مستندات مرجع
\cite{bb}
یک استناد به مستندات ذیربط
\citeA{aa}
یک استناد به مراجع اصلی
\citeA{cc}
یک استناد دیگر
\citeB{dd}
\renewcommand{\refname}{\rl{مراجع}}
\bibpreface{مقداری متن قبل از محتویات\\}
\bibliographystyle{plain-fa}
\bibliography{lit}
\bibliographystyleA{plain}
\bibliographyA{lit}
\bibliographystyleB{plain}
\bibliographyB{lit}
\end{document}
E lit.bib
:
@Article{aa,
author = {Author, A.},
title = {Title},
journal = {Journal},
year = 2000
}
@ARTICLE{bb,
AUTHOR = {واحدی, مصطفی},
TITLE = {درختان پوشای کمینه دورنگی مسطح},
JOURNAL = {مجله فارسی نمونه},
VOLUME = {1},
YEAR = {1387},
NUMBER = {2},
MONTH = {آبان},
PAGES = {22-30},
LANGUAGE = {Persian}
}
@ARTICLE{dd,
AUTHOR = {بهبودیفام, حسین},
TITLE = {یک عنوان درست و درمون},
JOURNAL = {مجله فارسی نمونه},
VOLUME = {1},
YEAR = {1387},
NUMBER = {2},
MONTH = {آبان},
PAGES = {22-30},
LANGUAGE = {Persian}
}
@ARTICLE{cc,
AUTHOR = {بهبودی, احمد},
TITLE = {یک عنوان درست و درمون},
JOURNAL = {مجله فارسی نمونه},
VOLUME = {1},
YEAR = {1387},
NUMBER = {2},
MONTH = {آبان},
PAGES = {22-30},
LANGUAGE = {Persian}
}
Responder1
Uma opção é usar os "internos" do biblatex:
\documentclass{report}
\usepackage{hyperref}
% \usepackage{xepersian}
% \settextfont{XB Niloofar}
% bibliography
\usepackage[natbib = true, % true allows usage of citet, citep etc. commands
style = authoryear, % numeric, % trad-plain: use old bibtex plain style
backend = biber, %
hyperref = true, %
giveninits = true, % first names are reduced to initials
maxbibnames = 8, maxcitenames = 2, %
uniquename = init,
uniquelist = minyear,
doi = false, url = false, isbn = false, eprint = false] % supress all id numbers
{biblatex} %
\addbibresource{lit.bib}
% categories
\DeclareBibliographyCategory{published}
\DeclareBibliographyCategory{conf}
% add papers to categories
\addtocategory{published}{aa}
\addtocategory{published}{dd}
\addtocategory{conf}{bb}
\addtocategory{conf}{cc}
%
\defbibfilter{pub}{category=published}
\defbibfilter{conf}{category=conf}
\begin{document}
\nocite{*}
\defbibnote{A}{During the course of this thesis my research has contributed to the following publications:}
\defbibnote{B}{Conference papers}
\printbibliography[
title = {Peer-reviewed journals},
heading=subbibliography,
filter = pub,
prenote = A
]
\printbibliography[
title = {Conference contributions},
heading=subbibliography,
filter = conf,
prenote = B
]
\end{document}
Você tem que compilar isso usando biber em vez de bibtex, de preferência pelo latexmk
qual também se encarrega de compilar o documento quantas vezes for necessário (e você não precisa se preocupar em como chamar biber). o comando é simplesmentelatexmk -pdf -xelatex <yourfile>
Sinto muito, mas tive que alterar a bibliografia porque não tenho as fontes persas:
@Article{aa,
author = {Author, A.},
title = {Title A},
journal = {Journal},
year = 2000
}
@ARTICLE{bb,
AUTHOR = {Author, B.},
TITLE = {Title B},
JOURNAL = {Journal B},
VOLUME = {1},
YEAR = {1387},
NUMBER = {2},
MONTH = {آبان},
PAGES = {22-30},
LANGUAGE = {Persian}
}
@ARTICLE{dd,
AUTHOR = {Author, C.},
TITLE = {Title C},
JOURNAL = {Journal C},
VOLUME = {1},
YEAR = {1387},
NUMBER = {2},
MONTH = {آبان},
PAGES = {22-30},
LANGUAGE = {Persian}
}
@ARTICLE{cc,
AUTHOR = {Author, D.},
TITLE = {Title D},
JOURNAL = {Journal D},
VOLUME = {1},
YEAR = {1387},
NUMBER = {2},
MONTH = {آبان},
PAGES = {22-30},
LANGUAGE = {Persian}
}
Editar: Usando bibtex e multibib (observe que isso parece um hack cruel, e provavelmente é...):
\documentclass{report}
\usepackage{hyperref}
% \usepackage{xepersian}
% \settextfont{XB Niloofar}
\usepackage[resetlabels,labeled]{multibib}
\newcites{A,B}
{{BibTitle A\newline\vspace{2ex}\newline\mdseries\normalsize Description text for this bibliography A},%
{BibTitle B\newline\vspace{2ex}\newline\mdseries\normalsize Description text for this bibliography B}%
}
\begin{document}
\nociteA{aa,cc}
\bibliographystyleA{plain}
\bibliographyA{lit}
\nociteB{bb,dd}
\bibliographystyleB{plain}
\bibliographyB{lit}
\end{document}
Você pode brincar com a distância vertical adicionada entre o título e o texto. No entanto, não encontrei nenhuma solução no manual do multibib. Parece que existem apenas títulos pretendidos, nenhum texto introdutório.
A saída (apenas fpr Bib A, pois o outro está definido para uma nova página na classe de relatório):
Responder2
Outra forma (mais leve na minha opinião) é remover cabeçalhos com esta técnica:Usando multibib sem título extra
Em seguida, adicione títulos manualmente sempre que apropriado.