Estou tendo problemas com uma figura do TikZ depois de copiar o código de uma excelente respostaaqui:
\documentclass[11pt,a4paper]{article}
\usepackage{blindtext}
\usepackage{tkz-euclide}
\usetkzobj{all}
\usepackage{color}
\begin{document}
\begin{center}
\begin{tikzpicture}
\tkzDefPoint(0,0){M}
\tkzDefPoint(1.5,0){A}
\tkzLabelPoints[below](A)
\tkzDefPoint(12,0){N}
\tkzDefPoint(10.5,0){B}
\tkzLabelPoints[below](B)
\tkzDrawSegment(M,N)
\tkzDefPoint(9.0,7){L}
\tkzDefPoint(7,5.1){C}
\tkzLabelPoints[above](C)
\tkzDrawSegment(A,L)
\tkzDefLine[bisector](B,A,C)\tkzGetPoint{a}
\tkzDrawSegment(A,a)
\tkzDefPointWith[linear,K=0.6](A,a) \tkzGetPoint{D}
\tkzDefPointBy[projection=onto A--C](D)
\tkzGetPoint{h}
\tkzDrawSegment(D,h)
\tkzMarkRightAngle[fill=lightgray](A,h,D)
%
\tkzDefPointBy[projection=onto A--B](D)
\tkzGetPoint{g}
\tkzDrawSegment(D,g)
\tkzMarkRightAngle[fill=lightgray](A,g,D)
\end{tikzpicture}
\end{center}
\end{document}
Meu primeiro problema surge ao tentar compilar o código.preciso comentar \usetkzobj{all}
. Caso contrário, recebo uma mensagem de erro. Tentei atualizar o pacote tkz-euclide usando o MikTeX Package Manager, mas o problema persiste. Se for útil, esta é uma captura de tela do MikTeX:
Quando o documento é compilado (com o comando acima mencionadocomentou) Eu recebo a seguinte imagem.
Não consigo entender por que os rótulos foram deslocados. Não mudei um único iota do código original.
Para efeito de comparação, esta é a imagem da resposta vinculada.https://i.stack.imgur.com/VUFYR.png
Além disso, gostaria de saber como adicionar linhas indicando congruência, conforme mostrado abaixo:
Muito obrigado por qualquer feedback.
Responder1
- Utilizei o código do AndréC com algumas modificações. Retirei o que era desnecessário. No seu código, removi
\usepackage{tikz}
porquetkz-euclide
carrega ele mesmo.
No código do André, alterei a linha \tkzDefPointWith[linear,K=0.6](A,a) \tkzGetPoint{D}
. Ainda é válido, mas \tkzDefPointWith[linear normed,K=8](A,a) \tkzGetPoint{D}
é preferível, pois assim sabemos a duração exata do AD.
Finalmente, é uma boa ideia definir e determinar primeiro os pontos e depois, como último passo, traçá-los, rotulá-los e marcá-los.
Para posições de rótulos, um arquivo de configuração .cfg está disponível. Dependendo do usuário, pode ser diferente, resultando em posições diferentes. A melhor solução é redefinir seus próprios estilos.
\documentclass[11pt,a4paper]{article}
\usepackage{tkz-euclide}
\begin{document}
\begin{tikzpicture}
% definition
\tkzDefPoint(0,0){M}
\tkzDefPoint(12,0){N}
\tkzDefPoint(1.5,0){A}
\tkzDefPoint(9,7){L}
% calculate
\tkzDefLine[bisector](N,A,L) \tkzGetPoint{a}
\tkzDefPointWith[linear normed,K=8](A,a) \tkzGetPoint{D}
\tkzDefPointBy[projection=onto A--L](D) \tkzGetPoint{C}
\tkzDefPointBy[projection=onto A--N](D) \tkzGetPoint{B}
% drawing
\tkzDrawSegments(D,B D,C A,a A,L M,N)
% labeling
\tkzLabelPoints[below](A,B)
\tkzLabelPoints[above](C)
% marking
\tkzMarkRightAngles[fill=lightgray](A,C,D A,B,D)
\tkzMarkSegments[mark=||](C,D D,B)
\tkzMarkAngles[mark=|,size=2](B,A,D)
\tkzMarkAngle[mark=|,size=2.1](D,A,C)
\end{tikzpicture}
\end{document}
- Aqui está uma versão com tkz-elements e tkz-euclide. A compilação é feita com lualatex.
A parte da definição muda apenas na sintaxe. Definimos o triângulo T.ANL. Isso evita a criação das retas L.AN e L.AL, que serão definidas por T.ANL.ab e T.ANL.ca (ab, bc e ca são os três lados do triângulo).
bissetriz define a bissetriz de A. bissetriz (2) define a bissetriz de B etc.
za é o segundo ponto da reta L.Aa . L.Aa.pa designa o primeiro e L.Aa.pb o segundo ponto.
zD = L.Aa: relatório (6)` coloca o ponto D a 6 cm de A.
\documentclass[11pt,a4paper]{article}
\usepackage{tkz-euclide,tkz-elements}
\begin{document}
\begin{tkzelements}
-- definition
z.M = point : new (0,0)
z.N = z.M : east (12)
z.A = point : new (1.5,0)
z.L = point : new (9,7)
T.ANL = triangle : new (z.A,z.N,z.L)
-- calculate
L.Aa = T.ANL : bisector ()
z.a = L.Aa.pb
z.D = L.Aa : report (6)
z.B = T.ANL.ab : projection (z.D)
z.C = T.ANL.ca : projection (z.D)
\end{tkzelements}
\begin{tikzpicture}
\tkzGetNodes
% drawing
\tkzDrawSegments(B,D D,C A,a A,L M,N)
% labeling
\tkzLabelPoints[below](A,B)
\tkzLabelPoints[above](C)
% marking
\tkzMarkRightAngles[fill=lightgray](A,C,D A,B,D)
\tkzMarkSegments[mark=||](C,D D,B)
\tkzMarkAngles[mark=|,size=2](B,A,D)
\tkzMarkAngle[mark=|,size=2.1](D,A,C)
\end{tikzpicture}
\end{document}
Responder2
Aliviei o código de comandos desnecessários. O código define desnecessariamente os pontos B, D, h e g. Removi h e g e os substituí por B e D. Coloquei uma ligeira discrepância no raio dos ângulos, pois parece mais claro ler que os ângulos são iguais à codificação quando seu raio difere. Mas você pode mudar isso.
\documentclass[11pt,a4paper]{article}
\usepackage{blindtext}
\usepackage{tkz-euclide}
\usepackage{color}
\begin{document}
\begin{center}
\begin{tikzpicture}
\tkzDefPoint(0,0){M}
\tkzDefPoint(1.5,0){A}
\tkzLabelPoints[below](A)
\tkzDefPoint(12,0){N}
\tkzDrawSegment(M,N)
\tkzDefPoint(9.0,7){L}
\tkzDrawSegment(A,L)
\tkzDefLine[bisector](N,A,L)\tkzGetPoint{a}
\tkzDrawSegment(A,a)
\tkzDefPointWith[linear,K=0.6](A,a) \tkzGetPoint{D}
\tkzDefPointBy[projection=onto A--L](D)
\tkzGetPoint{C}
\tkzLabelPoints[above](C)
\tkzMarkRightAngle[fill=lightgray](A,C,D)
\tkzDefPointBy[projection=onto A--N](D)
\tkzGetPoint{B}
\tkzLabelPoints[below](B)
\tkzDrawSegments(D,B D,C)
\tkzMarkSegments[mark=||](C,D D,B)
\tkzMarkAngle[mark=|,size=2](B,A,D)
\tkzMarkAngle[mark=|,size=2.1](D,A,C)
\tkzMarkRightAngle[fill=lightgray](A,B,D)
\end{tikzpicture}
\end{center}
\end{document}