Gibt es eine bessere idiomatische Möglichkeit, ein zentriertes „Sternchen“ (Asterisk) zu drucken?

Gibt es eine bessere idiomatische Möglichkeit, ein zentriertes „Sternchen“ (Asterisk) zu drucken?

Ich muss etwas drucken, das der Verlag als „Sternchen“ (Sternchen) bezeichnet.

Ich habe den folgenden Code entwickelt, bin mir aber nicht sicher, ob es sich um einen Soundcode handelt, d. h., ob er später bei anderen Befehlen und im Textstrom keine Probleme verursacht.

Ist das die idiomatische Art, ein Sonderzeichen (in diesem Fall mathabx„s“ \varstar) zentriert und mit einer Leerzeile darüber und darunter zu drucken?

Ich verwende es \vgrid, um zu überprüfen, ob die vertikale Ausrichtung im Hinblick auf das darunterliegende Raster so präzise wie möglich erhalten bleibt.

\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}

Antwort1

Ich schlage vor, \centeringanstelle von zu verwenden {center}, da ersteres keinen vertikalen Abstand hinzufügt und Sie den Abstand genau steuern können, ohne mit Korrekturen herumfummeln zu müssen. Um es \centeringnur für einen Teil Ihres Dokuments zu verwenden, schließen Sie es in eine Gruppe ein, z. B. {…}, und fügen Sie \pardanach ein hinzu, aberinnendie Gruppe. Verwenden Sie dann „ \(add)vspacemit“ \baselineskipals Wert, um davor und danach Leerzeilen einzufügen.

\usepackage{adjustbox,noindentafter}

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

Einige Notizen

  • \addvspaceprüft, ob davor schon Leerzeichen vorhanden sind und fügt diese nur bei Bedarf hinzu. Am Ende der Definition kann das normale Zeichen verwendet werden, \vspaceda davor kein Leerzeichen vorhanden ist.
  • \NoIndentAfterThis(braucht noindentafter) ist die Möglichkeit, die Einrückung nach dem Befehl zu verhindern. Dies muss außerhalb der Gruppe erfolgen. (sieheZuverlässiger Code für automatisches \noindent nach bestimmten Umgebungen?)
  • Wenn Sie in der Zeile zentrieren möchten , können Sie entweder (erforderlich ) oder (erforderlich ) \asterverwenden .\adjustbox{raise=1pt}{\aster}adjustbox\raisbox{1pt}{\aster}graphicx
  • Das \makeatletter/otherPaar wird hier nicht benötigt, da Sie keine Befehle verwenden, die @als Teil ihres Namens enthalten.

Um eine einzelne Linie (Box) zu zentrieren, kann man auch \hspacewith \fillals Wert verwenden:

\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
}

Antwort2

(Die Antwort wurde aktualisiert, um der Tatsache Rechnung zu tragen \varstar, dass die Verwendung von anstelle eines beliebigen Sternchensymbols erforderlich ist.)

Ich nehme an, dass eine idiomatische LaTeXy-Methode zum Erstellen einer leeren Zeile mit der Höhe \baselineskipdarin besteht, einzugeben \par\null\par. Um ein bestimmtes Symbol zu zentrieren, könnte man den TeX-„primitiven“ Befehl verwenden \centerline. Im folgenden Code \starletfügt der Befehl die Anweisung \centerline{$\varstar$}zwischen zwei Anweisungssätze ein \par\null\par. Die Gesamthöhe der von generierten Ausgabe \starletbeträgt genau 3\baselineskip, wobei automatisch jede eventuell vorhandene Rasterausrichtung beibehalten wird.

Bildbeschreibung hier eingeben

\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}

verwandte Informationen