tkz-euclide: Как изменить размер и цвет точки в \tkzMarkRightAngle[немецкий]?

tkz-euclide: Как изменить размер и цвет точки в \tkzMarkRightAngle[немецкий]?

Для обозначения прямых углов я использую макрос \tkzMarkRightAngle[german]из tkz-euclide.

Как изменить размер и цвет точки?

Скриншот без зума

введите описание изображения здесь

Скриншот с зумом

введите описание изображения здесь

МВЭ

begin{tikzpicture}[rotate=-90]
\tkzDefPoint(0,1){A}
\tkzDefPoint(2,4){C}
\tkzDefPointWith[orthogonal normed,K=7](C,A)
\tkzGetPoint{B}
\tkzDrawSegment[green!60!black](A,C)
\tkzDrawSegment[green!60!black](C,B)
\tkzDrawSegment[green!60!black](B,A)
\tkzDrawLine[altitude,dashed,color=magenta](B,C,A)
\tkzGetPoint{P}
\tkzLabelPoint[left](A){$A$}
\tkzLabelPoint[right](B){$B$}
\tkzLabelPoint[above](C){$C$}
\tkzLabelPoint[left](P){$P$}
\tkzLabelSegment[auto](B,A){$c$}
\tkzLabelSegment[auto,swap](B,C){$a$}
\tkzLabelSegment[auto,swap](C,A){$b$}
\tkzMarkAngle[size=1cm,color=cyan,mark=|](C,B,A)
\tkzMarkAngle[size=1cm,color=cyan,mark=|](A,C,P)
\tkzMarkAngle[size=0.75cm,color=orange,mark=||](P,C,B)
\tkzMarkAngle[size=0.75cm,color=orange,mark=||](B,A,C)
\tkzMarkRightAngle[german](A,C,B)
\tkzMarkRightAngle[german](B,P,C)
\end{tikzpicture}

решение1

Для размера точки существует недокументированный ключ dotsize, который может быть предоставлен \tkzMarkRightAngleсо значением по умолчанию 3pt.

Для цвета нет ключа, но вы можете добавить свой собственный ключ с помощью \pgfkeys. Чтобы использовать ключ, код, используемый для рисования угла, должен быть исправлен, что можно сделать с помощью пакета xpatch. \tkzMarkRightAngleКоманда внутренне вызывает \tkz@RightAngleкоманду, поэтому эту команду необходимо исправить. Поскольку имя команды содержит символ, @код для исправления и введения внутреннего ключа (который для согласованности я назвал \tkz@ra@dotsize, поэтому также содержащий @) должен быть окружен \makeatletterи \makeatother.

МВЭ:

\documentclass{article}
\usepackage{tkz-euclide}
\usepackage{xpatch}
\makeatletter
\pgfkeys{/tkzrightangle/.cd,
    dotcolor/.store in = \tkz@ra@dotcolor, % set internal key
    dotcolor = black} % default value
% insert color=\tkz@ra@dotcolor in original drawing command
\xpatchcmd{\tkz@RightAngle}{node[fill,circle,minimum size=\tkz@dotsize,inner sep=0 pt]}{node[fill,color=\tkz@ra@dotcolor,circle,minimum size=\tkz@dotsize,inner sep=0 pt]}{}{}
\makeatother

\begin{document}
\begin{tikzpicture}[rotate=-90]
\tkzDefPoint(0,1){A}
\tkzDefPoint(2,4){C}
\tkzDefPointWith[orthogonal normed,K=7](C,A)
\tkzGetPoint{B}
\tkzDrawSegment[green!60!black](A,C)
\tkzDrawSegment[green!60!black](C,B)
\tkzDrawSegment[green!60!black](B,A)
\tkzDrawLine[altitude,dashed,color=magenta](B,C,A)
\tkzGetPoint{P}
\tkzLabelPoint[left](A){$A$}
\tkzLabelPoint[right](B){$B$}
\tkzLabelPoint[above](C){$C$}
\tkzLabelPoint[left](P){$P$}
\tkzLabelSegment[auto](B,A){$c$}
\tkzLabelSegment[auto,swap](B,C){$a$}
\tkzLabelSegment[auto,swap](C,A){$b$}
\tkzMarkAngle[size=1cm,color=cyan,mark=|](C,B,A)
\tkzMarkAngle[size=1cm,color=cyan,mark=|](A,C,P)
\tkzMarkAngle[size=0.75cm,color=orange,mark=||](P,C,B)
\tkzMarkAngle[size=0.75cm,color=orange,mark=||](B,A,C)
\tkzMarkRightAngle[german](A,C,B)
\tkzMarkRightAngle[german,dotsize=5pt,dotcolor=blue](B,P,C)
\end{tikzpicture}
\end{document}

Результат:

введите описание изображения здесь

Связанный контент