tikzの座標の原点はどこですか

tikzの座標の原点はどこですか

LaTeX を使用して紙に正三角形を作成しようとしていますが、tikz (または tikzpicture) が座標の原点 (0,0) をどのように選択するのか理解できません。テキストを記述した後、次のコードを使用して紙の右側に三角形を描画します。

\documentclass[12pt,a4paper]{article}
\usepackage{tikz}

%parameters are the following : cooX , cooY , triangleSize
\newcommand{\triangle} [3] {
\begin{tikzpicture}
\draw (#1,#2)--(#1+0.5*#3,#2+0.86*#3)--(#1+1*#3,#2)--cycle;
\end{tikzpicture}
}

\begin{document}
\normalsize
Here is my text and the triangle
\triangle {10}{0}{3}
\end{document}

これにより、次のものが作成されます。

最初のコードイメージ

私の目標は、関数を呼び出して、10cm右に三角形を描くことです。\三角形最初のパラメータで{10}私のコードを見るとわかるように、三角形の最初の点を、新しいコマンドのパラメータである既に選択した座標 (10,0) に描画したいのです。\三角形問題は、パラメータをどう変更しても、原点は常に同じだということです。{20}の代わりに{10}、パラメータに応じて 10 または 20cm 右にシフトさせたいとします。一方、次のように新しいコマンドを呼び出すときに選択した数値以外のパラメータを変更すると、次のようになります。

...
\draw (20,#2)--(#1+0.5*#3,#2+0.86*#3)--(#1+1*#3,#2)--cycle;
...
\triangle {10}{0}{3}
...

(このコードでは、最初の #1 を 20 に変更し、10 を 20 に置き換えました)。

次に、tikz はこの変更を考慮して、開始点が右端にある変形した三角形を表示します。

2番目のコードイメージ

座標にどんな定数(#1 と #2)を追加しても、tikz が常に原点を同じ場所に置きたい場合と同じです。新しいコマンドに与えるパラメータに従って三角形を移動するには、何をする必要がありますか?\三角形?

答え1

順不同ですが、注意すべき点がいくつかあります。まず、以下のコードのスクリーンショットを見てみましょう。

結果

(1) 白い三角形はマクロからのもので、コード自体に若干の違いがあります。改行 (実際には空白行) を入力すると、新しい行タイプセットが作成されるという規則があります。

(2) LaTeX はタイプセッティングであり、タイプライティングではありません。これは Word や他のエディタでご存知のとおりです。エンティティをタイプセッティングしようとします。あなたの場合、エンティティは次のようになります。

  • スペースを含む個々の文字
  • 作成されたもの\newcommand(白い三角形)
  • そして、もっとたくさんあります

グーテンベルクの時代や昔の地方新聞のように、鉛で作られた各文字の周りのボックス、つまり三角形を想像してください。

LaTeX は、終了するまでエンティティごとに接着を続け、何が「適切なタイプセット結果」であるかを「認識」しようとします。

(3) a 内の各行の最後の文字は\newcommanda で終わる必要がある%(つまり、行の残りの部分をコメントアウトする) ことはよく知られた効果です。これを忘れると、LaTeX は意図しないスペースをタイプセットしようとします (簡略化)。

(4)あなたの三角形の2つのバリエーション、青緑と黄色は次のように異なります。

  • ティールは水平方向のスペース(あなたが求めているシフト)が7cmあります(10cmでは違いが十分に見えません)\hspace{}
  • yellow は\hfill代わりに以下を使用します: 「ブロック」をここで一番外側に移動します。

(5)私のヨーロッパの選択を認めてください\documentclass;-)

\documentclass[12pt,a4paper]{article}
\usepackage{tikz}

%parameters are the following : cooX , cooY , triangleSize
\newcommand{\trngl}[3]{%
\begin{tikzpicture}%
\draw (#1,#2)--(#1+0.5*#3,#2+0.86*#3)--(#1+1*#3,#2)--cycle;%
\end{tikzpicture}%
}

\newcommand{\trnglA}[3]{%
\hspace{7cm}\begin{tikzpicture}% <<< 7cm to see the difference
\draw[fill=teal!20] (#1,#2)--(#1+0.5*#3,#2+0.86*#3)--(#1+1*#3,#2)--cycle;%
\end{tikzpicture}%
}

\newcommand{\trnglB}[3]{%
\hfill\begin{tikzpicture}%
\draw[fill=yellow!20] (#1,#2)--(#1+0.5*#3,#2+0.86*#3)--(#1+1*#3,#2)--cycle;%
\end{tikzpicture}%
}

% ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
\begin{document}
\normalsize
% ~~~ variations of your code: WATCH the differences ~~~~~~~~~~~~~~~~~~
Here is my text and the \textbf{triangle} on same line \trngl{10}{0}{3}

Here is my text and the \textbf{triangle} still on same line
\trngl{10}{0}{3}


Here is my text and the \textbf{triangle} on next line

\trngl{10}{0}{3}

% ~~~ using some (hopefully correct) \hspace{} ~~~~~~~~~~~~~~
Here is my text and the \textbf{triangleA} on next line

\trnglA{10}{0}{3}

% ~~~ using \hfill ~~~~~~~~~~~~~~~~~~~~
Here is my text and the \textbf{triangleB} on next line

\trnglB{10}{0}{3}

\end{document}

関連情報