问题是
问题合理。答案是齐平。矩形的尺寸为 5cm 和 4cm。问题的长度未知。
手动
\documentclass[11pt]{scrartcl}
\usepackage{tikz}
\begin{document}
\def\quest{1/(4.2+5.4)-(3.5+4.7)\\/9}
\def\ans{-0.806944444}
\begin{tikzpicture}[font=\Large]
\draw (0,0) rectangle (5,-4);
\node[align=justify,text width =5cm-1ex,
anchor=north west,inner sep=1pt] (qu) {\quest};
\node[align=right,text width =5cm-1ex,
anchor=north west,inner sep=1pt] (an) at (qu.south west) {\ans};
\end{tikzpicture}
\end{document}
我得到了
但是如何自动获得它呢?
更新信息
在列表 pgf/tikz 上也问了同样的问题。Mark Wibrow(曾参与 pgfmath 和 pgf 其他部分的开发)给出了一个漂亮的解决方案:
\documentclass{article}
\usepackage{tikz}
\begin{document}
\def\showsum#1{\ifx#1=\par\hfill\else#1\hskip0.1ex
minus0.5ex\expandafter\showsum\fi}
\tikzset{calculator screen/.style={
inner sep=2pt,
fill=blue!20,
font=\huge\tt,
execute at begin node={\parindent=0pt\hsize=5cm\vbox to4cm\bgroup},
execute at end node=\vfill\egroup
}}
\tikz\node[calculator screen]
{\showsum 1/(4.2+5.4)-(3.5+4.7)/9 +3+2+1= -.80694444};
\end{document}
非常令人印象深刻
答案1
我只需在任意两个标记之间添加一个零跳过,然后设置正确的问题:
\documentclass{article}
\usepackage{tikz,xparse}
\ExplSyntaxOn
\NewDocumentCommand{\calcinput}{m}
{
\tl_map_inline:nn { #1 } { ##1 \hspace{0pt} }
}
\ExplSyntaxOff
\begin{document}
\def\quest{\calcinput{1/(4.2+5.4)-(3.5+4.7)/9}}
\def\ans{\calcinput{-0.806944444}}
\begin{tikzpicture}[font=\Large\ttfamily]
\draw (0,0) rectangle (5,-4);
\node[align=flush left,text width =5cm,
anchor=north west,inner sep=1pt] (qu) {\quest};
\node[align=right,text width =5cm,
anchor=north west,inner sep=1pt] (an) at (qu.south west) {\ans};
\end{tikzpicture}
\begin{tikzpicture}[font=\Large\ttfamily]
\draw (0,0) rectangle (4,-4);
\node[align=flush left,text width =4cm,
anchor=north west,inner sep=1pt] (qu) {\quest};
\node[align=right,text width =4cm,
anchor=north west,inner sep=1pt] (an) at (qu.south west) {\ans};
\end{tikzpicture}
\end{document}
我认为,窗口宽度应该是等宽字体 .5em 的整数倍。