emath saloon

新規発言一覧最新記事過去一覧検索HOME

No.1295  emath BBS #12721 の件
発言者: 飯島 徹
発言日: 2015 06/06 23:58
TikZ を用いた案で左側の「練習」と右側の最初の行のベースラインを揃えたい
ものと仮定して作りました.
dviout は TikZ に対応していないので PDF にしてご覧ください.

%------------------------------------------------------
\documentclass[a4j,uplatex,dvipdfmx]{jsarticle}
\usepackage{etex,tikz}
\begin{document}
tikzpicture 環境で「練習」の base と enumerate 環境の base を揃える.
\def\labelenumi{%
 \begin{tikzpicture}[baseline=(O.base),yscale=.5]
  \fill[cyan,opacity=.25](0,1)rectangle(1,2);
  \draw(0,0)grid(1,2);
  \node at(.5,.5){\theenumi};
  \node(O)at(.5,1.5){練習};%このノードのベースラインを基準にしている
 \end{tikzpicture}%
}%
\begin{verbatim}
\def\labelenumi{%
 \begin{tikzpicture}[baseline=(O.base),yscale=.5]
  \fill[cyan,opacity=.25](0,1)rectangle(1,2);
  \draw(0,0)grid(1,2);
  \node at(.5,.5){\theenumi};
  \node(O)at(.5,1.5){練習};%このノードのベースラインを基準にしている
 \end{tikzpicture}%
}%
\end{verbatim}
\def\repeatstrings#1#2{%
 \foreach\S in {1,...,#1}{%
  #2%
 }%
}%
\begin{enumerate}
 \item \repeatstrings{90}{ほげ}
 \item \repeatstrings{90}{ふが}
 \item \repeatstrings{60}{あわわ}
\end{enumerate}
これでは \verb+\labelenumi+ の tikzpicture 環境の深さの分だけ
1行目と2行目が離れてしまうのでちょっと細工をする.
tikzpicture 環境の高さを測って,その高さと同じ箱 \verb+\vbox to\ht0{}+ を用意する.
その中に tikzpicture 環境(\verb+\box0+)を戻す.
ただし,深さ(\verb+\dp0+)の分だけ \verb+\vbox to\ht0{}+ から下にはみ出すので,
エラーが出ないように負の長さも許容する無限大の長さのグルー \verb+\vss+ を
tikzpicture 環境の下に配置する.
\def\labelenumi{%
 \setbox0=\hbox{%
  \begin{tikzpicture}[baseline=(O.base),yscale=.5]
   \fill[yellow,opacity=.5](0,1)rectangle(1,2);
   \draw(0,0)grid(1,2);
   \node at(.5,.5){\theenumi};
   \node(O)at(.5,1.5){練習};
  \end{tikzpicture}}%
 \vbox to\ht0{\box0\vss}%
}%
\begin{verbatim}
\def\labelenumi{%
 \setbox0=\hbox{%
  \begin{tikzpicture}[baseline=(O.base),yscale=.5]
   \fill[yellow,opacity=.5](0,1)rectangle(1,2);
   \draw(0,0)grid(1,2);
   \node at(.5,.5){\theenumi};
   \node(O)at(.5,1.5){練習};
  \end{tikzpicture}}%
 \vbox to\ht0{\box0\vss}%
}%
\end{verbatim}
\begin{enumerate}
 \setcounter{enumi}{3}%
 \item \repeatstrings{90}{ほげ}
 \item \repeatstrings{90}{ふが}
 \item \repeatstrings{60}{あわわ}
\end{enumerate}
\verb+\foreach+ コマンドは emath スタイル群と tikz でバッティングするので
併用する際は各自工夫をすることになる.
\end{document}

▼関連発言

1295:emath BBS #12721 の件 [飯島 徹] 06/06 23:58
 └1296:Re:emath BBS #12721 の件 [飯島 徹] 06/07 00:42
  └1297:Re[2]:emath BBS #12721 の件 [飯島 徹] 06/07 05:27<-last

Pass 保存


CGIROOM