前言

前言

我需要帮助,因为我找不到一种方法来准确地将长 URL 拆分到我想要的位置。我使用 Sharelatex(因为我无法在办公室电脑上安装 LaTeX 发行版),我一直在使用,\bibliography但现在已经不行了。所以我添加了biblatex一个似乎运行良好的软件包。

但是,\def\UrlBreaks也不起作用了...我尝试了给出的解决方案这里,徒劳无功......它只在“-”处破坏 URL......我们的想法是破坏位于/_=、处的 URL ?...

如果有帮助的话,我的序言如下:

前言

\documentclass[11pt,frenchb,fleqn,reqno]{article}

\usepackage[utf8]{inputenc}                    
\usepackage{ae,lmodern}                         
\usepackage[T1]{fontenc}                        

\usepackage{setspace}
\setstretch{1.2}

\makeatletter 
\long\def\@makefntextFB#1{%
    \ifx\thefootnote\ftnISsymbol
        \@makefntextORI{#1}%
    \else
        \rule\z@\footnotesep
        \setbox\@tempboxa\hbox{\@thefnmark}%
            \ifdim\wd\@tempboxa>\z@
                \kern2em\llap{\@thefnmark.\kern0.5em}%
            \fi
        \hangindent2em\hangafter\@ne#1
    \fi}
\makeatother

\newcommand{\twobar}{/\kern-0.2em/}             
\usepackage[breaklinks=true]{hyperref}           
\renewcommand{\UrlFont}{\ttfamily\footnotesize}
\def\UrlBreaks{\do\/\do-\do?\do\_}             

\setcounter{secnumdepth}{3}                     
\usepackage{array}                             

\usepackage{enumitem}
\usepackage[output-decimal-marker={,}]{siunitx}
\usepackage{ragged2e}
\newcommand{\pc}[1]{\SI{#1}{\percent}}          
\usepackage{amssymb, amsmath}                   
\setlength{\mathindent}{0cm}                

\usepackage{graphicx}                           
\usepackage{silence}
\WarningFilter{frenchb.ldf}{Figure}             

\usepackage[dvipsnames]{xcolor}
\usepackage{tikz}
\usepackage{pgfplots}
\pgfplotsset{compat=1.15}

\usepackage{etoolbox}
\apptocmd{\sloppy}{\hbadness 10000\relax}{}{}   
\tolerance 400                                 
\pretolerance 200

\usepackage{fancyhdr}
\setlength{\headheight}{14pt}

\usepackage[backend=bibtex,style=numeric,sorting=none]{biblatex}
\usepackage{csquotes}
\DeclareLanguageMapping{frenchb}{french}
\addbibresource{biblio.bib}
\usepackage{url}
\setcounter{biburllcpenalty}{9999}
\setcounter{biburlucpenalty}{9999}
\setcounter{biburlnumpenalty}{9999}

\usepackage{babel}                              

在文档中

\begin{document}

Bla bla bla \cite{obs}.
\addcontentsline{toc}{section}{Références}
\printbibliography{}
\end{document}

Bib 文件

@misc{obs,
      title = "Titre", 
      url = {https://www.reallylongurl.fr/aaaa/bbbbbbbbbbbbbbbbb/ccccccc-ccccc_ddddddddd?eeeeeeeeee=125784.pdf}
}

以下是我的参考书目: 在此处输入图片描述

我希望有人能有个好主意来解决这个问题!谢谢 :)

答案1

好吧,我从你的代码创建了一个 MWE,并用 进行编译pdflatex

代码中的主要问题是包hyperref应该被调用为最后一个就你的情况而言。

请参阅以下 MWE(我用 标记了我的代码更改<======

\RequirePackage{filecontents}
\begin{filecontents}{\jobname.bib}
@misc{obs,
  title = "Titre", 
  url = {https://www.reallylongurl.fr/aaaa/bbbbbbbbbbbbbbbbb/ccccccc-ccccc_ddddddddd?eeeeeeeeee=125784.pdf}
}
\end{filecontents}


\documentclass[11pt,frenchb,fleqn,reqno]{article}

\usepackage[utf8]{inputenc}
\usepackage{ae,lmodern}
\usepackage[T1]{fontenc}

\usepackage{babel} % <==================================================
\usepackage{showframe} % <==============================================

\usepackage{setspace}
\setstretch{1.2}

\makeatletter 
\long\def\@makefntextFB#1{%
    \ifx\thefootnote\ftnISsymbol
        \@makefntextORI{#1}%
    \else
        \rule\z@\footnotesep
        \setbox\@tempboxa\hbox{\@thefnmark}%
            \ifdim\wd\@tempboxa>\z@
                \kern2em\llap{\@thefnmark.\kern0.5em}%
            \fi
        \hangindent2em\hangafter\@ne#1
    \fi}
\makeatother

\newcommand{\twobar}{/\kern-0.2em/}             

\setcounter{secnumdepth}{3}                     
\usepackage{array}                             

\usepackage{enumitem}
\usepackage[output-decimal-marker={,}]{siunitx}
\usepackage{ragged2e}
\newcommand{\pc}[1]{\SI{#1}{\percent}}          
\usepackage{amssymb, amsmath}                   
\setlength{\mathindent}{0cm}                

\usepackage{graphicx}                           
\usepackage{silence}
\WarningFilter{frenchb.ldf}{Figure}             

%\usepackage[dvipsnames]{xcolor}
\usepackage{tikz}
\usepackage{pgfplots}
\pgfplotsset{compat=1.15}

\usepackage{etoolbox}
\apptocmd{\sloppy}{\hbadness 10000\relax}{}{}   
\tolerance 400                                 
\pretolerance 200

\usepackage{fancyhdr}
\setlength{\headheight}{14pt}

\usepackage[backend=bibtex,style=numeric,sorting=none]{biblatex}
\usepackage{csquotes}
\DeclareLanguageMapping{frenchb}{french}
\addbibresource{\jobname.bib}
\usepackage{url}
\setcounter{biburllcpenalty}{9999}
\setcounter{biburlucpenalty}{9999}
\setcounter{biburlnumpenalty}{9999}

\usepackage[breaklinks=true]{hyperref} % <==============================
\renewcommand{\UrlFont}{\ttfamily\footnotesize}
\def\UrlBreaks{\do\/\do-\do?\do\_}             


\begin{document}

Bla bla bla \cite{obs}.
\addcontentsline{toc}{section}{Références}
\printbibliography{}
\end{document}

你会得到想要的结果:

生成的 pdf

相关内容