疑問符を垂直方向の中央に配置するには、次の環境をどのように変更すればよいでしょうか (疑問符の間隔はテキストの長さによって異なります)?
質問ボックスを生成するコードは次のとおりです。
\documentclass[]{article}
\usepackage{tikz}
\usepackage{environ}
\newtheorem{question}{Question}
\NewEnviron{myq}
{
\noindent\fcolorbox{black}{gray!10}{
\tikz\node[
font=\fontfamily{ppl}\fontsize{1cm}{1.2cm}\selectfont]{?};
\parbox{\textwidth}{
\vspace*{-2mm}
\begin{question}
\BODY
\end{question}
}
}
}
\begin{document}
\begin{myq}
Here is some question in a gray box,
with a question mark to the left of it.
The thing is, I'd like the question mark to be
centered vertically within the box. How do I
do that?
\end{myq}
\end{document}
もともと、ボックスにテキストを配置する方法、テキストをグレーにする方法、左側に大きな疑問符を配置する方法などについて質問がありましたが、それらはすべて解決しました (オンラインで検索した後)。疑問符を垂直中央に配置することは、まだ解決していない最後の部分です。
答え1
?
このコードを試してください。 パッケージを使用して計算された記号の幅を持つ parbox に記号を挿入しますcalc
。 2 つの parbox を合計幅で並べて配置します\linewidth
。
\documentclass[]{article}
\usepackage{tikz}
\usepackage{environ}
\usepackage{showframe}% only to show the margins
\usepackage{calc}% added <<<<<<<<<<<
\newlength{\signwidth} % added <<<<<<<<<<<
\setlength{\signwidth}{\widthof{\fontfamily{ppl}\fontsize{1cm}{1.2cm}\selectfont ?\ }}
\newtheorem{question}{Question}
\NewEnviron{myq}
{\noindent\fcolorbox{black}{gray!10}{%
\parbox{\signwidth}{% added <<<<<<<<<
\vspace*{-2mm}% OPTIONAL <<<<
\tikz\node[font=\fontfamily{ppl}\fontsize{1cm}{1.2cm}\selectfont]{?};
}
\parbox{\dimexpr\linewidth-\signwidth-\marginparsep-2\fboxrule}{%changed <<<
\vspace*{-2mm}
\begin{question}
\BODY
\end{question}
}
}
}
\begin{document}
\begin{myq}
Here is some question in a gray box,
with a question mark to the left of it.
The thing is, I'd like the question mark to be
centered vertically within the box. How do I
do that?
\end{myq}
\end{document}