避免文件扩展名出现换行符

避免文件扩展名出现换行符

我制作了一个系统来列出大量 LaTeX 文件,我想包含所有文件的路径,以便能够快速复制粘贴。这些路径可能很长,调整一些设置后,我得到了以下设置,它适用于大多数路径:

\documentclass{article}
\usepackage{url}

\begin{document}
\begin{sloppypar}
\noindent\path{C:/Folder/Subfolder/Subsubfolder/EvenMoreSubfoldernames/filename.tex}
\end{sloppypar}
\end{document}

这将为我的大多数文件提供良好的换行符。在这个特定示例中(以及我拥有的一些实际文件),换行符仅在文件扩展名处,因此我们将得到

C:/Folder/Subfolder/Subsubfolder/EvenMoreSubfoldernames/filename
.tex

作为输出。是否可以避免在文件扩展名处换行?路径中的其他地方不应该有点,因此避免在点处换行也是可行的。我最初使用Steven B. Segletes 的回答在这里\texttt,但这不与sloppypar环境相结合,因此通常在破裂之前进入边缘。

总之:

\url是否可以使用或来避免文件路径扩展名处的换行符\texttt

答案1

只需在答案中抑制textttt换行的可能性即可.

在此处输入图片描述

\documentclass[a4paper]{article}
\renewcommand{\texttt}[1]{%
  \begingroup
  \ttfamily
  \begingroup\lccode`~=`/\lowercase{\endgroup\def~}{/\discretionary{}{}{}}%
  \begingroup\lccode`~=`[\lowercase{\endgroup\def~}{[\discretionary{}{}{}}%
  %\begingroup\lccode`~=`.\lowercase{\endgroup\def~}{.\discretionary{}{}{}}%
%  \catcode`/=\active\catcode`[=\active\catcode`.=\active
  \catcode`/=\active\catcode`[=\active
  \scantokens{#1\noexpand}%
  \endgroup
}

\begin{document}
\begin{sloppypar}
\noindent\texttt{C:/Folder/Subfolder/Subsubfolder/EvenMoreSubfoldernames/filename.tex}
\end{sloppypar}
\end{document}

答案2

以下是另一种方法,调整行为\url

\documentclass{article}
\usepackage{url}
\def\UrlBreaks{\do\@\do\\\do\/\do\!\do\_\do\|\do\;\do\>\do\]%
 \do\)\do\,\do\?\do\&\do\'\do+\do\=\do\#}%
\begin{document}
\begin{sloppypar}
\noindent\path{C:/Folder/Subfolder/Subsubfolder/EvenMoreSubfoldernames/filename.tex}
\end{sloppypar}
\end{document}

\def\UrlBreaks删除了开头的行(实际上分成了 2 行) url.sty,并\do\.删除了 。它在这里的作用是重新定义可以断开 URL 以排除句号的字符列表。

相关内容