遵守 URL 封装中的空格(路径命令)

遵守 URL 封装中的空格(路径命令)

背景

使用\pathURL 包中的命令标记目录路径。部分路径带有空格。

问题

前导码设置为:

\usepackage{algorithm}
\usepackage{booktabs}
% ... many other packages ...
\usepackage[automark,nouppercase]{scrpage2}
\usepackage[obeyspaces,dvipsnames,svgnames,x11names,table,hyperref]{xcolor}

该命令的代码\path

\path{c:\Program Files\Java\jdk1.6.0_22}

(PDF) 输出缺少空格:

c:\ProgramFiles\Java\jdk1.6.0_22

URL 包的文档中提到了obeyspaces。文档并未说明当包被间接包含时如何强制执行参数。

问题

如何强制\path命令在其参数中保留空格,而不必重写所有语句(包括不间断空格或其 LaTeX 等效项)?

谢谢你!

答案1

将选项指定obeyspaces为文档类选项。然后应自动将其传递给url包。

答案2

url软件包不允许稍后使用\urlsetup命令设置选项,因此您必须破解代码才能获得所需的内容。在使用此破解之前,请确保您无法通过过早放置或来预先调用url带有选项的软件包(例如,在之后)。obeyspaces\usepackage[obeyspaces]{url}\PassOptionsToPackage{obeyspaces}{url}\documentclass

\documentclass{article}
\usepackage{url}
\makeatletter
\begingroup \lccode`+=32 \lowercase
 {\endgroup \def\Url@ObeySp{\Url@Edit\Url@String{ }{+}}}
 \def\Url@space{\penalty\Url@sppen\ }
\makeatother
\begin{document}
\path{c:\Program Files\Java\jdk1.6.0_22}
\end{document}

相关内容