印出居中「小星星」(星號)的較佳慣用方法?

印出居中「小星星」(星號)的較佳慣用方法?

我需要列印出版商所說的“小明星”(星號)。

我設計了下面的程式碼,但我不確定它是否是一個健全的程式碼,即它不會在以後的其他命令和文字流中引起問題。

這是列印特殊字元(在本例中mathabx為 s \varstar)、居中且上下各有 1 個空白行的慣用方式嗎?

我使用它是\vgrid為了檢查相對於底層網格盡可能精確地保留垂直對齊。

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

答案1

我建議使用\centering而不是{center}因為前者不增加垂直空間,讓您可以精確地控制間距,而無需進行修正。要\centering僅用於文件的一部分,請將其包含在一個群組中,即,並在其後面{…}添加\par裡面群組。然後使用\(add)vspacewith \baselineskipas value 在前後新增空白行。

\usepackage{adjustbox,noindentafter}

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

一些筆記

  • \addvspace檢查前面是否已經有一些空間,並僅在必要時添加它。在定義的末尾,您可以使用法線,\vspace因為它之前不會有任何空格。
  • \NoIndentAfterThis(needs noindentafter) 是防止命令後縮排的方法。這必須是組外的。 (看在特定環境後自動 \noindent 的可靠程式碼?
  • 如果您想在線居中\aster,一種方法是使用\adjustbox{raise=1pt}{\aster}(needs adjustbox),另一種方法是\raisbox{1pt}{\aster}(needs graphicx)。
  • \makeatletter/other此處不需要該對,因為您不使用包含@作為其名稱一部分的命令。

要讓單行(框)居中,也可以使用\hspacewith\fill作為值:

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

答案2

(更新答案以納入以下事實:\varstar需要使用 ,而不是某些任意星號符號。)

我想建立高度空白行的慣用 LaTeXy 方法\baselineskip是鍵入\par\null\par。要居中設定給定符號,可以使用 TeX“primitive”命令\centerline。在下面的程式碼中,該命令\starlet將指令夾\centerline{$\varstar$}在兩組\par\null\par指令之間。產生的輸出的總高度\starlet恰好為3\baselineskip,自動保留可能到位的任何網格對齊方式。

在此輸入影像描述

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

相關內容