\documentclass{article}
\usepackage{amsmath}
\usepackage{amsthm}
\usepackage{thmtools}
\usepackage{qtree}
\declaretheorem[name=Example,qed=\ensuremath{\triangleleft}]{example}
\declaretheorem[name=Example2]{example2}
\begin{document}
\begin{example}
Bla:
\Tree [.cons [.s [.s [.s 0 ] ] ] [.cons [.s 0 ] nil ] ]
\end{example}
\begin{example2}
Bla:
\Tree [.cons [.s [.s [.s 0 ] ] ] [.cons [.s 0 ] nil ] ]
\end{example2}
\end{document}
第二个居中,第一个不居中。为什么?该怎么办?
最后,我想将几棵树水平对齐,如下所示:
\begin{example2}
Bla:
\Tree [.nil ]
\Tree [.cons 0 nil ]
\Tree [.cons [.s [.s [.s 0 ] ] ] [.cons [.s 0 ] nil ] ]
\end{example2}
答案1
来自以下文档qtree
:
Qtree
[t]
尝试将树的最顶部标签与文本的基线对齐,类似于对齐选项的效果\parbox
。要将树垂直居中在基线上,请将整个树放在表格环境中。
你有两种策略:
\documentclass{article}
\usepackage{amsmath}
\usepackage{amsthm}
\usepackage{thmtools}
\usepackage{qtree}
\declaretheorem[name=Example,qed=\ensuremath{\triangleleft}]{example}
\begin{document}
\begin{example}
Bla:
\raisebox{\depth}{%
\Tree [.cons [.s [.s [.s 0 ] ] ] [.cons [.s 0 ] nil ] ]%
}
\end{example}
\end{document}
第二种策略是使用tikz-qtree
与共享相同语法的qtree
,但功能更强大:
\documentclass{article}
\usepackage{amsmath}
\usepackage{amsthm}
\usepackage{thmtools}
\usepackage{tikz-qtree}
\declaretheorem[name=Example,qed=\ensuremath{\triangleleft}]{example}
\begin{document}
\begin{example}
Bla:
\begin{tikzpicture}
\Tree [.cons [.s [.s [.s 0 ] ] ] [.cons [.s 0 ] nil ] ]
\end{tikzpicture}
\end{example}
\end{document}
两种情况下的放置都不是很完美,因此可能需要进行一些小的调整。
为了居中,使用equation*
环境和\qedhere
功能:
\documentclass{article}
\usepackage{amsmath}
\usepackage{amsthm}
\usepackage{thmtools}
\usepackage{tikz-qtree}
\declaretheorem[name=Example,qed=\ensuremath{\triangleleft}]{example}
\begin{document}
\begin{example}
Bla:
\begin{equation*}
\begin{tikzpicture}
\Tree [.cons [.s [.s [.s 0 ] ] ] [.cons [.s 0 ] nil ] ]
\end{tikzpicture}}\qedhere
\end{equation*}
\end{example}
\end{document}