中央揃えの「スターレット」(アスタリスク)を印刷する、より慣用的な方法はありますか?

中央揃えの「スターレット」(アスタリスク)を印刷する、より慣用的な方法はありますか?

出版社が「スターレット」(アスタリスク)と呼ぶものを印刷する必要があります。

以下のコードを考案しましたが、それが健全なコードであるかどうか、つまり、後で他のコマンドやテキスト ストリーム内で問題が発生しないかどうかはわかりません。

これは、特殊文字 (この場合は ) を中央に配置し、上下に 1 行の空白行を入れて印刷する慣用的な方法mathabxですか\varstar?

\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その後に を追加しますが、内部グループ。次に、値として with を使用して\(add)vspace\baselineskip前後に空白行を追加します。

\usepackage{adjustbox,noindentafter}

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

いくつかのメモ

  • \addvspace前に既にスペースがあるかどうかをチェックし、必要な場合にのみ追加します。定義の最後では、\vspace前にスペースがないため、通常の方法を使用できます。
  • \NoIndentAfterThis(必要noindentafter)はコマンドの後のインデントを防ぐ方法です。これはグループの外側になければなりません。(参照特定の環境の後に自動的に \noindent を実行するための信頼できるコードはありますか?
  • \aster行の中央揃えをしたい場合、 \adjustbox{raise=1pt}{\aster}(needs ) を使用する方法と、 (needs ) を使用するadjustbox方法があります。\raisbox{1pt}{\aster}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(回答は、任意のアスタリスク記号ではなく、の使用が必須であるという事実を組み込むように更新されました。)

\baselineskip高さ の空白行を作成するための LaTeXy の慣用的な方法は、 と入力することだと思います\par\null\par。特定のシンボルを中央揃えにするには、TeX の「プリミティブ」コマンド を使用できます\centerline。以下のコードでは、 コマンドが\starlet命令を\centerline{$\varstar$}2 つの命令セットの間に挟んでいます\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}

関連情報