如何使用 verbatimbox 包中的 verbnobox 和 href?

如何使用 verbatimbox 包中的 verbnobox 和 href?

使用包逐字框可以使用 href 的目标(第二个参数)作为逐字框。但我尝试使用没有框的版本。

我在使用盒装版本时发现了一些问题。下面是一个示例,首先展示了问题,然后展示了我使用非盒装版本的尝试

\documentclass[12pt,notitlepage]{article}
\usepackage{hyperref}
\usepackage{verbatimbox}
    
%code thanks to 
%https://tex.stackexchange.com/questions/697506/why-unable-to-recall-verbbox-from-vebatimbox-package-in-enumeration-list
\newcommand{\theverbboxitem}{%
  \kern-\labelwidth\kern-\labelsep
  \theverbbox
  \kern\labelwidth\kern\labelsep
}

\begin{document} 

\begin{enumerate}
\item \leavevmode\begin{verbbox}7_Inverse_hyperbolic_functions/7.1_Inverse_hyperbolic_sine/186_7.1.2-d_x-^m-a+b_arcsinh-c_x-^n\end{verbbox}
      \href{https://some_url_1/report.htm}{\theverbboxitem}
\item \leavevmode\begin{verbbox}7_Inverse_hyperbolic_functions/7.2_Inverse_hyperbolic_sine/186_7.1.2-d_x-^m-a+sin_x_y+b_arcsinh-c_x-^n\end{verbbox}
      \href{https://some_url_2/report.htm}{\theverbboxitem}
\end{enumerate}
\end{document}

使用 lualatex 编译后得到

在此处输入图片描述

它在最后会卷起来。我不想要。我认为这是因为使用盒子。

这是我构建的大型文档的屏幕截图,显示了问题

在此处输入图片描述

我试图看看是否可以拥有不带盒子的版本,但它做不到这一点。

原来软件包提供了一个noboxed版本!但我不知道如何使用非盒装版本。当我尝试

\begin{verbnobox}my nice site\end{verbnobox}
\href{https://site_URL_here/index.htm}{\theverbbox}

我明白了

在此处输入图片描述

上面不是 href。单击它没有任何反应。下面的点是空框。我明白发生了什么。但不知道怎样才能让无盒装版本在 href 中与有盒装版本一样工作。

医生说

在此处输入图片描述

好吧,我记不起它们是如何使用的\theverbbox。但是如何将它们与 href 一起使用呢?我尝试直接使用它

\href{https://site_URL_here/index.htm}{\begin{verbnobox}my nice site\end{verbnobox}}

但出现编译错误。

Missing } inserted. ...begin{verbnobox}my nice site\end{verbnobox}}

我的问题是:如果无法调用它并且无法直接插入它,如何使用verbnobox而不是verbbox作为第二个参数href?我基本上只是想找到一种方法来使用 Verbatim 作为 href 的第二个参数。上面的包就是这样做的,但我不想在它周围加上方框,以便修复上面示例中显示的包装。

这是 MWE

\documentclass[12pt,notitlepage]{article}
\usepackage{hyperref}
\usepackage{verbatimbox}
    
\begin{document} 

\begin{verbnobox}my nice site\end{verbnobox}
\href{https://site_URL_here/index.htm}{\theverbbox} %not correct

%this is also not correct
%\href{https://site_URL_here/index.htm}{\begin{verbnobox}my nice site\end{verbnobox}}

\end{document}

TL 2023

答案1

我认为 verbatimbox 不是一个好的解决方案。你会得到一个方框,这意味着没有合理的换行符。我会用它\urldef来存储类似文本的 url:

\documentclass[12pt,notitlepage]{article}
\usepackage{hyperref}
\usepackage{verbatimbox}
\textwidth=4cm
\usepackage{xurl}
\begin{document} 
\begin{myverbbox}{\myTarget}https://some_url_with_^many_%*?_strange_characters/report.htm\end{myverbbox}

\href{https://some_url_with_^many_%*?_strange_characters/report.htm}{\myTarget}

\bigskip

\urldef\mytarget\nolinkurl{https://some_url_with_^many_%*?_#strange_characters/report.htm}
\href{https://some_url_with_^many_%*?_strange_characters/report.htm}{\mytarget}

\end{document}

在此处输入图片描述

相关内容