用星号和线分隔

用星号和线分隔

我想要一个由三个星号和线组成的分隔符。

有下面的,但是比较乱。

\documentclass[a4paper,12pt]{article}
\usepackage{xhfill}
\ExplSyntaxOn

\UndeclareTextCommand{\textasteriskcentered}{TS1}
\DeclareTextSymbolDefault{\textasteriskcentered}{OT1}
\DeclareTextCommand{\textasteriskcentered}{OT1}{\raisebox{-.7ex}[1ex][0pt]{*}}

\newcommand{\separ}[1][1]
 {
  \par\vskip0.5\baselineskip
  \noindent
  \hbox to \dimexpr 0.5\linewidth - #1\linewidth / 2\relax{}
  \xrfill[0.5ex]{0.4pt}
  \;\textasteriskcentered\,\textasteriskcentered\,\textasteriskcentered\;
  \xrfill[0.5ex]{0.4pt}
  \hbox to \dimexpr 0.5\linewidth - #1\linewidth / 2\relax{}
  \vskip0.5\baselineskip\par
 }

\ExplSyntaxOff


\begin{document}

Some text

\separ[0.2]

More Text

\end{document}

答案1

如果宏\separ不需要接受参数,则其定义可以大大简化。

在此处输入图片描述

\documentclass[a4paper,12pt]{article}
\usepackage{lipsum} % filler text

\let\tac\textasteriskcentered % two handy shortcut macros
\let\ted\textemdash
\newcommand\separ{%
   \begin{center}
     \ted\ted\ \tac\,\tac\,\tac\ \ted\ted%
   \end{center}}

\begin{document}

\noindent
\lipsum[1][1-3] % filler text
\separ
\lipsum[2][1-3] % more filler text

\end{document}

答案2

是的,确实很混乱。

也许,您想定义以下宏:

\def\separ[#1]{%
   \par\medskip
   \centerline{\crule{#1\hsize/3} \lower.7ex\hbox{*\,*\,*} \crule{#1\hsize/3}}
   \medskip
}
\def\crule#1{\vrule height.6ex depth-\dimexpr.6ex-.4pt width\dimexpr#1\relax\relax}

答案3

不是你的星号太高,而是用xhfill它画出的规则太低了。

您可以使用一些低级编程来获得正确的居中,这样您就可以参考“轴高”,这就是星号居中的位置。无需猜测尺寸。

使用\vrule所需尺寸比间接填充更好。

\documentclass[a4paper,12pt]{article}

\makeatletter
\newcommand{\separ}[1][1]{%
  \par\nopagebreak\vspace{0.5\baselineskip}
  \hbox to \linewidth{%
    \check@mathfonts
    \hss
    \vrule width \dimeval{#1\linewidth/2}
           height \dimeval{\fontdimen22\textfont2+0.2pt}
           depth -\dimeval{\fontdimen22\textfont2-0.2pt}%
    \;\textasteriskcentered\,\textasteriskcentered\,\textasteriskcentered\;%
    \vrule width \dimeval{#1\linewidth/2}
           height \dimeval{\fontdimen22\textfont2+0.2pt}
           depth -\dimeval{\fontdimen22\textfont2-0.2pt}%
    \hss
  }
  \vspace{0.5\baselineskip}
 }
\makeatother

\begin{document}

Some text

\separ[0.2]

More Text

\end{document}

在此处输入图片描述

相关内容