# The bbl file is not generated and still malformed file bcf even if I still use \addbibresource{file.bib} in XeLaTeX

I have already tried by middle of the following questions:

I use:

• Manjaro Linux
• XeTeX 3.14
• Biber 2.12
• Class abnetx2
• Package biblatex-abnt

The version of bibtex: BibTeX 0.99d (TeX Live 2018/Arch Linux)

I ran like:

xelatex -synctex=1 -halt-on-error --shell-escape artigo.tex
biber artigo.tex


I also tried to run biber referencias.

It did not generate the bbl file.

Here is the code:

\documentclass[11pt, article, a4paper, oneside, sumario=tradicional, chapter=TITLE, section=TITLE, subsection=Title, subsubsection=title, subsubsubsection=title, english, german, greek, portuguese]{abntex2}

\usepackage{babel}
\usepackage[backend = biber, dateabbrev = false, giveninits, ittitles, justify, language = brazil, sorting = none, style = abnt, url = true]{biblatex}

\begin{filecontents}{referencias.bib}
@article{antonioleitao,
author = {Antonio Leitão},
date = {1996-10-08},
Publisher = {UNICAMP},
title = {Funções Recursivas},
url = {http://www.dca.fee.unicamp.br/courses/EA072/lisp9596/node17.html},
urldate = {2018-11-03}
}
\end{filecontents}

\begin{document}
\selectlanguage{brazil}
\frenchspacing
\maketitle
\begin{resumoumacoluna}
\vspace{\onelineskip}
Blablabla
\noindent
\textbf{Palavras-chave}:
\end{resumoumacoluna}

\renewcommand{\resumoname}{Abstract}
\begin{resumoumacoluna}
\begin{otherlanguage*}{english}
\vspace{\onelineskip}
Blablabla
\noindent
\textbf{Keywords}:
\end{otherlanguage*}
\end{resumoumacoluna}

\printbibliography

\end{document}


The xetex error log:

\myptabbox=\box87
\myptabboxwidth=\skip292
Package biblatex Info: XeTeX detected.
(biblatex)             Assuming input encoding 'utf8'.
Package biblatex Info: Automatic encoding selection.
(biblatex)             Assuming data encoding 'utf8'.
\openout4 = artigo.bcf'.

Package biblatex Info: Trying to load bibliographic data...
No file artigo.bbl.
Package biblatex Info: Reference section=0 on input line 380.
Package biblatex Info: Reference segment=0 on input line 380.
Package lastpage Info: Please have a look at the pageslts package at
(lastpage)             https://www.ctan.org/pkg/pageslts
(lastpage)             ! on input line 380.


The biblatex error log:

[0] Config.pm:304> INFO - This is Biber 2.12
[1] Config.pm:307> INFO - Logfile is 'artigo.blg'
[39] biber:315> INFO - === Wed Dec 12, 2018, 18:22:11
[61] Utils.pm:209> ERROR - artigo.bcf is malformed, last biblatex run probably failed. Deleted artigo.bbl
[62] Biber.pm:114> INFO - ERRORS: 1


I also have checked:

biber --cache
No cache - you are not running the PAR::Packer executable version of biber

• The example as shown will not produce any output, because it does not contain any citations. If I add \cite{antonioleitao} to the example and compile with XeLaTeX, Biber, XeLaTeX, XeLaTeX I get the expected output. biber artigo.tex is the wrong call, it must be biber artigo without file extension (of if you insist on extensions biber artigo.bcf). I do not get the Info about lastpage in my log file. Is the .log you have shown us from the code example? Delete all temporary files and try again. If it still does not work, please upload the .bcf file to pastebin.com – moewe Dec 12 '18 at 21:53
• Then I ran without tex extensions and it was still the same error. Here is the pastebin link: pastebin.com/ShSZPg9q – Gustavo Reis Dec 12 '18 at 22:06
• That .bcf is malformed: it is missing important parts. This should not happen. Is that the .bcf you get from the exact MWE you posted? Please verify that in a new, empty directory. Please upload the complete .log file of the first XeLaTeX run on your file in the empty directory. – moewe Dec 12 '18 at 22:08
• Bizarrely, it worked without problems on Overleaf. Yes, it was. Here is the pastebin link of XeLaTeX error log: pastebin.com/ZrKP6DES – Gustavo Reis Dec 12 '18 at 22:19
• The .log does not come from the code you have shown us in the question. The .log shows that you load csqoutes, but the MWE does not load it (there are a few more packages like this). Please always make sure that the code you show and the .log files are about the same thing. Anyway, the .log clearly mentions an error: ./artigo.tex:384: Undefined control sequence. <recently read> \theforeigntitle. This error aborts compilation and leaves the .bcf in an unfinished state. Fix this error (and all other errors that occur and try again). – moewe Dec 12 '18 at 22:26

The posted .log file (which does not come from the MWE as shown in the question) shows a fatal error towards the end

./artigo.tex:384: Undefined control sequence.

l.384


if such a fatal error aborts the TeX run it is possible that the .bcf file is not written out completely and hence corrupted. In that case Biber can't read the file properly and complains

[61] Utils.pm:209> ERROR - artigo.bcf is malformed, last biblatex run probably failed. Deleted artigo.bbl


The only way to get going again is by fixing all errors that you encounter when you compile your TeX file. This is always advised anyway, not only when you run Biber: Errors must be fixed, the output is not guaranteed to be valid if LaTeX encounters an error. Never ignore error messages.

Apparently the abntex2 class requires you to give the author, title and English title of the work in \autor, \titulo and \tituloestrangeiro, respectively if you want to print a title with \maketitle. Otherwise errors are thrown.

\documentclass[11pt, article, a4paper, oneside, sumario=tradicional, chapter=TITLE, section=TITLE, subsection=Title, subsubsection=title, subsubsubsection=title, english, german, greek, portuguese]{abntex2}

\usepackage{babel}
\usepackage[backend = biber, style = abnt]{biblatex}

\begin{document}
\selectlanguage{brazil}
\titulo{Brazilian Title}
\tituloestrangeiro{English Title}
\autor{Gustavo}
\maketitle

\cite{sigfridsson}

\printbibliography
\end{document}


works and produces

• But my professor asked me not to include the foreign title due to the college's ABNT rules – Gustavo Reis Dec 12 '18 at 22:49
• @GustavoReis Sorry, that's all I can say. The class will throw an error if no title is given. And errors like this must be addressed. You can of course say \tituloestrangeiro{} or you can have a look at the documentation (which is in Portuguese, which I don't read) to see if there is a way to turn the foreign title off. – moewe Dec 12 '18 at 22:52
• I added \tituloestrangeiro{}`(with empty title), and it worked. – Gustavo Reis Dec 12 '18 at 22:55
• I still want to know who on earth uses those rules for "articles", but anyways... – Joseph Dec 13 '18 at 23:43