разделить страницы библиографии, чтобы избежать переполнения поля

разделить страницы библиографии, чтобы избежать переполнения поля

Я пытаюсь распечатать свою библиографию, но "страницы XXX-XXX" делают переполненные поля. Я уже просмотрелэтот ответно seqsplitкак уже упоминалосьISBN и другие длинные номеране работает, даже хуже, выдает следующую ошибку:

!Package etoolbox Error: Toggle 'bbx:pageranges' undefined.

Это мой файл

\RequirePackage{fix-cm}
\documentclass[12pt, table, letterpaper]{report}

\usepackage[english,spanish,es-tabla]{babel}
\usepackage[
    letterpaper,
    top = 18mm,
    left = 20mm,
    right= 20mm,
    bottom = 18mm
]{geometry}
\usepackage{fontspec}
\usepackage[hidelinks]{hyperref}
\usepackage[
    thresholdtype=words
]{csquotes}
\usepackage[
    backend=biber,
    style=ieee,
    url=false,
    hyperref=true,
]{biblatex}

\usepackage{xurl}

\setlength{\parindent}{0pt}
\setlength{\parskip}{1em}

\defaultfontfeatures{Ligatures=TeX}
\setmainfont{Times New Roman}
\addbibresource{Bib/References.bib}

\DeclareFieldFormat{url}{%
%  \mkbibacro{URL}\addcolon\space
    \href{#1}{\nolinkurl{\thefield{urlraw}}}}

\begin{document}
    \pagenumbering{gobble}
    \nocite{*}
    \printbibliography[heading=bibintoc]
\end{document}

Ссылки.bib

@article{palomino-resendiz_design_2018,
    title = {Design and implementation of a robotic active solar distiller based on a Fresnel concentrator and a photovoltaic system},
    volume = {166},
    issn = {0196-8904},
    url = {https://www.sciencedirect.com/science/article/pii/S0196890418304175},
    doi = {10.1016/j.enconman.2018.04.069},
    abstract = {},
    pages = {637--647},
    journaltitle = {Energy Conversion and Management},
    shortjournal = {Energy Conversion and Management},
    author = {Palomino-Resendiz, S. I. and Flores-Hernández, D. A. and Lozada-Castillo, N. and Guzmán-Vargas, L. and Luviano-Juárez, A.},
    urldate = {2022-03-18},
    date = {2018-06-15},
    langid = {english},
    keywords = {Desalination, Fresnel lens, Photovoltaic system, Robotic solar distiller, Solar energy},
}

@article{kabeel_performance_2022,
    title = {Performance assessment of the hemispherical solar distillers with the extended cylindrical iron fins: An experimental investigation},
    volume = {61},
    issn = {1110-0168},
    url = {https://www.sciencedirect.com/science/article/pii/S1110016822002794},
    doi = {10.1016/j.aej.2022.04.018},
    shorttitle = {Performance assessment of the hemispherical solar distillers with the extended cylindrical iron fins},
    pages = {11149--11157},
    number = {12},
    journaltitle = {Alexandria Engineering Journal},
    shortjournal = {Alexandria Engineering Journal},
    author = {Kabeel, Abd Elnaby and El Hadi Attia, Mohammed and Abdelgaied, Mohamed and Abdullah, A. S. and Bellila, Abdelkader and Abdel-Aziz, Moataz M.},
    urldate = {2022-05-29},
    date = {2022-12-01},
    langid = {english},
    keywords = {Extended cylindrical fins, Hemispherical solar still, Iron fins, Number, Solar energy}
}

введите описание изображения здесь

Я компилирую свой код LaTeX следующим образом:

xelatex -synctex=1 -interaction=nonstopmode --output-directory=./build --shell-escape %.tex
makeindex -t ./build/%.glg -s ./build/%.ist -o ./build/%.gls ./build/%.glo
makeindex -t ./build/%.alg -s ./build/%.ist -o ./build/%.acr ./build/%.acn
biber --output-directory=./build %
xelatex -synctex=1 -interaction=nonstopmode --output-directory=./build --shell-escape %.tex

Редактировать

Кажется, проблема возникает при добавлении csquotesпакета. Я удалил свой файл построчно, и проблема исчезает при удалении csquotesпакета. Но проблема в том, что мне тоже нужен этот пакет. Есть идеи?

решение1

Разрыв строки крайне чувствителен к контексту, поэтому любое решение, которое может сработать в конкретной ситуации, может оказаться неподходящим для другой ситуации, какими бы похожими они ни были.

На основе кода, показанного в вопросе, я могу воспроизвести следующее переполненное поле, если добавлю \usepackage{csquotes}.

Переполненный блок: «págs. 637-647» выступает на поля (приблизительно «47» находится за пределами текстовой области).

В этом случае с довольно короткими номерами страниц я не думаю, что разбиение самого номера случайным образом даст наилучшие результаты. На первом этапе я бы попытался разрешить перенос строки на дефисе, переопределив \bibrangedash. По умолчанию spanish.lbxиспользует дефис, на котором не может быть переноса строки.

Это дает нам

\RequirePackage{fix-cm}
\documentclass[12pt, letterpaper]{report}
\usepackage[
  letterpaper,
  top = 18mm,
  left = 20mm,
  right= 20mm,
  bottom = 18mm,
]{geometry}
\usepackage{fontspec}
\usepackage[english,spanish,es-tabla]{babel}
\usepackage{csquotes}

\usepackage[
  backend=biber,
  style=ieee,
  url=false,
]{biblatex}

\usepackage{xurl}
\usepackage[hidelinks]{hyperref}

\setlength{\parindent}{0pt}
\setlength{\parskip}{1em}

\defaultfontfeatures{Ligatures=TeX}
\setmainfont{Times New Roman}

\DefineBibliographyExtras{spanish}{%
  \protected\def\bibrangedash{-}%
}

\DeclareFieldFormat{url}{%
%  \mkbibacro{URL}\addcolon\space
    \href{#1}{\nolinkurl{\thefield{urlraw}}}}


\begin{filecontents}{\jobname.bib}
@article{palomino-resendiz_design_2018,
  title        = {Design and implementation of a robotic active solar distiller
                  based on a Fresnel concentrator and a photovoltaic system},
  volume       = {166},
  issn         = {0196-8904},
  url          = {https://www.sciencedirect.com/science/article/pii/S0196890418304175},
  doi          = {10.1016/j.enconman.2018.04.069},
  pages        = {637--647},
  journaltitle = {Energy Conversion and Management},
  author       = {Palomino-Resendiz, S. I. and Flores-Hernández, D. A.
                  and Lozada-Castillo, N. and Guzmán-Vargas, L.
                  and Luviano-Juárez, A.},
  urldate      = {2022-03-18},
  date         = {2018-06-15},
  langid       = {english},
}
@article{kabeel_performance_2022,
  title        = {Performance assessment of the hemispherical solar distillers
                  with the extended cylindrical iron fins:
                  An experimental investigation},
  volume       = {61},
  issn         = {1110-0168},
  url          = {https://www.sciencedirect.com/science/article/pii/S1110016822002794},
  doi          = {10.1016/j.aej.2022.04.018},
  pages        = {11149--11157},
  number       = {12},
  journaltitle = {Alexandria Engineering Journal},
  author       = {Kabeel, Abd Elnaby and El Hadi Attia, Mohammed
                  and Abdelgaied, Mohamed and Abdullah, A. S. and Bellila, Abdelkader
                  and Abdel-Aziz, Moataz M.},
  urldate      = {2022-05-29},
  date         = {2022-12-01},
  langid       = {english},
}
\end{filecontents}
\addbibresource{\jobname.bib}

\begin{document}
  \pagenumbering{gobble}
  \nocite{*}
  \printbibliography[heading=bibintoc]
\end{document}

Та же библиография, что и выше. На этот раз диапазоны страниц разорваны на "-", в результате чего текст не выступает на поля.

Судя по всему, я надеюсь, что это также будет работать в документе, показанном на вашем скриншоте (который не является MWE).

Лично я считаю, что seqsplitрешение немного радикальное (разбиение чисел на произвольные позиции может выглядеть странно). Если проблема сохранится, я, вероятно, попробую одно из универсальных решений изКак настроить перенос строк в библиографии?, например \emergencystretch.

Связанный контент