ラベルを含めるためにセグメントにギャップを作るにはどうしたらよいのでしょうか? 私のサンプル コードでは、理想的には、ラベル '16' を終了バー セグメントの中央のギャップに配置します。
また、測定対象のセグメントと平行になるように、エンドバー セグメントをフォーマットするより効率的な方法はありますか?
ありがとう。
\documentclass{article}
\usepackage{asymptote}
\begin{document}
\begin{asy}
import olympiad;
import cse5;
size(4cm);
pair G,T,P,Q,A,B;
G=(0,0); T=(9,0); P=(16,0); Q=(9,-7.937);A=(0,2); B=(16,2);
draw(G--Q--P--G);
draw(Q--T);
draw(A--B, Bars);
draw(rightanglemark(G,T,Q,45));
draw(rightanglemark(P,Q,G,45));
label("$y$",align=N,point(G--T,0.5));
label("$12$",align=SW,point(G--Q,0.5));
label("$16$",midpoint(A--B),N);
\end{asy}
\end{document}
答え1
これは、42ページの例からほぼそのままコピーしたものです。この素晴らしいチュートリアルasypictureB
. 私はマニュアルの著者のスタイルを使うことを好みます。これpdflatex -shell-escape
なら、
\documentclass{standalone}
\usepackage{asypictureB}
\begin{document}
\begin{asypicture}{name=Label}
import olympiad;
//import cse5;
size(4cm);
pair G,T,P,Q,A,B;
G=(0,0); T=(9,0); P=(16,0); Q=(9,-7.937);A=(0,2); B=(16,2);
draw(G--Q--P--G);
draw(Q--T);
draw(rightanglemark(G,T,Q,45));
draw(rightanglemark(P,Q,G,45));
label("$y$",align=N,point(G--T,0.5));
label("$12$",align=SW,point(G--Q,0.5));
//label("$16$",midpoint(A--B),N);
pen fillpen = white;
Label mylabel = Label("$16$", align=(0,0), position=MidPoint,
filltype=Fill(fillpen));
draw(A--B, L=mylabel, Bars);
\end{asypicture}
\end{document}
取得するため
ダウンロードolympiad.asy
元このウェブサイトcse5.asy
は必要ありませんでした。
答え2
もう一つの可能性は、ルーチンgeometry.asy
を提供するものを使用することです。コードを見つけてくださいmarkrightangle
distance
import geometry;
size(4cm);
pair G,T,P,Q;
G=(0,0); T=(9,0); P=(16,0); Q=(9,-7.937);
draw(G--Q--P--G);
draw(Q--T);
perpendicularmark(T, dir(-135));
markrightangle(P,Q,G);
label("$y$",align=N,point(G--T,0.5));
label("$12$",align=SW,point(G--Q,0.5));
distance("$16$",G,P,-6mm);
そしてその結果