Ich versuche, ein ziemlich einfaches Tikz-Bild zu zeichnen, das aus einigen sehr genau definierten Ebenen besteht. Mein Code ist
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{plotmarks}
\newlength{\offset}
\setlength{\offset}{4.72983cm}
\begin{document}
\begin{tikzpicture}[y=1cm]
%axis
\draw (-3,0) -- coordinate (y axis mid) (-3,20);
%ticks
\foreach \y in {0,2,...,20}
\draw (-3,\y) -- (-3.25,\y)
node[anchor=east] {\y};
%labels
\node[rotate=90, above=0.8cm] at (y axis mid) {\textbf{Energy[MeV]}};
%input channel
\draw (-2,12.8435) -- (0,12.8435);
\node[above=0.2cm] at (-1,12.8435) {$p+{}^{19}F$};
%compound nucleus
\draw[very thick] (2,20) -- (2,0) -- (5,0) -- (5,20);
\node[below=0.1cm] at (3.5,0) {${}^{20}Ne$};
%output channel
\draw (7,\offset) -- (9,4.72983);%ground state
\draw (7,5.98765+\offset) -- (9,5.98765+4.72983);%1st state
\end{tikzpicture}
\end{document}
Wie Sie sehen, habe ich eine Länge namens eingestellt offset
. Das Problem ist, dass das Bild derzeit ziemlich groß ist. Ich möchte es nur auf skalieren y axis
. Wenn ich \begin{tikzpicture}[y=1cm]
auf ändere, \begin{tikzpicture}[y=.6cm]
erhalte ich die ideale y
Größe, aber die Ebenen auf output channel
sind nicht richtig eingestellt.
Gibt es eine Möglichkeit, eine Länge zu definieren, tikz
die sich an die Längen von Tikz anpasst? Ich meine, dass die Standardlänge von Tikz 1cm
. Bei der Verwendung \draw (0,0) -- (0,1);
gibt man nicht an, dass man von cm spricht. Wenn die globale Länge geändert wird (z. B. `[y=0,6]), hat die vorherige Zeile eine Länge von 0,6 cm. Ist so etwas möglich?
Antwort1
Bemerkungen
Verwenden Sie ein Makro, um den reinen Wert zu speichern, sodass tikz
er mit seinen eigenen Einheiten skaliert werden kann.
Implementierung
\documentclass[tikz]{standalone}
\usetikzlibrary{plotmarks}
\newcommand{\offset}{4.72983}
\begin{document}
\begin{tikzpicture}[y=0.2cm]
%axis
\draw (-3,0) -- coordinate (y axis mid) (-3,20);
%ticks
\foreach \y in {0,2,...,20}
\draw (-3,\y) -- (-3.25,\y)
node[anchor=east] {\y};
%labels
\node[rotate=90, above=0.8cm] at (y axis mid) {\textbf{Energy[MeV]}};
%input channel
\draw (-2,12.8435) -- (0,12.8435);
\node[above=0.2cm] at (-1,12.8435) {$p+{}^{19}F$};
%compound nucleus
\draw[very thick] (2,20) -- (2,0) -- (5,0) -- (5,20);
\node[below=0.1cm] at (3.5,0) {${}^{20}Ne$};
%output channel
\draw (7,\offset) -- (9,4.72983);%ground state
\draw (7,5.98765+\offset) -- (9,5.98765+4.72983);%1st state
\end{tikzpicture}
\end{document}