我现在有这个(用 LaTeX 完成):
我想要得到这个(用 OpenOffice 完成):
我怎样才能得到那些大箭?
这完整文档在此,图中部分为:
\documentclass[a4paper,9pt]{scrartcl}
\usepackage{amssymb, amsmath} % needed for math
\usepackage[utf8]{inputenc} % this is needed for umlauts
\usepackage[ngerman]{babel} % this is needed for umlauts
\usepackage[T1]{fontenc} % this is needed for correct output of umlauts in pdf
\usepackage[margin=2.5cm]{geometry} %layout
\begin{document}
\begin{tabular}{lll}
\textbf{Schritt 1}: euklidischer Algorithmus & & \textbf{Schritt 2}: nach Rest auflösen\\
$91=1 \cdot 71 + 21$ & $\rightarrow$ & $21 = 92 - 71$\\
$71=3 \cdot 21 + 8$ & $\rightarrow$ & $8 = 71 - 3 \cdot 21$\\
$21=2 \cdot 8 + 5$ & $\rightarrow$ & $5 = 21 - 2 \cdot 8$\\
$ 8=1 \cdot 5 + 3$ & $\rightarrow$ & $3 = 8 - 1 \cdot 5$\\
$ 5=1 \cdot 3 + 2$ & $\rightarrow$ & $2 = 5 - 1 \cdot 3$\\
$ 3=1 \cdot 2 + 1$ & $\rightarrow$ & $1 = 3 - 1 \cdot 2$
\end{tabular}
\textbf{Schritt 3}: so lange Reste einsetzen, bis eine Linearkombination der Form
$1 = x \cdot 92 + y \cdot 71$ gefunden ist:
\end{document}
(如果有比使用表格更好的方法,例如align*
,我可以改变它。但是,无论如何我不知道如何获得那些大箭头。)
答案1
首先,这是怎样的?
我的策略:
TikZ
在表格第一行的两列中放置一个箭头。smash
箭头,这样它们就不会影响表格的布局。将点放在
(-2,0)
里面boundingbox
——这个技巧可以将每个箭头向右推 2 厘米。调整 的
baseline
,tikzpicture
将箭头稍微向上或向下移动。
代码:
\documentclass[a4paper,9pt]{scrartcl}
\usepackage{amssymb, amsmath} % needed for math
\usepackage[utf8]{inputenc} % this is needed for umlauts
\usepackage[ngerman]{babel} % this is needed for umlauts
\usepackage[T1]{fontenc} % this is needed for correct output of umlauts in pdf
\usepackage[margin=2.5cm]{geometry} %layout
\usepackage{tikz}
\usetikzlibrary{shapes.arrows}
\begin{document}
\def\myDownArrow{\smash{
\begin{tikzpicture}[baseline=-2mm]
\useasboundingbox (-2,0);
\node[single arrow,draw=black,fill=black!10,minimum height=2cm,shape border rotate=270] at (0,-1) {};
\end{tikzpicture}
}}
\def\myUpArrow{\smash{
\begin{tikzpicture}[baseline=-1mm]
\useasboundingbox (-2,0);
\node[single arrow,draw=black,fill=black!10,minimum height=2cm,shape border rotate=90] at (0,-1) {};
\end{tikzpicture}
}}
\begin{tabular}{lll}
\textbf{Schritt 1}: euklidischer Algorithmus & & \textbf{Schritt 2}: nach Rest auflösen\\
$91=1 \cdot 71 + 21$ \myDownArrow & $\rightarrow$ & $21 = 92 - 71$ \myUpArrow\\
$71=3 \cdot 21 + 8$ & $\rightarrow$ & $8 = 71 - 3 \cdot 21$\\
$21=2 \cdot 8 + 5$ & $\rightarrow$ & $5 = 21 - 2 \cdot 8$\\
$ 8=1 \cdot 5 + 3$ & $\rightarrow$ & $3 = 8 - 1 \cdot 5$\\
$ 5=1 \cdot 3 + 2$ & $\rightarrow$ & $2 = 5 - 1 \cdot 3$\\
$ 3=1 \cdot 2 + 1$ & $\rightarrow$ & $1 = 3 - 1 \cdot 2$
\end{tabular}
\textbf{Schritt 3}: so lange Reste einsetzen, bis eine Linearkombination der Form
$1 = x \cdot 92 + y \cdot 71$ gefunden ist:
\end{document}