Tamaño de fuente de etiqueta de resistencia diagonal y flechas curvas

Tamaño de fuente de etiqueta de resistencia diagonal y flechas curvas

Estoy intentando dibujar un puente de Wheatstone y este es el código que tengo hasta ahora:

\documentclass[12pt]{article}
\usepackage[americanvoltages,fulldiodes,siunitx]{circuitikz}
\usepackage[pdftex]{graphicx}
\usepackage[width=16.00cm, height=22.00cm]{geometry}
\usepackage{letltxmacro}
\begin{document}

 \begin{circuitikz}[scale=2.5]\draw
  (0,0) to[battery1, l=$V$] (0,2) -- (2,2)
  to[R=$R_1$,*-*] (1,1)
  to[R=$R_3$, *-*] (2,0) -- (0,0);

 \draw (2,2) to[R=$R_2$, *-*] (3,1)
        to[R=$R_4$, *-*] (2,0);
 \draw (1,1) to[R=$R_5$, *-*] (3,1);

 \draw[>=latex,->,color=magenta,text=black, thick] (0.6,1.9) 
      to[out=-0,in=-0] (1.4,1.9) to[out=8,in=70] (0.8,1)node[anchor=east]{$I_a$}
      to[out=-70,in=-0] (1.4,0.1) to[out=-0,in=-0] (0.5,0.1);

  \draw[>=latex,->,color=magenta,text=black, thick](1.7,1.3)arc(220:-50:0.4 and 0.15);

  \draw[>=latex,<-,color=magenta,text=black, thick](1.7,0.8)arc(-220:50:0.4 and 0.15);

 \filldraw[fill=black] (2,1.5) circle(0pt)node[anchor=south]{$I_b$};
 \filldraw[fill=black] (2,0.78) circle(0pt)node[anchor=north]{$I_c$};
 \end{circuitikz}

Y esto es lo que produce:

ingrese la descripción de la imagen aquí

¡Observe cuán grandes son las etiquetas de las resistencias diagonales!

Pregunta 1: ¿Cómo puedo hacer que el tamaño de fuente de estas etiquetas vuelva a ser normal (es decir, el mismo tamaño que $R_5$y $V$)? No quiero utilizar editores de tamaño de fuente como \tinyo \small; Ya lo hice e incluso \tinysigo haciendo que el tamaño de fuente sea un poco más grande de lo normal. Debería haber una forma más natural para el tamaño de fuente.noaumentar y permanecer como se supone que debe ser, ¿no?

Pregunta 2: La flecha curva larga $I_a$tiene una esquina afilada cerca del centro que quiero suavizar (para que sea una curva suave), y las esquinas superior e inferior de la flecha no parecen tener una transición muy natural (es decir, se puede ver (que hay un poco de irregularidad, la línea curva no fluye naturalmente hacia la línea plana). ¿Existe una manera fácil de arreglar estas esquinas superior/media/inferior en lugar de tener que modificar individualmente todos los in/outángulos? Si es así, ¿cómo?

¡Gracias!

Respuesta1

Pregunta 1

En lugar de escalar el circuito, puedes usar x=<length>, y=<length>, para que las etiquetas, por ejemplo, no se vean afectadas.

Pregunta 2

Simplemente puede usar --y rounded cornerspara producir fácilmente un camino curvo suave. En el siguiente ejemplo, en lugar de

     \draw[>=latex,->,color=magenta,text=black, thick] (0.6,1.9) 
          to[out=-0,in=-0] (1.4,1.9) to[out=8,in=70] (0.8,1)node[anchor=east]{$I_a$}
          to[out=-70,in=-0] (1.4,0.1) to[out=-0,in=-0] (0.5,0.1);

solía

    \draw[>=latex,->,color=magenta,text=black, thick,rounded corners=7pt]   
     (0.6,1.9) -- (1.6,1.9) -- 
     (0.7,1) node[anchor=east]{$I_a$} --
     (1.6,0.1) -- (0.5,0.1);

El código; También utilicé scopeal final para simplificar el código y coloqué I_by I_ccomo nodos en las arcrutas (esto produce el posicionamiento correcto sin intervención manual y simplifica el código):

\documentclass[12pt]{article}
\usepackage[americanvoltages,fulldiodes,siunitx]{circuitikz}
\usepackage{graphicx}
\usepackage[width=16.00cm, height=22.00cm]{geometry}
\usepackage{letltxmacro}

\begin{document}

\begin{circuitikz}[x=2.5cm,y=2.5cm]
\draw
  (0,0) to[battery1, l=$V$] (0,2) -- (2,2)
  to[R=$R_1$,*-*] (1,1)
  to[R=$R_3$, *-*] (2,0) -- (0,0);

\draw 
  (2,2) to[R=$R_2$, *-*] (3,1)
  to[R=$R_4$, *-*] (2,0);

\draw 
  (1,1) to[R=$R_5$, *-*] (3,1);

\begin{scope}[>=latex,color=magenta,thick,text=black]
\draw[->,rounded corners=7pt]   
   (0.6,1.9) -- (1.6,1.9) -- 
   (0.7,1) node[anchor=east]{$I_a$} --
   (1.6,0.1) -- (0.5,0.1);

\draw[->]
  (1.7,1.3)  arc(220:-50:0.4 and 0.15) 
  node[pos=0.5,above] {$I_b$};

\draw[<-]
  (1.7,0.8) arc(-220:50:0.4 and 0.15) 
  node[midway,above] {$I_c$};
\end{scope}
\end{circuitikz}
 
\end{document}

ingrese la descripción de la imagen aquí

Respuesta2

Si puede vivir sin aplicar la transformación de coordenadas a los nodos, puedo ofrecerle un parche. El autor probablemente se olvidó de independizar el tráfico actual de la rotación. Es un poco tedioso proteger todas las formas posibles dentro de los visores, etc., así que simplemente apagué el trafo.

\documentclass[12pt]{article}
\usepackage[americanvoltages,fulldiodes,siunitx]{circuitikz}

\usepackage[width=16.00cm, height=22.00cm]{geometry}
\usepackage{letltxmacro}
\makeatletter
\def\pgf@circ@drawrotlabel{
    \pgfextra{
        % calcolo rotazione label
        \def\pgf@circ@temp{\ctikzvalof{bipole/label/position}} %%% àncora label
        \edef\pgfcirclabrot{\pgf@circ@direction} % primo e quarto quadrante
        \edef\pgfcircmathresult{\expandafter\pgf@circ@stripdecimals\pgf@circ@direction\pgf@nil}
        \ifnum \pgfcircmathresult > 90 \ifnum \pgfcircmathresult < 270 % terzo e secondo
            \pgfmathsubtract{\pgf@circ@direction}{180}
            \edef\pgfcirclabrot{\expandafter\pgf@circ@stripdecimals\pgfmathresult\pgf@nil}
            \pgfmathadd{\pgf@circ@temp}{180} %%%
            \edef\pgf@circ@temp{\expandafter\pgf@circ@stripdecimals\pgfmathresult\pgf@nil} %%%
        \fi\fi

        \ifnum \ctikzvalof{mirror value} = -1
            \pgfmathadd{\pgf@circ@temp}{180}
            \edef\pgf@circ@temp{\expandafter\pgf@circ@stripdecimals\pgfmathresult\pgf@nil}
        \fi
    }
    coordinate (labelcoor) at ($(\ctikzvalof{bipole/name})!2!(\ctikzvalof{bipole/name}.north)$)
    (labelcoor) node [transform shape=false, rotate=\pgfcirclabrot] {\pgf@circ@finallabel{}}
}

\begin{document}

\begin{circuitikz}[scale=2.5]
\draw (0,0) to[battery1, l=$V$] (0,2) -- (2,2) to[R,l=$R_1$] (1,1) to[R,l=$R_3$, *-*] (2,0) -- (0,0);
\draw (2,2) to[R=$R_2$, *-*] (3,1)to[R=$R_4$, *-*] (2,0);
\draw (1,1) to[R=$R_5$, *-*] (3,1);

\draw[>=latex,->,color=magenta,text=black, thick] (0.6,1.9) 
      to[out=-0,in=-0] (1.4,1.9) to[out=8,in=70] (0.8,1)node[anchor=east]{$I_a$}
      to[out=-70,in=-0] (1.4,0.1) to[out=-0,in=-0] (0.5,0.1);

\draw[>=latex,->,color=magenta,text=black, thick](1.7,1.3)arc(220:-50:0.4 and 0.15);
\draw[>=latex,<-,color=magenta,text=black, thick](1.7,0.8)arc(-220:50:0.4 and 0.15);
\filldraw[fill=black] (2,1.5) circle(0pt)node[anchor=south]{$I_b$};
\filldraw[fill=black] (2,0.78) circle(0pt)node[anchor=north]{$I_c$};
\end{circuitikz}
\end{document}

ingrese la descripción de la imagen aquí

información relacionada