免費論壇 繁體 | 簡體
Sclub交友聊天~加入聊天室當版主
分享
返回列表 发帖
本帖最后由 hbghlyj 于 2021-12-16 06:34 编辑

<svg><style>br{display:none}</style></svg>

TOP

本帖最后由 hbghlyj 于 2021-10-1 20:37 编辑

回复 20# abababa
这个tikzjax将tikz转换成svg的过程其实挺慢的,比如见这里.这些图都是我用tikz画的,以肉眼可见的速度一个一个地显示出来.
远不如在编辑帖子时就转换成svg代码插入帖子出来得快.(心形线和旋轮线是用svg直接插的,就显示得很快)

TOP

回复 19# abababa

我发现现在本地用
  1. <!DOCTYPE HTML>
  2. <html>
  3. <head>
  4. <link rel="stylesheet" type="text/css" href="https://tikzjax.com/v1/fonts.css">
  5. <script src="https://tikzjax.com/v1/tikzjax.js"></script>
  6. </head>
  7. <body>
  8. <script type="text/tikz">
  9.   \begin{tikzpicture}
  10.     \draw (0,0) circle (1in);
  11.   \end{tikzpicture}
  12. </script>
  13. </body>
  14. </html>
复制代码
也是 OK 的啊,就是加载慢一点要等一下(与 tikzjax.com 的连接真不顺,实在不行可挂梯……
与去年的区别是变成了 https
$\href{https://kuingggg.github.io/}{\text{About Me}}$

TOP

本帖最后由 abababa 于 2021-10-2 08:57 编辑

回复 23# kuing

一开始就是那个“跨域”的问题弄得显示不了,我就想如果是在同一个域里,那就不用引用别的域名了,就不会有问题,所以试了一下果然就好用了。那个https是不是就变成安全链接了,也没有这个问题了。
加载慢的话,把js代码复制过来,放在自己的网页里就好了吧,加载就是在自己网页里加载。
但是我用geogebra画了一个y=x^2的抛物线,然后导出tikz,粘贴到网页里,显示的还是不正确,在x<0处的图变成y=-x^2的图了,还有坐标轴的x,y标的地方也和geogebra里不一样。

TOP

回复 24# abababa
那个https是不是就变成安全链接了,也没有这个问题了。
有可能,我看 22# hbghlyj 的论坛上的 tikzjax 也是用
  1. <script src="https://tikzjax.com/v1/tikzjax.js" type="text/javascript"></script>
复制代码
来引入的。而我在这里这样弄就不行,估计就是因为我这里是 http 没 s。

geogebra 导出的代码你发来瞧瞧?

TOP

本帖最后由 abababa 于 2021-10-2 18:44 编辑

回复 25# kuing
  1. <script type="text/tikz">
  2.   \begin{tikzpicture}
  3.     \draw (0,0) circle (1in);
  4.        
  5.         \draw[->,color=black] (-2.52,0) -- (2.24,0);
  6. \foreach \x in {-2,2}
  7. \draw[shift={(\x,0)},color=black] (0pt,2pt) -- (0pt,-2pt) node[below] {\footnotesize $\x$};
  8. \draw[->,color=black] (0,-1.02) -- (0,3.12);
  9. \foreach \y in {,2}
  10. \draw[shift={(0,\y)},color=black] (2pt,0pt) -- (-2pt,0pt) node[left] {\footnotesize $\y$};
  11. \clip(-2.52,-1.02) rectangle (2.24,3.12);

  12. \draw [samples=50,rotate around={0:(0,0)},xshift=0cm,yshift=0cm] plot (\x,\x^2/2/0.5);
  13.   \end{tikzpicture}
  14. </script>
复制代码
如上代码,先是画了一个圆,然后下边的那些,是从Geogebra里导出tikz后复制的。

那如果不引用js文件呢,而是编辑那个论坛的模板,直接加一段script上去,把js文件里的内容全复制粘贴过去,不就是变成本域名下面了吗,这样就可以用了吧。不过如果像上面那样抛物线的效果不太好,用着还是不行。

TOP

回复 26# abababa

将最后那个 plot 后面改成 (\x,{(\x)^2/2/0.5}) 即可。(当然这是 tikz 逗……

GGbra 的导出也不咋嘀,像 rotate around={0:(0,0)},xshift=0cm,yshift=0cm 这些明显多余,而应该加的 smooth 却不加。

TOP

回复 21# hbghlyj
比如这样
  1. jQuery(document).ready(function(){for(let i=0;i<jQuery("script[type='text/tikz']").length;i++){jQuery("script[type='text/tikz']")[i].innerHTML=jQuery("script[type='text/tikz']")[i].innerHTML.replaceAll("&gt;",">").replaceAll("&lt;","<")}});
复制代码

TOP

回复 27# kuing

果然如此,那还是不用其它软件导出,直接写tikz代码方便。要是这个能用tkz-euclide就更好了,画平面几何图简单,好像也能自定义命令吧,像那个网页版的katex一样,自定义出那些命令就应该都能用了。

TOP

本帖最后由 abababa 于 2021-10-4 17:26 编辑

这个如果把
  1. var scripts = document.getElementsByTagName('script');
  2.   var tikzScripts = Array.prototype.slice.call(scripts).filter(e => e.getAttribute('type') === 'text/tikz');
复制代码
这两行的第一行,改成
  1. var scripts = document.getElementsByTagName('tikz');
复制代码
然后在index.html页面里,就不用写<script>这样的脚本了,而是写
  1. <tikz type="text/tikz">
  2.   \begin{tikzpicture}
  3.     \draw (0,0) circle (1in);
  4.   \end{tikzpicture}
  5. </tikz>
复制代码
标签变成tikz了,这样就属于安全的了吧,因为听说script可能不安全。
tikzjax1.js (953.26 KB) index.html (707 Bytes)

TOP

回复 29# abababa
同作者
https://tex.rossprogram.org/

TOP

<script src="//i.upmath.me/latex.js"></script>
https://i.upmath.me/g/

TOP

回复 32# hbghlyj

怎么玩?直接粘贴链接吗?

  1. [img]//i.upmath.me/svg/%5Cbegin%7Btikzpicture%7D%5Bdomain%3D0%3A2%5D%0A%5Cdraw%5Bvery%20thin%5D%20(-0.1%2C-0.1)%20grid%20(2.1%2C2.1)%3B%0A%5Cdraw%5B-%3E%5D%20(-0.2%2C0)--(2.2%2C0)%20node%5Bright%5D%20%7B%24x%24%7D%3B%0A%5Cdraw%5B-%3E%5D%20(0%2C-0.2)--(0%2C2.2)%20node%5Babove%5D%20%7B%24y%24%7D%3B%0A%5Cdraw%20plot%20(%5Cx%2C%7Bsin(%5Cx%20r)%7D)%20node%5Bright%5D%20%7B%24y%3D%5Csin%20x%24%7D%3B%0A%5Cdraw%5Bcolor%3Dblue%5D%20plot%20(%5Cx%2C%5Cx)%20node%5Bright%5D%20%7B%24y%3Dx%24%7D%3B%0A%5Cend%7Btikzpicture%7D[/img]
复制代码
好像真的可以[惊喜]

TOP

回复 33# kuing

那是不是可以直接用
  1. [img]//i.upmath.me/svg/代码[/img]
复制代码
的形式来插图了?比如
  1. [img]//i.upmath.me/svg/\begin{tikzpicture}\draw(0,0)circle(1);\end{tikzpicture}[/img]
复制代码

不行,还是得改一下,\ 要改为 %5C
  1. [img]//i.upmath.me/svg/%5Cbegin{tikzpicture}%5Cdraw(0,0)circle(1);%5Cend{tikzpicture}[/img]
复制代码

代码可否换行?
[img]//i.upmath.me/svg/%5Cbegin{tikzpicture}
%5Cdraw(0,0)circle(1);
%5Cend{tikzpicture}[/img]
不行……

不过,万一哪天这个 i.upmath.me 挂了,这些图也全挂,非长久之计……

TOP

回复 34# kuing

那这样的话,是不是能新建一个标签,比如叫[tikzimg] [/tikzimg],然后就像草稿本那样,运行一个javascript脚本,把这个标签里的反斜线跟换行符都替换了,这样不就能正确显示了。如果那个网站坏了,那只要把这个替换的脚本删除,不做替换,就恢复成原来的tikz代码了,复制一下就能在自己电脑上直接编译了。

TOP

回复 35# abababa
Javascript内置encodeURI函数

TOP

[img]//i.upmath.me/svg/%5Cbegin{tikzpicture}%5Cdraw[red](0,0)circle(1);%5Cend{tikzpicture}[/img]
中括号影响 BBcode 的识别,这是个大问题……

TOP

本帖最后由 abababa 于 2021-11-15 19:07 编辑

回复 36# hbghlyj
哦,原来有这样一个函数可用,谢谢。

回复 37# kuing
那能不能换成标签那种呢?就是尖括号的那种。我做了一个html文档,画的就是之前画的两个图,是用javascript替换的。

index2.html (1018 Bytes)

或者单独新建一个BBCode标签,比如叫[tikzimg],然后是在帖子里,那么帖子内容应该也有一个html的标签,然后就还是用document.getElementsBy...这样的函数取得帖子的标签,然后再把帖子里的文本做一下替换,就替换[tikzimg]里面那些,不过那个after的函数我就不知道怎么用了,好像只能是对尖括号的标签这样的东西用。

TOP

本帖最后由 hbghlyj 于 2021-11-15 20:13 编辑

将discuz的BBcode正则表达式
  1. \[b\]([^\[]*)\[\/b\]
复制代码
改为
  1. \[b\](.*?)\[\/b\]
复制代码
即可在BBcode中使用中括号.

TOP

本帖最后由 hbghlyj 于 2021-11-15 20:12 编辑

例如
  1. [b]字[字[/b]
复制代码
对于第一个无法match
而对于第二个可以match

TOP

返回列表 回复 发帖