
Я пытаюсь использовать angles
библиотеку, но не уверен, как ее применить, когда узлы были указаны из других методов.
В примерах рисование векторов и присвоение имен узлам происходит в той же draw
команде, которая выдает angles
команду.
\documentclass[tikz]{standalone}%
\usetikzlibrary{calc}
\usetikzlibrary{intersections}
\usetikzlibrary{angles}
\begin{document}
\begin{tikzpicture}
\coordinate (O) at (0, 0);
\path[name path = para] (-1, -2.5) parabola bend (2, 2) (4, 0);
\draw (O) -- (5, 0) coordinate (P1);
\path[name path = circ] (O) circle[radius = .75bp];
\path[name intersections = {of = para and circ}];
\coordinate (A) at (intersection-1);
\coordinate (B) at (intersection-2);
\draw[-latex, red] (A) -- ($(B)!1cm!(A)$) coordinate (P2);
\path (P1) -- (O) -- (P2)
pic[''$\theta$'', draw, -latex, red, angle radius = .5cm,
angle eccentricity = 1.2] {angle = P1--O--P2};
\end{tikzpicture}
\end{document}
Он говорит мне, что тета — это не цвет.
Даже если я загружу quotes
библиотеку и поставлю двойные кавычки, \theta
когда Хариш Кумар ответил, я все равно получу сообщение:
! Missing \endcsname inserted.
<to be read again>
\theta
l.41 angle eccentricity = 1.2, font = \tiny]
{angle = P1--O--P2};
! Missing \endcsname inserted.
...
l.41 ...y = 1.2, font = \tiny] {angle = P1--O--P2}
;
! Package xcolor Error: Undefined color ```$\theta $'''.
Для тех, кто не верит мне, что двойные кавычки вызывают ту же проблему, я записал видео, показывающее, что это так.
https://www.dropbox.com/s/44zhedz2psg1vrk/2014-05-08%2018.08.46.mp4
решение1
Вам нужно загрузить quotes
библиотеку, чтобы использовать quotes
синтаксис. Это включает синтаксис кавычек для меток, пинов, узлов ребер и текстов изображений.
Также это двойные кавычки, как "$\theta$"
(не ''$\theta$''
). Некоторые редакторы (например, Emacs) автоматически преобразуют "
в ``
или ''
(в зависимости от того, вставлены ли они в начале или в конце слова), поскольку это дает правильный вывод после компиляции документа. В этом случае, однако, мы хотимдействительныйдвойные кавычки. Чтобы ввести их в Emacs, просто нажмите клавишу двойных кавычекдваждыпоследовательно. Второй преобразует ранее вставленные две одинарные кавычки в одну двойную кавычку, что здесь и нужно.
\documentclass[tikz,varwidth]{standalone}%
\usetikzlibrary{calc}
\usetikzlibrary{intersections}
\usetikzlibrary{angles}
\usetikzlibrary{quotes}
\begin{document}
\begin{tikzpicture}
\coordinate (O) at (0, 0);
\path[name path = para] (-1, -2.5) parabola bend (2, 2) (4, 0);
\draw (O) -- (5, 0) coordinate (P1);
\path[name path = circ] (O) circle[radius = .75bp];
\path[name intersections = {of = para and circ}];
\coordinate (A) at (intersection-1);
\coordinate (B) at (intersection-2);
\draw[-latex, red] (A) -- ($(B)!1cm!(A)$) coordinate (P2);
\path (P1) -- (O) -- (P2) pic["$\theta$", draw,-latex, red, angle radius = 0.5cm, angle eccentricity = 1.2] {angle = P1--O--P2};
\end{tikzpicture}
\end{document}
решение2
Если включение библиотеки кавычек все еще не помогло, предлагаю загрузить библиотеку Babel, как это предлагается.здесьУ меня была точно такая же проблема, и это мне помогло.
\usetikzlibrary{angles,quotes}
\usetikzlibrary{babel}
решение3
Использование quote
библиотеки в документах с некоторыми языками, отличными от английского, имеет проблемы с их переопределением Babels ''
. Например (слегка измененныйпользователь11232отвечать):
\documentclass[tikz, margin=3mm]{standalone}%
\usetikzlibrary{angles,
% babel, % <-- example works if you enable this library
calc,
intersections,
quotes}
\usepackage[slovene]{babel}
\begin{document}
\begin{tikzpicture}[
> = stealth,
angle radius = 5mm,
my angle/.style = {draw, -latex,
angle eccentricity=1.3,
font=\large} % angle label position!
]
\draw (0,0) coordinate (O) --
(4,0) coordinate (P1);
\draw[very thin, dashed, name path = para] (-1,-2.5) parabola bend (2,2) (4,0);
\draw[very thin, name path = circ] (O) circle[radius = .75bp];
%
\path[name intersections = {of = para and circ, by={A,B}}];
%
\draw[-latex, red] (A) -- ($(B)!1cm!(A)$) coordinate (P2);
%
\path (P1) -- (O) -- (P2)
pic[my angle,"$\theta$"] {angle = P1--O--P2};
\end{tikzpicture}
\end{document}
выдает ошибку:
! Argument of \language@active@arg" has an extra }.
<inserted text>
\par
l.26 pic[my angle,"$\theta$"]
{angle = P1--O--P2};
? x
который в случае, если я включу babel
библиотеку в преамбуле вышеуказанного MWE, исчезает и дает следующий результат:
Позвольте мне отметить, что эта проблема обсуждалась во многих вопросах/ответах здесь. Кроме того, OP MWE - это расчет, который требует много времени, чтобы получить результат. Для этой проблемы существуют лучшие подходы (но это не вопрос здесь).