如何删除一个网址?

如何删除一个网址?

我正在尝试删除一个较长的 URL,但似乎我只能将 URL 拆分开或将其删除,而不能同时进行。

我想做这样的事情:

\documentclass{文章} \usepackage{url} \usepackage{ulem} \sout{\url{http://tex.stackexchange.com}}

但它不会破坏网址

答案1

url通过递归地逐个字符地拆分输入、删除(在 中\ttfamily)并应用\penalty0以允许换行来模拟包。删除是对该包的修改censor

在此编辑的实现中,字符/-\_可以用作换行点。(在本文末尾的原始实现中,参数中的任何字符\souturl都可以用作换行点)

\documentclass{article}
\usepackage[nopar]{lipsum}
\usepackage{censor}
%%%%%%%%%%%
\censorruleheight=.1ex %THICKNESS OF CENSOR RULE
\newlength\nextcharwidth
\makeatletter
\renewcommand\@cenword[1]{%
  \setlength{\nextcharwidth}{\widthof{#1}}%
  \censorrule{\nextcharwidth}%
  \kern -\nextcharwidth%
  #1}
\makeatother
\newcommand\souturl[1]{\bgroup\ttfamily%
  \censorruledepth=.55ex\souturlhelp#1\relax\relax\egroup}
\def\souturlhelp#1#2\relax{%
  \censor{#1}%
  \ifx#1/\penalty0\else%
    \ifx#1-\penalty0\else%
      \ifx#1\_\penalty0\else%
  \fi\fi\fi%
  \ifx\relax#2\relax\else\souturlhelp#2\relax\fi}
%%%%%%%%%%%
\begin{document}
\lipsum[1]
\souturl{%
http://tex.stackexchange.com/questions/224354/how-to-strike-out-an-url\_xyz%
}
\lipsum[2]
\end{document}

在此处输入图片描述

原始解决方案允许任何字符作为换行点

\documentclass{article}
\usepackage[nopar]{lipsum}
\usepackage{censor}
%%%%%%%%%%%
\censorruleheight=.1ex %THICKNESS OF CENSOR RULE
\newlength\nextcharwidth
\makeatletter
\renewcommand\@cenword[1]{%
  \setlength{\nextcharwidth}{\widthof{#1}}%
  \censorrule{\nextcharwidth}%
  \kern -\nextcharwidth%
  #1}
\makeatother
\newcommand\souturl[1]{\bgroup\ttfamily%
  \censorruledepth=.55ex\soutrefhelp#1\relax\relax\egroup}
\def\soutrefhelp#1#2\relax{%
  \censor{#1}\penalty0\ifx\relax#2\relax\else\soutrefhelp#2\relax\fi}
%%%%%%%%%%%
\begin{document}
\lipsum[1]
\souturl{%
http://tex.stackexchange.com/questions/224354/how-to-strike-out-an-url\_xyz%
}
\lipsum[2]
\end{document}

在此处输入图片描述

相关内容