Erro ao compactar a citação no Tufte-book

Erro ao compactar a citação no Tufte-book

Estou usando a aula de livros Tufte para escrever minha tese. Estou tendo um pouco de dificuldade em colocar as referências. Em primeiro lugar, quero que as citações tenham a aparência [1-4]em vez de [1,2,3,4]. estou a usar

\setcitestyle{square,numbers,sort&compress}

e também

\bibliographystyle{unsrtnat}
\bibliography{sample-handout}

Mas ainda estou recebendo citações com format [1;2;3;4]. Além disso, parece que não está reorganizando a opção, sort&compresspois a mostra em vermelho. Observe que estou usando \citep{}ao citar uma referência.


Também estou recebendo erros como

Erro de entrada de pacote: caractere Unicode (U+2009)(inputenc) não configurado para uso com LaTeX. C.~Monroe, W.

mesmo quando eu coloco

\usepackage[utf8]{inputenc} % Ensure UTF-8 encoding is used

e

Faltando $ inserido. ...bloco \doi{10.1364/CLEO_QELS.2016.FTh4C.1}

A citação parece

@article{White:16,
author = {Andrew G. White},
booktitle = {Conference on Lasers and Electro-Optics},
journal = {Conference on Lasers and Electro-Optics},
keywords = {Biology; Chemistry; Detectors},
pages = {FTh4C.1},
publisher = {Optica Publishing Group},
title = {Photonic Quantum Simulation},
year = {2016},
url = {https://opg.optica.org/abstract.cfm?URI=CLEO_QELS-2016-FTh4C.1},
doi = {10.1364/CLEO_QELS.2016.FTh4C.1},
abstract = {We review photonic quantum simulation, its use in biology, chemistry, computer science and physics, and its prospects for scaling given the latest advances in quantum photonics, notably in sources, detectors, and nonlinear interactions.},
}

Responder1

Embora não tenha conseguido confirmar imediatamente a partir da fonte do tufte-book, suspeito que as redefinições dos comandos cite impedem sort&compressa entrada em vigor. No entanto, se você definir esta opção quando natbibfor carregada, neste caso usando \PassOptionsToPackageantes de carregar a classe, o comportamento de classificação e compactação será preservado.

Isso Missing $ insertedé causado por um _caractere sem escape no doicampo. O urlcampo também possui esse caractere, mas esse campo é analisado literalmente enquanto doié analisado como texto normal, portanto _é visto como um subscrito para o qual o modo matemático (ou seja, $) é necessário. A solução para isso é, portanto,

doi = {10.1364/CLEO\_QELS.2016.FTh4C.1},

Código completo:

\begin{filecontents}[overwrite]{\jobname.bib}
@article{White:16,
author = {Andrew G. White},
booktitle = {Conference on Lasers and Electro-Optics},
journal = {Conference on Lasers and Electro-Optics},
keywords = {Biology; Chemistry; Detectors},
pages = {FTh4C.1},
publisher = {Optica Publishing Group},
title = {Photonic Quantum Simulation},
year = {2016},
url = {https://opg.optica.org/abstract.cfm?URI=CLEO_QELS-2016-FTh4C.1},
doi = {10.1364/CLEO\_QELS.2016.FTh4C.1},
abstract = {We review photonic quantum simulation, its use in biology, chemistry, computer science and physics, and its prospects for scaling given the latest advances in quantum photonics, notably in sources, detectors, and nonlinear interactions.},
}
@misc{White:17,
author = {John White},
title = {Number 17},
year = {2017}
}
@misc{White:18,
author = {Mary White},
title = {Number 18},
year = {2018}
}
\end{filecontents}
\PassOptionsToPackage{square,numbers,sort&compress}{natbib}
\documentclass{tufte-book}
%\setcitestyle{square,numbers,sort&compress}
\title{Sort \& Compress}
\author{with Tufte Book}
\begin{document}
\maketitle
\chapter{Some cite commands}
\citep{White:16,White:17,White:18}
\bibliographystyle{unsrtnat}
\bibliography{\jobname}
\end{document}

Resultado:

insira a descrição da imagem aqui

Para os caracteres utf8, você não fornece a fonte da entrada ofensiva. No entanto, o erro em geral é bem conhecido e refere-se ao fato de que o pdfLaTeX só pode lidar com uma quantidade limitada de caracteres utf8 nativamente (basicamente ascii estendido, portanto letras latinas com diacríticos), e se você tiver outros caracteres utf8, então você precisa configure-os individualmente usando \DeclareUnicodeCharacter(ou use um pacote que configure as coisas, por exemplo, para CJK).

Para este carácter específico U+2009 isto não é necessário, no entanto, trata-se de um 'espaço fino' que provavelmente foi inserido na entrada por engano. Você pode tentar encontrar o caractere usando inspeção visual ou um editor hexadecimal, por exemplo, ou apenas digitar novamente a entrada (portanto, não copie e cole, na verdade digite novamente do zero).

informação relacionada