Вы можете использовать np.sign
в комбинации с np.diff
и np.argwhere
для получения индексов точек, где пересекаются линии (в этом случае точки [ 0, 149, 331, 448, 664, 743]
):
import numpy as np
import matplotlib.pyplot as plt
x = np.arange(0, 1000)
f = np.arange(0, 1000)
g = np.sin(np.arange(0, 10, 0.01) * 2) * 1000
plt.plot(x, f, '-')
plt.plot(x, g, '-')
idx = np.argwhere(np.diff(np.sign(f - g))).flatten()
plt.plot(x[idx], f[idx], 'ro')
plt.show()
Сначала он вычисляет f - g
и соответствующие знаки, используя np.sign
. При применении np.diff
отображаются все позиции, где изменяется знак (например, пересекаются линии). Используя np.argwhere
, мы получаем точные индексы.
Нет, не по умолчанию. Откуда pandoc должен знать, что <mark>
не является частью вашего кода?
Однако вы можете написать фильтр pandoc , который соответствует каждому блоку кода и преобразует его в необработанный HTML блок. Что-то вроде (не проверено):
function CodeBlock(elem)
html = "<pre>" .. elem.text .. "</pre>"
return pandoc.RawBlock("html", html)
end
Обратите внимание, что вам нужно убедиться, что у вас нет другого неэкранированного HTML в ваших блоках кода.
Обновление
Если вам также нужна подсветка синтаксиса, возможно, вы захотите попробовать фильтр кодов пандока-подчеркивания .
Если вы всегда будете отмечать целые строки, вы можете использовать CSS для этого.
Кодовому блоку должен быть присвоен идентификатор, чтобы упростить его нацеливание.
``` {#types-demo .python}
def func(a: int) -> List[int]:
return [a]
```
. Чтобы выделить первую строку, включите это в свой документ:
```{=html}
<style>
#types-demo-1 {
background-color: #ff0;
}
</style>
```
Подсветка синтаксиса должен продолжать работать.