用中间的点代替空格

用中间的点代替空格

是否可以像古典拉丁铭文那样用中间点(·)代替空格?

例如,以下代码……

\dotseparation{SENATUS POPULUSQUE ROMANUS}

…应像这样出现“SENATUS·POPULUSQUE·ROMANUS”。

编辑1

目标是将虚线空格视为普通空格,并遵循连字符或断线的所有规则。

编辑2

正如我在之前的编辑中所说,这个点空间应该被视为正常空间并表现出相同的行为,尤其是关于stretchpars。例如,使用下面 Jasper Habicht 给出的解决方案,拉伸不被尊重:

\documentclass[oneside]{article}
\usepackage{fontspec}
\setmainfont{Noto Serif}

\ExplSyntaxOn
\seq_new:N \l__dotseparation_words_seq
\NewDocumentCommand{\dotseparation}{ m }{
    \regex_split:nnN { \s } { #1 } \l__dotseparation_words_seq
    \seq_use:Nn \l__dotseparation_words_seq { \char"2E31 \hskip0pt } 
}
\ExplSyntaxOff


\begin{document}


\begin{center}
  \null
  \vfill

  \newenvironment{stretchpars}
  {\par\setlength{\parfillskip}{0pt}}
  {\par}


  \begin{minipage}{6.8cm}
    \begin{stretchpars}
      CUI DONO LEPIDUM NOUUM LIBELLUM

      ARIDA MODO PUMICE EXPOLITUM ?

      CORNELI, TIBI NAMQUE TU SOLEBAS

      MEAS ESSE ALIQUID PUTARE NUGAS
    \end{stretchpars}
  \end{minipage}

  \vspace{1cm}

  \begin{minipage}{6.8cm}
    \begin{stretchpars}
      \dotseparation{CUI DONO LEPIDUM NOUUM LIBELLUM}

      \dotseparation{ARIDA MODO PUMICE EXPOLITUM ?}

      \dotseparation{CORNELI, TIBI NAMQUE TU SOLEBAS}

      \dotseparation{MEAS ESSE ALIQUID PUTARE NUGAS}
    \end{stretchpars}
  \end{minipage}

  \vfill
  \null
\end{center}


\end{document}

渲染

答案1

像这样?

\documentclass{article}
\usepackage[latin]{babel}

\ExplSyntaxOn
\seq_new:N \l__dotseparation_words_seq
\NewDocumentCommand{\dotseparation}{ m }{
    \regex_split:nnN { \s } { #1 } \l__dotseparation_words_seq
    \seq_use:Nn \l__dotseparation_words_seq { \char"00B7\hskip0pt } 
}
\ExplSyntaxOff


\begin{document}

\dotseparation{SENATUS POPULUSQUE ROMANUS}

\dotseparation{URBS ROMA A COLONIIS CIRCUM VADUM IN FLUMINE TIBERE QUADRIVIUM 
    COMMERCII MERCATURAEQUE PROFECTA EST.}

\end{document}

在此处输入图片描述


Noto Serif 有一个 U+2E31 “WORD SEPARATOR MIDDLE DOT” 的字形,这可能是这里的正确代码点,您还可以添加一些胶水以实现一定的可拉伸性(感谢 barbara beeton):

\documentclass{article}
\usepackage[latin]{babel}
\usepackage{fontspec}
\setmainfont{Noto Serif}

\ExplSyntaxOn
\seq_new:N \l__dotseparation_words_seq
\NewDocumentCommand{\dotseparation}{ m }{
    \regex_split:nnN { \s } { #1 } \l__dotseparation_words_seq
    \seq_use:Nn \l__dotseparation_words_seq { \hspace{0pt plus .05em} \char"2E31 \hspace{0pt plus .05em} } 
}
\ExplSyntaxOff

\newenvironment{stretchpars}
    {\par\setlength{\parfillskip}{0pt}}
    {\par}
    

\begin{document}

\dotseparation{SENATUS POPULUSQUE ROMANUS}

\bigskip

\begin{minipage}{6.8cm}
    \begin{stretchpars}
        \dotseparation{CUI DONO LEPIDUM NOUUM LIBELLUM}
        
        \dotseparation{ARIDA MODO PUMICE EXPOLITUM ?}
        
        \dotseparation{CORNELI, TIBI NAMQUE TU SOLEBAS}
        
        \dotseparation{MEAS ESSE ALIQUID PUTARE NUGAS}
    \end{stretchpars}
\end{minipage}
  
\end{document}

在此处输入图片描述

相关内容