CircuiTikZ: cambia la posición de la etiqueta de voltaje a lo largo del sorteo abierto

CircuiTikZ: cambia la posición de la etiqueta de voltaje a lo largo del sorteo abierto

¿Existe alguna forma de ajustar la apariencia de una etiqueta de voltaje entre dos puntos? De forma predeterminada, la etiqueta $U_1$se colocará a mitad de camino de la flecha de voltaje, pero quiero que aparezca en un punto relativo a la longitud de la flecha de voltaje, por ejemplo, a un cuarto o al 70%.

\usepackage[americaninductors, straightvoltages]{circuitikz}

\begin{document}
    \begin{circuitikz}
        \draw (0,0) to [open, v^=$U_1$] (2,0);
    \end{circuitikz}
\end{document} 

ingrese la descripción de la imagen aquí

Respuesta1

Depende básicamente de lo nuevo que sea tu circuitikz. Desde 1.2.1 puedes usar las coordenadas para voltajes y hacer algo como eso:

\documentclass[a4paper,12pt]{article}
\usepackage[EFvoltages, americaninductors, straightvoltages]{circuitikz}

\begin{document}
    \begin{circuitikz}
        \draw 
        (0,0) to [open, v, name=O1] (2,0);
        \draw [thin, -Triangle] (O1-Vfrom) -- (O1-Vto) node[above, pos=0.2]{$U_1$};
    \end{circuitikz}
\end{document}

Imagen de ejemplo

Observe que agregué la opción de dirección del voltaje (¡mire las advertencias!). copio aquila parte relevante del manual...

Extracto del manual 1.2.3 de circuitoikz

Respuesta2

Espero haber entendido bien. Puede cambiar la etiqueta manualmente usando el comando \mkern<value>...solo esto es como un ejemplo.

\documentclass[a4paper,12pt]{article}
\usepackage[americaninductors, straightvoltages]{circuitikz}

\begin{document}
    \begin{circuitikz}
        \draw (0,0) to [open, v^=$U_1$] (2,0);
        \draw (0,0) to [open, v^=$\mkern30mu U_2$] (2,0);
    \end{circuitikz}
\end{document} 

ingrese la descripción de la imagen aquí

Respuesta3

Una solución es un nodo adicional en la posición correcta y reemplazar la etiqueta de voltaje con un espacio protegido como este.

\documentclass[a4paper,12pt]{article}
\usepackage[americaninductors, straightvoltages]{circuitikz}

\begin{document}
    \begin{circuitikz}
        \draw 
        (0,0) to [open, v=\ ] (2,0)
        (0.5,0) node[above]{$U_1$};
    \end{circuitikz}
\end{document} 

ingrese la descripción de la imagen aquí

pero no es una solución muy inteligente...

información relacionada