编写此 Stackengine Asterism 的更简单方法

编写此 Stackengine Asterism 的更简单方法

考虑MWE:

\documentclass[12pt]{article}
\usepackage{stackengine}
\usepackage{lipsum}
\usepackage{graphicx}

\def\asterism{\par\vspace{1em}{\centering\scalebox{1.5}{%
  \stackon[-0.5pt]{*}{\stackon[-0.5pt]{\stackon[-0.5pt]{*}{*~*~*}}{*}}}\par}\vspace{.5em}\par}

\begin{document}
\lipsum[3]
\vspace*{20pt}
\asterism
\end{document}

产生输出

在此处输入图片描述

我经常使用这个stackengine包,但仍然遇到一些后勤方面的困难——毫无疑问,是我的错。在这种情况下,虽然我已经制作出了我想要的十字形星群,但我觉得可能有一种更有效的编码方法。

问题:有人可以建议(也许使用stackengine)一种更简单的方法来编码这个星号吗?

谢谢。

答案1

我认为您这里不需要任何包裹。

在此处输入图片描述

\documentclass[12pt]{article}

\usepackage{lipsum}


\def\asterism{\begin{center}
\shortstack{*\\[-2pt]*\,*\,*\\[-2pt]*\\[-2pt]*}    
  \end{center}}

\begin{document}
\lipsum[3]
\vspace*{20pt}
\asterism
\end{document}

答案2

由于堆栈行之间的所有基线跳跃都是相同的,因此您只需使用\Longstack,并将 long-stackgap 设置为所需值,此处为 0.75em。我先展示您的版本,然后展示我的修订版本,以供比较。

\documentclass[12pt]{article}
\usepackage{stackengine}
\usepackage{lipsum}
\usepackage{graphicx}

\def\oldasterism{\par\vspace{1em}{\centering\scalebox{1.5}{%
  \stackon[-0.5pt]{*}{\stackon[-0.5pt]{\stackon[-0.5pt]{*}{*~*~*}}{*}}}\par}\vspace{.5em}\par}
\def\asterism{\par\vspace{1em}{\setstackgap{L}{.75em}\centering
  \scalebox{1.5}{\Longstack{* *~*~* * *}}\par}\vspace{.5em}\par}

\begin{document}
\lipsum[3]
\vspace*{20pt}
\oldasterism
\asterism
\end{document}

在此处输入图片描述

答案3

你可以尝试 TiZ 或以下使用原始对齐的方法。

\documentclass{article}
\usepackage{lipsum}

\newcommand{\asterism}{%
  \par\nopagebreak\vspace*{20pt}
  \noindent\makebox[\columnwidth]{%
    \vbox{%
      \offinterlineskip
      \tabskip=0.4ex
      \halign{%
        &##\cr % template
        &$*$\cr\noalign{\vskip0.5ex}
        $*$&$*$&$*$\cr\noalign{\vskip0.5ex}
        &$*$\cr\noalign{\vskip0.5ex}
        &$*$\cr
      }%
    }%
  }%
  \par\vspace{20pt}
}

\begin{document}

\lipsum[3]

\asterism

\lipsum[4]

\end{document}

在此处输入图片描述

相关内容