Forgot password?
 Create new account
Author: abababa

tikzjax 能脱离服务器用吗?

[Copy link]

418

Threads

1628

Posts

110K

Credits

Credits
11891

Show all posts

 Author| abababa Posted at 2021-11-16 17:26:24
Last edited by hbghlyj at ereyesterday 00:59发一个试试

418

Threads

1628

Posts

110K

Credits

Credits
11891

Show all posts

 Author| abababa Posted at 2021-11-16 17:27:21
回复 52# abababa

怎么这么多乱码?

701

Threads

110K

Posts

910K

Credits

Credits
94177
QQ

Show all posts

kuing Posted at 2021-11-16 17:33:56
回复 53# abababa

1、勾选“禁用 Discuz!代码”
2、[ tikz ] 后面不要回车

418

Threads

1628

Posts

110K

Credits

Credits
11891

Show all posts

 Author| abababa Posted at 2021-11-16 17:38:43
回复 54# kuing

原来如此。那替换的时候,把tikz里的<br>都替换了就好了吧。不过看后面还有font什么的,不知道是什么。

701

Threads

110K

Posts

910K

Credits

Credits
94177
QQ

Show all posts

kuing Posted at 2021-11-16 17:42:00
回复 55# abababa

后面那堆估计是 color=qqwuqq 引起的(这是啥颜色),你去掉一下,再去掉“禁用 Discuz!代码”看看如何
PS、机器转码真的太……

701

Threads

110K

Posts

910K

Credits

Credits
94177
QQ

Show all posts

kuing Posted at 2021-11-16 17:47:23
我发现手机端似乎不行……

801

Threads

4889

Posts

310K

Credits

Credits
36169

Show all posts

isee Posted at 2021-11-16 18:50:44
发一个试试

[tikz]\begin{tikzpicture}[line cap=round,line join=round,>=triangle 45,x=1.0cm,y=1.0cm]
...
abababa 发表于 2021-11-16 17:26
逮住你们在这里“图谋”了

418

Threads

1628

Posts

110K

Credits

Credits
11891

Show all posts

 Author| abababa Posted at 2021-11-16 19:08:53
回复 56# kuing
再试一下去掉color的,那些颜色是用Geogebra画图时加了颜色,然后软件自动生成的一些颜色,在前面有\definecolor{qqwuqq}{rgb}{0,0.39,0}这样的定义,如果去掉这些定义,在真的latex里就不能编译了,但在这里就是全变成黑色。

418

Threads

1628

Posts

110K

Credits

Credits
11891

Show all posts

 Author| abababa Posted at 2021-11-16 19:11:11
回复 59# abababa

果然是color的原因,那就不能直接用[color=]这种了啊,必须得在前面加些什么东西才行,比如[line width=1.2pt,color=],这样就行了,但fill里的color要加什么呢?

701

Threads

110K

Posts

910K

Credits

Credits
94177
QQ

Show all posts

kuing Posted at 2021-11-16 20:57:36
回复 60# abababa

color 前面加个逗号估计就可以。

701

Threads

110K

Posts

910K

Credits

Credits
94177
QQ

Show all posts

kuing Posted at 2021-11-16 21:29:04
引用时只引用到 [ tikz ] 而引用不到 [ /tikz ],但是单一个 [ tikz ] 也会被替换,造成错误。
能否做到匹配到完整的 [ tikz ] ... [ /tikz ] 才作替换呢?(而且不能跨楼层匹配)

701

Threads

110K

Posts

910K

Credits

Credits
94177
QQ

Show all posts

kuing Posted at 2021-11-16 21:46:12
回复  kuing

原来如此。那替换的时候,把tikz里的<br>都替换了就好了吧。 ...
abababa 发表于 2021-11-16 17:38
嗯,弄好了,[ tikz ] 后可以换行了

3147

Threads

8493

Posts

610K

Credits

Credits
66163
QQ

Show all posts

hbghlyj Posted at 2021-11-16 21:51:08
Last edited by hbghlyj at 2022-8-2 22:03:00我按照这个教程自己搭建了CORS proxy.好像成功了.示例如下:
  1. fetch("https://tranquil-ridge-80735.herokuapp.com/artofproblemsolving.com/m/texer/ajax.php:443", {
  2.   "headers": {
  3.    "content-type": "application/x-www-form-urlencoded; charset=UTF-8"
  4.   },
  5.   "referrer": "https://artofproblemsolving.com/",
  6.   "referrerPolicy": "origin",
  7.   "body": "action=aopscode&token=hlplshue&tex=JEEk&rerender=false","method": "POST"
  8. }).then(res => res.text()).then(res=>console.log(res))
Copy the Code
可以跨域请求.它的输出是aops的网页.

418

Threads

1628

Posts

110K

Credits

Credits
11891

Show all posts

 Author| abababa Posted at 2021-11-17 09:56:14
回复 62# kuing

昨天请网友帮着做了一下,他没替换那个尖角号,加上就行了吧:
  1. function process_tikz(tikz_str) {
  2.         var str = tikz_str.replace(/\[tikz\]|\[\/tikz\]|\n|\r|<br>/img, "");
  3.         console.log(str);
  4.         str = encodeURI(str);
  5.         return '<img src="https://i.upmath.me/svg/'+str+'" />';
  6. }
  7. var posts=document.getElementsByClassName('postmessage');
  8. for(var i = 0; i < posts.length; i++){
  9.         var post = posts[i];
  10.         var html = post.innerHTML;
  11.         html = html.replace(
  12.                 /\[tikz\]([\s\S]*?)\[\/tikz\]/igm,
  13.                 process_tikz
  14.         );
  15.         post.innerHTML = html;
  16. }
Copy the Code

15

Threads

948

Posts

110K

Credits

Credits
12412

Show all posts

色k Posted at 2021-11-17 13:18:01
回复 65# abababa

这个挺好用,手机也能看了
尖括号好像不需要替换。
晚点再处理一下影响code里的代码的问题。

418

Threads

1628

Posts

110K

Credits

Credits
11891

Show all posts

 Author| abababa Posted at 2021-11-17 13:28:16
Last edited by abababa at 2021-11-17 13:41:00回复 66# 色k

我是这么想的,那个code其实就是想看源代码,那能不能就像latex代码那样,点一下代码然后出来一个框,里面是代码。然后我试着做了一下:
  1. function close_tikz_window(){
  2.         var tikz_window=document.getElementById('tikz_window');
  3.         if(tikz_window){
  4.                 tikz_window.remove();
  5.         }
  6. }
  7. function show_tikz_window(tikz_code){
  8.         close_tikz_window();
  9.         var tikz_window=document.createElement('div');
  10.         tikz_window.id='tikz_window';
  11.         tikz_window.style='position: fixed; z-index: 201; left: 317px; top: 228px; width: 500px;border:2px green solid;';
  12.         tikz_window.innerHTML='<div><a href="javascript:;" class="float_close" onclick="close_tikz_window();">关闭</a></div><div><pre>'+decodeURI(tikz_code)+'</pre></div>';
  13.         document.body.append(tikz_window);
  14. }
  15. function process_tikz(tikz_str) {
  16.         // 原始的tikz代码
  17.         var str = tikz_str.replace(/\[tikz\]|\[\/tikz\]|\n|\r/img, "");
  18.         str=str.replace('&lt','<').replace('&gt;','>');
  19.         var tikz_str=encodeURI(str);
  20.         //去掉换行的tikz代码
  21.         var mystr=str.replace(/<br>/img,'');
  22.         //编码
  23.         mystr = encodeURI(mystr);
  24.         //创建一个图片,点击图片时显示原始的tikz代码
  25.         var s = '<img src="https://i.upmath.me/svg/'+mystr+'" onclick="show_tikz_window(\''+tikz_str+'\');" />';
  26.         console.log(s);
  27.         return s;
  28. }
  29. var posts=document.getElementsByClassName('postmessage');
  30. for(var i = 0; i < posts.length; i++){
  31.         var post = posts[i];
  32.         var html = post.innerHTML;
  33.         html = html.replace(
  34.                 /\[tikz\]([\s\S]*?)\[\/tikz\]/igm,
  35.                 process_tikz
  36.         );
  37.         post.innerHTML = html;
  38. }
Copy the Code
点那个图片就能出来一个框,里面是源代码。改了一下,发现对应的有一个decodeURI函数,那先把它encodeURI,然后传到函数里,就变成能传的字符串了,然后显示的时候再decodeURI一下,就变回编码前的那样了。

418

Threads

1628

Posts

110K

Credits

Credits
11891

Show all posts

 Author| abababa Posted at 2021-11-17 14:05:54
回复 67# abababa

觉得用文本框好点,自动就带那个滚动条,也不用考虑内容多少的问题,都能放下:
  1. function close_tikz_window(){
  2.         var tikz_window=document.getElementById('tikz_window');
  3.         if(tikz_window){
  4.                 tikz_window.remove();
  5.         }
  6. }
  7. function show_tikz_window(tikz_code){
  8.         close_tikz_window();
  9.         var tikz_window=document.createElement('div');
  10.         tikz_window.id='tikz_window';
  11.         tikz_window.style='position: fixed; z-index: 201; left: 317px; top: 228px; width: 500px;border:2px green solid;';
  12.         tikz_window.innerHTML='<div><a href="javascript:;" class="float_close" onclick="close_tikz_window();">关闭</a></div><div><textarea style="width:99%;height:300px;">'+decodeURI(tikz_code)+'</textarea></div>';
  13.         document.body.append(tikz_window);
  14. }
  15. function process_tikz(tikz_str) {
  16.         // 原始的tikz代码
  17.         var str = tikz_str.replace(/\[tikz\]|\[\/tikz\]|<br>/img, "");
  18.         str=str.replace('&lt','<').replace('&gt;','>');
  19.         var tikz_str=encodeURI(str);
  20.         //去掉换行的tikz代码
  21.         var mystr=str.replace(/\n|\r/img,'');
  22.         //编码
  23.         mystr = encodeURI(mystr);
  24.         //创建一个图片,点击图片时显示原始的tikz代码
  25.         var s = '<img src="https://i.upmath.me/svg/'+mystr+'" onclick="show_tikz_window(\''+tikz_str+'\');" />';
  26.         console.log(s);
  27.         return s;
  28. }
  29. var posts=document.getElementsByClassName('postmessage');
  30. for(var i = 0; i < posts.length; i++){
  31.         var post = posts[i];
  32.         var html = post.innerHTML;
  33.         html = html.replace(
  34.                 /\[tikz\]([\s\S]*?)\[\/tikz\]/igm,
  35.                 process_tikz
  36.         );
  37.         post.innerHTML = html;
  38. }
Copy the Code

701

Threads

110K

Posts

910K

Credits

Credits
94177
QQ

Show all posts

kuing Posted at 2021-11-17 14:34:13
回复 68# abababa

嗯,这个好点。

str=str.replace('&lt','<').replace('&gt;','>');
这句的确是多余的,而且也没写对,不止是 lt 后面漏了 ;

418

Threads

1628

Posts

110K

Credits

Credits
11891

Show all posts

 Author| abababa Posted at 2021-11-17 14:45:06

AoPS 测试

回复 69# kuing

原来如此。我还是看以前的那个改的,也没记清具体怎么写,就照记忆抄下来了。因为我是在html文件里试验的,也没有这个符号,所以也不知道错在哪。

701

Threads

110K

Posts

910K

Credits

Credits
94177
QQ

Show all posts

kuing Posted at 2021-11-17 14:47:40
回复 70# abababa

49# 的第三个图弹不出框,原因应该是代码里面有 ' 影响了,咋改哩?

手机版Mobile version|Leisure Math Forum

2025-4-20 22:26 GMT+8

Powered by Discuz!

× Quick Reply To Top Return to the list