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, \centering
anstelle 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 \centering
nur für einen Teil Ihres Dokuments zu verwenden, schließen Sie es in eine Gruppe ein, z. B. {…}
, und fügen Sie \par
danach ein hinzu, aberinnendie Gruppe. Verwenden Sie dann „ \(add)vspace
mit“ \baselineskip
als 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
\addvspace
prü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,\vspace
da davor kein Leerzeichen vorhanden ist.\NoIndentAfterThis
(brauchtnoindentafter
) 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 )
\aster
verwenden .\adjustbox{raise=1pt}{\aster}
adjustbox
\raisbox{1pt}{\aster}
graphicx
- Das
\makeatletter/other
Paar 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 \hspace
with \fill
als 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 \baselineskip
darin besteht, einzugeben \par\null\par
. Um ein bestimmtes Symbol zu zentrieren, könnte man den TeX-„primitiven“ Befehl verwenden \centerline
. Im folgenden Code \starlet
fügt der Befehl die Anweisung \centerline{$\varstar$}
zwischen zwei Anweisungssätze ein \par\null\par
. Die Gesamthöhe der von generierten Ausgabe \starlet
beträgt genau 3\baselineskip
, wobei automatisch jede eventuell vorhandene Rasterausrichtung beibehalten wird.
\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}