CircuiTikZ - изменение положения метки напряжения вдоль открытого канала

CircuiTikZ - изменение положения метки напряжения вдоль открытого канала

Есть ли способ настроить вид метки напряжения между двумя точками? По умолчанию метка $U_1$будет размещена посередине стрелки напряжения, но я хочу, чтобы она отображалась в точке относительно длины стрелки напряжения, например, на четверти пути или на 70% пути.

\usepackage[americaninductors, straightvoltages]{circuitikz}

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

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

решение1

В основном это зависит от того, насколько новый ваш circuitikz. Начиная с версии 1.2.1 вы можете использовать координаты для напряжений и делать что-то вроде этого:

\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}

Пример изображения

Обратите внимание, что я добавил опцию направления напряжения (пожалуйста, посмотрите на предупреждения!). Копирую сюдасоответствующая часть руководства...

Выдержка из руководства 1.2.3 Circuitikz

решение2

Надеюсь, я хорошо понял. Вы можете вручную сместить метку с помощью команды \mkern<value>...это просто пример.

\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} 

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

решение3

одно из решений — дополнительный узел в правильном положении и замена метки напряжения на защищенное пространство, как это

\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} 

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

но это не очень умное решение...

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