Melhor maneira idiomática de imprimir uma "estrela" centralizada (asterisco)?

Melhor maneira idiomática de imprimir uma "estrela" centralizada (asterisco)?

Preciso imprimir o que a editora chama de “estrelinha” (asterisco).

Elaborei o código abaixo, mas não tenho certeza se é um código sonoro, ou seja, não causará problemas posteriormente, dentro de outros comandos e no fluxo de texto.

Essa é a forma idiomática de imprimir um caractere especial (neste caso, mathabx's \varstar), centralizado e com 1 linha em branco acima e abaixo?

Estou usando \vgridpara verificar se o alinhamento vertical está preservado com a maior precisão possível, em relação à grade subjacente.

\documentclass[
DIV=calc,
twoside,
openright,
twocolumn=false,
titlepage,
numbers=noenddot,
headinclude=true,
footinclude=true,
]{scrbook}

\usepackage{kantlipsum}
\usepackage{mathabx}
\newcommand{\aster}{$\varstar$} 

\usepackage{vgrid}

\makeatletter
\newcommand{\starlet}{% 
  \par
  \vskip -0.5pt
  \noindent
  \parbox{\linewidth}{
    \begin{center}
      \aster
    \end{center}
  }
  \par
  \vskip 0.6pt % make it fit the grid
  \noindent
}
\makeatother

\begin{document}
\kant[1]
\starlet
\kant[1]
\end{document}

Responder1

Sugiro usar \centeringem vez de, {center}já que o primeiro não adiciona espaço vertical e permite controlar exatamente o espaçamento, sem a necessidade de mexer nas correções. Para usar \centeringapenas uma parte do seu documento, coloque-o em um grupo, ou seja {…}, e adicione um \pardepois dele, masdentroo grupo. Em seguida, use \(add)vspacewith \baselineskipas valor para adicionar linhas em branco antes e depois.

\usepackage{adjustbox,noindentafter}

\newcommand{\starlet}{%
  {% 
    \par
    \addvspace{\baselineskip}%
    \centering
    \adjustbox{raise=1pt}{\aster}%
    \par
    \vspace{\baselineskip}%
  }%
  \NoIndentAfterThis
}

Algumas notas

  • \addvspaceverifica se já existe algum espaço antes e adiciona-o somente quando necessário. No final da definição você pode usar o normal, \vspacepois não haverá espaço antes dele.
  • \NoIndentAfterThis(needs noindentafter) é a maneira de evitar o recuo após o comando. Isso deve estar fora do grupo. (verCódigo confiável para \noindent automático após ambientes específicos?)
  • Se você quiser centralizar \asterna linha, uma maneira é usar \adjustbox{raise=1pt}{\aster}(needs adjustbox) ou outra maneira é \raisbox{1pt}{\aster}(needs graphicx).
  • O \makeatletter/otherpar não é necessário aqui, pois você não usa comandos contendo @como parte de seu nome.

Para centralizar uma única linha (caixa), também se pode usar \hspacewith \fillcomo valor:

\newcommand{\starletII}{%
  \par
  \addvspace{\baselineskip}%
  \hspace*{\fill}% without the star space would be ignored it it
         % begins/ends a line
  \adjustbox{raise=1pt}{$\star$}%
  \hspace*{\fill}
  \par
  \vspace{\baselineskip}%
  \NoIndentAfterThis
}

Responder2

(Resposta atualizada para incorporar o fato de que \varstaré necessário o uso de , em vez de algum símbolo de asterisco arbitrário.)

Suponho que uma maneira idiomática do LaTeXy de criar uma linha de altura em branco \baselineskipseja digitar \par\null\par. Para centralizar um determinado símbolo, pode-se usar o comando "primitivo" do TeX \centerline. No código abaixo, o comando \starletcoloca a instrução \centerline{$\varstar$}entre dois conjuntos de \par\null\parinstruções. A altura total da saída gerada por \starleté exatamente 3\baselineskip, preservando automaticamente qualquer alinhamento de grade que possa estar no lugar.

insira a descrição da imagem aqui

\documentclass[twocolumn]{article}
\usepackage{mathabx}  % for \varstar symbol

\newcommand\starlet{%
  \par\null\par%  a blank line of height \baselineskip
  \centerline{$\varstar$}%  center-set the ask
  \par\null\par}% another blank line of height \baselineskip

%% Just for this example:
  \setlength\parindent{0pt} 
  \usepackage[textwidth=2.95in,showframe]{geometry}

\begin{document}
Some meaningless fluff.

Some meaningless fluff.

Some meaningless fluff.

Some meaningless fluff.

Some meaningless fluff.

\newpage  % induce a column break
Some meaningless fluff.

\starlet

Some meaningless fluff.
\end{document}

informação relacionada