用斜线替换所有空格并进行对齐

用斜线替换所有空格并进行对齐

我需要一个宏来用斜线替换文本中的空格。为了允许对齐,必须在斜线前后添加一些粘连。行首和行末不应出现斜线。使用以下代码,文本不会在右边缘对齐。我该如何更改此问题?

\documentclass{article}
\usepackage{xparse}

\ExplSyntaxOn

\skip_const:Nn \l_mymodule_slashskip_skip {0em plus0.25em minus0.1em}

\NewDocumentCommand \ReplaceSpaces {m}
   {
      \tl_set:Nn \l_tmpa_tl {#1}

      \tl_replace_all:Nnn \l_tmpa_tl {~}
         {
            \penalty10000
            \skip_horizontal:N \l_mymodule_slashskip_skip
            \discretionary{}{}{/}
            \penalty10000
            \skip_horizontal:N \l_mymodule_slashskip_skip
         }

        \tl_use:N \l_tmpa_tl
   }

\ExplSyntaxOff

\begin{document}

\ReplaceSpaces{Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Etiam lobortis facilisis sem. Nullam nec mi et neque pharetra sollicitudin. Praesent imperdiet mi nec ante. Donec ullamcorper, felis non sodales commodo, lectus velit ultrices augue, a dignissim nibh lectus placerat pede. Vivamus nunc nunc, molestie ut, ultricies vel, semper in, velit. Ut porttitor. Praesent in sapien. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Duis fringilla tristique neque. Sed interdum libero ut metus. Pellentesque placerat. Nam rutrum augue a leo. Morbi sed elit sit amet ante lobortis sollicitudin. Praesent blandit blandit mauris. Praesent lectus tellus, aliquet aliquam, luctus a, egestas a, turpis. Mauris lacinia lorem sit amet ipsum. Nunc quis urna dictum turpis accumsan semper.}

\end{document}

答案1

修改https://tex.stackexchange.com/a/44951/4427(请参阅那里的参考资料)。

\documentclass{article}
\usepackage{xparse}

\newcommand{\spaceslash}{%
  \unskip
  \hskip 2pt plus 1pt minus 1pt
  \cleaders\copy\spaceslashbox\hskip\wd\spaceslashbox
  \hskip 2pt plus 1pt minus 1pt
  \ignorespaces}
\newsavebox\spaceslashbox

\ExplSyntaxOn

\NewDocumentCommand \ReplaceSpaces {m}
   {
      \sbox\spaceslashbox{/}
      \tl_set:Nn \l_tmpa_tl {#1}
      \tl_replace_all:Nnn \l_tmpa_tl {~} { \spaceslash }
      \tl_use:N \l_tmpa_tl
   }

\ExplSyntaxOff

\begin{document}

\ReplaceSpaces{Lorem ipsum dolor sit amet, consectetuer
  adipiscing elit. Etiam lobortis facilisis sem. Nullam
  nec mi et neque pharetra sollicitudin. Praesent imperdiet
  mi nec ante. Donec ullamcorper, felis non sodales commodo,
  lectus velit ultrices augue, a dignissim nibh lectus placerat
  pede. Vivamus nunc nunc, molestie ut, ultricies vel, semper
  in, velit. Ut porttitor. Praesent in sapien. Lorem ipsum
  dolor sit amet, consectetuer adipiscing elit. Duis fringilla
  tristique neque. Sed interdum libero ut metus. Pellentesque
  placerat. Nam rutrum augue a leo. Morbi sed elit sit amet
  ante lobortis sollicitudin. Praesent blandit blandit mauris.
  Praesent lectus tellus, aliquet aliquam, luctus a, egestas a,
  turpis. Mauris lacinia lorem sit amet ipsum. Nunc quis urna
  dictum turpis accumsan semper.}

\medskip

\footnotesize
\ReplaceSpaces{Lorem ipsum dolor sit amet, consectetuer
  adipiscing elit. Etiam lobortis facilisis sem. Nullam
  nec mi et neque pharetra sollicitudin. Praesent imperdiet
  mi nec ante. Donec ullamcorper, felis non sodales commodo,
  lectus velit ultrices augue, a dignissim nibh lectus placerat
  pede. Vivamus nunc nunc, molestie ut, ultricies vel, semper
  in, velit. Ut porttitor. Praesent in sapien. Lorem ipsum
  dolor sit amet, consectetuer adipiscing elit. Duis fringilla
  tristique neque. Sed interdum libero ut metus. Pellentesque
  placerat. Nam rutrum augue a leo. Morbi sed elit sit amet
  ante lobortis sollicitudin. Praesent blandit blandit mauris.
  Praesent lectus tellus, aliquet aliquam, luctus a, egestas a,
  turpis. Mauris lacinia lorem sit amet ipsum. Nunc quis urna
  dictum turpis accumsan semper.}

\end{document}

在此处输入图片描述

相关内容