我对 \fbox 命令有疑问:我想将两个右箭头放在框上,以便这两个箭头从框的边框开始。我已经创建了框和两个箭头,但如果将它们合并在一起,框边框的末端和两个箭头的起点之间就会出现一个令人讨厌的空间,如果您编译此 MWE,就会看到这一点:
\documentclass[a4paper,10pt]{article} \usepackage[english]{babel} \usepackage[utf8]{inputenc} \usepackage[T1]{fontenc} \usepackage{amsmath} \usepackage{amssymb}
\begin{document}
\title{TEST 01} \maketitle
\newcommand*{\tto}{\!{\begin{array}{c}\rightarrow\\\rightarrow\end{array}}}
\newcommand*{\block}[1] {\fbox{\scriptsize ${\begin{array}{c}#1\end{array}}$}}
Hello $\block{test01 \\ test02}\tto$.
\end{document}
我怎样才能将两个箭头粘贴到 fbox 的右边框上?
答案1
这是一个tikz
版本。该\Block
宏接受三个选项,允许您自定义框的绘制/填充/位置、箭头的长度以及框中显示的文本。
代码:
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{calc}
\begin{document}
\newcommand*{\Block}[3][]{%
% #1 = tikz options
% #2 = length of arrows
% #3 = node text
\begin{tikzpicture}[overlay]
\node [align=left, draw=black, right, anchor=south west, font=\scriptsize, #1] (B) {#3};
\draw [-latex, thick] ($(B.south east)!0.25!(B.north east)$)-- ++(#2,0);
\draw [-latex, thick] ($(B.south east)!0.75!(B.north east)$)-- ++(#2,0);
\end{tikzpicture}
}%
Hello \Block[fill=cyan!20]{1.0cm}{test01 \\ test02}
\bigskip
Hello \Block[fill=green!20,draw=red,line width=1pt, anchor=west]{1.5cm}{test01 \\ test02}
\end{document}
答案2
这是由于数组左侧自动插入空格所致。您可以使用以下方法设置自己的空格@
(请参阅不太简短的指南了解详情)。
\documentclass[a4paper,10pt]{article}
\newcommand*{\tto}{\!{\begin{array}{@{\hspace{1pt}}c}\rightarrow\\\rightarrow\end{array}}}
\newcommand*{\block}[1] {\fbox{\scriptsize ${\begin{array}{c}#1\end{array}}$}}
\begin{document}
Hello $\block{test01 \\ test02}\tto$.
\end{document}
话虽如此,使用 tikz 可能会获得更好的结果。