我有以下代码来模拟 TI83 计算器屏幕,但我无法添加一些我想添加的东西。
我想
\overline{x}
在文本模式下制作。我试过了\={x}
,虽然这在 LaTeX 中有效,但在我们的系统上却不起作用。关于如何x
在文本模式下制作上划线,还有其他想法吗?我也想尝试一下这个:
\def\input{\calcinput{\ Inpt:Data\ Stats}}
并将单词设置
Stats
为白色,并在其后面加上纯黑色背景。
有什么想法吗?
\documentclass[11pt]{scrartcl}
\usepackage{tikz}
\usepackage{xparse}
\newcommand\tsurd{\ensuremath{\sqrt{\phantom{i}}}}
\newcommand\txbar{\ensuremath{\overline{x}}}
\ExplSyntaxOn
\NewDocumentCommand{\calcinput}{m}
{
\tl_map_inline:nn { #1 } { ##1 \hspace{0pt} }
}
\ExplSyntaxOff
\begin{document}
\def\tinterval{\calcinput{TInterval}}
\def\input{\calcinput{\ Inpt:Data\ Stats}}
\def\xbar{\calcinput{\ \txbar:10}}
\def\s{\calcinput{\ Sx:2.345678}}
\def\n{\calcinput{\ n:12}}
\def\cl{\calcinput{\ C-Level:0.95}}
\def\calc{\calcinput{\ Calculate}}
\begin{center}
\begin{tikzpicture}[font=\large\ttfamily]
\draw (0,0) rectangle (5,-4);
\node[align=flush left,text width =5cm,
anchor=north west,inner sep=1pt] (tinterval) {\tinterval};
\node[align=flush left,text width =5cm,
anchor=north west,inner sep=1pt] (input) at (tinterval.south west) {\input};
\node[align=flush left,text width =5cm,
anchor=north west,inner sep=1pt] (xbar) at (input.south west) {\xbar};
\node[align=flush left,text width =5cm,
anchor=north west,inner sep=1pt] (s) at (xbar.south west) {\s};
\node[align=flush left,text width =5cm,
anchor=north west,inner sep=1pt] (n) at (s.south west) {\n};
\node[align=flush left,text width =5cm,
anchor=north west,inner sep=1pt] (cl) at (n.south west) {\cl};
\node[align=flush left,text width =5cm,
anchor=north west,inner sep=1pt] (calc) at (cl.south west) {\calc};
\end{tikzpicture}
\end{center}
\end{document}
答案1
您可以使用包\text{x}
中的功能在文本模式下amsmath
排版,并获取带有黑色背景的白色文本:x
\colorbox{black}{\textcolor{white}{Stats}}
笔记:
- 我会推荐你不是用作
\input
宏名。这是预定义的 LaTeX 宏。因此,为了尽量减少此类错误,我建议您使用 LaTeX\newcommand
而不是 TeX\def
。我已更新下面的 MWE 以反映这一点。 另外,如果您使用
\tikzset
以下方式定义样式:\tikzset{My Node Style/.style={ align=flush left,text width =5cm, anchor=north west,inner sep=1pt} }
您可以大大简化您的代码,正如我下面所做的那样。
代码:
\documentclass[11pt]{scrartcl}
\usepackage{tikz}
\usepackage{xparse}
\usepackage{xcolor}
\usepackage{amsmath}
\newcommand\tsurd{\ensuremath{\sqrt{\phantom{i}}}}
\newcommand\txbar{\ensuremath{\overline{\text{x}}}}
\ExplSyntaxOn
\NewDocumentCommand{\calcinput}{m}
{
\tl_map_inline:nn { #1 } { ##1 \hspace{0pt} }
}
\ExplSyntaxOff
\begin{document}
\newcommand*{\tinterval}{\calcinput{TInterval}}
\newcommand*{\Inpt}{\calcinput{\ Inpt:Data\ {\colorbox{black}{\textcolor{white}{Stats}}}}}
\newcommand*{\InptData}{\calcinput{\ Inpt:Data\ }}
\newcommand*{\Stat}{\calcinput{Stats}}
\newcommand*{\xbar}{\calcinput{\ \txbar:10}}
\newcommand*{\s}{\calcinput{\ Sx:2.345678}}
\newcommand*{\n}{\calcinput{\ n:12}}
\newcommand*{\cl}{\calcinput{\ C-Level:0.95}}
\newcommand*{\calc}{\calcinput{\ Calculate}}
\tikzset{My Node Style/.style={
align=flush left,text width =5cm,
anchor=north west,inner sep=1pt}
}
\begin{center}
\begin{tikzpicture}[font=\large\ttfamily]
\fboxsep=0.5pt
\coordinate (Origin) at (0,0);
\draw (Origin) rectangle (5,-4);
\node[My Node Style] (tinterval) at (Origin) {\tinterval};
\node[My Node Style] (Inpt) at (tinterval.south west) {\Inpt};
\node[My Node Style] (xbar) at (Inpt.south west) {\xbar};
\node[My Node Style] (s) at (xbar.south west) {\s};
\node[My Node Style] (n) at (s.south west) {\n};
\node[My Node Style] (cl) at (n.south west) {\cl};
\node[My Node Style] (calc) at (cl.south west) {\calc};
\end{tikzpicture}
\end{center}
\end{document}