Я играл с уравнениями для электрических систем с помощью Sympy и уже довольно много управляю, чтобы уравнение выглядело красиво и прилично: все значения содержат единицы, которые следуют за ними даже с помощью комбинаций уравнений. Это очень важно, я думаю, потому что цель состоит в том, что документ, который я пишу, чтобы рассчитать мои ценности, является окончательным документом, который я буду представлять (я использую Jupyter-записные книжки и все это PDF-файл).Как отображать символ процента с помощью SymPy и LaTeX
Теперь пришла моя проблема: как-то Sympy решила, что% не является единицей сама по себе (правда, она не имеет измерения) и что нет смысла ее показывать - вообще. Кажется, даже разобрал мои объявленные единицы, чтобы удалить любой процентный символ, который может появиться ...
До тех пор, пока я согласен, что у% нет измерения, символ по-прежнему существует по какой-то причине - если это было бесполезно, этого не было бы для начала. Людям нравится читать проценты с хорошим% в конце, потому что он уже указывает, что результат умножен на коэффициент 100. Он также делает результат более читаемым.
В коде:
# imports
import sympy as sp
from sympy import init_printing
init_printing(use_latex=True)
init_printing(use_latex='mathjax')
import sympy.physics.units as u
from IPython.display import display
#define unit
percent = u.Unit('ab%c', 'ab%c')*100 # a,b and c are only there for debug. Only % is needed
#define dummy equation
Error_= sp.symbols('Error')
total_error = 1 # error is not yet in %. 1 means 100%
Eq = sp.Eq(Error_, total_error*percent)
display(Eq)
Результат: Ошибка = 100ab
Почему все после% явно удалены? Я даже старался не импортировать все юниты в глобальное пространство имен, поэтому, если нужно было обнаружить%, не нужно ли u.%?
PS: У меня есть длинная история 3 дня (всего), работающая с Python. Я обычно больше парень C. Надеюсь, я не пропустил глупую ошибку.
Добро пожаловать :) Заметьте, что 'u.percent' также существует, но его значение противоположно: оно равно 1/100 (что на самом деле означает' u.percent': '25 * percent = = 0,25'). –