UseModWiki소스수정/LaTeX플러그인 페이지의 소스 보기
마지막으로 [b]
-- Loading page list... --
내용출력
로그인[l]
Diary
[f]
최근변경내역
[r]
페이지목록[i]
횡설수설[2]
게시판[3]
링크
수정할 수 없습니다: UseModWiki소스수정/LaTeX플러그인 는 읽기 전용 페이지입니다.
== #
LaTeX
플러그인 == 기존에서도 [[/LaTeX]] 지원 기능이 있긴 했는데, 이건 서버에 LaTeX이 설치되어 있어야 했다. 서버에 설치할 수 없는 경우를 위해서, [http://www.codecogs.com/latex/eqneditor.php Online LaTeX Equation Editor] 사이트를 이용하는 플러그인을 추가로 만들었음. (다만, 온라인 편집기 사이트에서는 추가로 스타일이나 환경을 설치할 수 없으므로, 사용할 수 있는 수식이 제한적인 것 같다) * 선택 요구 사항: Cpan:LWP::Simple 모듈이 있어야 이미지를 캐시로 가져올 수 있다. 모듈이 없으면 매번 저 사이트에서 변환해서 가져온다. === # 사용법 === [[/LaTeX]]과 동일한 문법을 쓸 수 있다. {{{ inline 수식 $$ 수식 $$ 블록 형태 수식: \[ 수식 \] 또는 {{{#!latex 수식 }}} }}}
$UseLatex
값이 1이면 서버에 설치된 LaTeX을 이용한다. (차후에 이 패치는 아예 제거할까 생각중) 이 값이 0이면 이 패치에 있는 플러그인을 사용한다. 예: {{{ 문장 중간에서는 $$ \sum_{n=1}^\infty a_n = \int_0^1 f $$로 쓰여지고, 독립된 수식에서는 \[ \sum_{n=1}^\infty a_n = \int_0^1 f \]로 쓰여진다. }}} 문장 중간에서는 $$ \sum_{n=1}^\infty a_n = \int_0^1 f $$로 쓰여지고, 독립된 수식에서는 \[ \sum_{n=1}^\infty a_n = \int_0^1 f \]로 쓰여진다. 일단 만들어진 그림 파일은
$UploadDir/latex
디렉토리에 캐시로 저장된다. === # plugin/latex.pl 추가 === {{{#!vim perl # latex plugin # http://www.codecogs.com/latex/eqneditor.php 이용 # # usage : # 1) inline: # $$ equation $$ - inline # or # {{{#!latex inline # equation # }}} # # 2) display: # \[ equation \] # or # {{{#!latex # equation - display # }}} use strict; use warnings; sub plugin_latex { my ($content, @opt) = @_; my $img; my $class; # 캐시 저장할 이미지 파일명 require Digest::MD5; my $hash = Digest::MD5::md5_hex($content.join('',@opt)); my $imgfile = "$hash.png"; # 저장할 디렉토리 my $dir = "$UploadDir/latex"; my $url = "$UploadUrl/latex"; # 옵션 inline 처리 if ( $opt[0] eq 'inline' ) { $content = '\inline '.$content; $class = 'latexinline'; } else { $class = 'latexdisplay'; } # 반환할 이미지 태그 my $alt = "latex equation"; my $img_cached = qq(
); # 캐시에 있으면 주소 반환 if ( -f "$dir/$imgfile" ) { return $img_cached; } # 캐시에 없으면 새로 구성 $content =~ s/\r?\n/ /g; my $src = "http://latex.codecogs.com/gif.latex?$content"; my $img_latex = qq(
); # LWP::Simple이 없으면 온라인 사이트의 변환 결과 주소를 바로 반환 - 느리다 if ( not eval { require LWP::Simple } ) { return $img_latex; } # 캐시 디렉토리에 저장하고 주소 반환 eval { CreateDir($UploadDir); CreateDir($dir); }; return $img_latex if $@; my $res = LWP::Simple::getstore($src, "$dir/$imgfile"); if ( $res eq "200" ) { return $img_cached; } else { return $img_latex; } } 1; }}} === # wiki.css 추가 === {{{#!vim css /* latex plugin */ img.latexinline { vertical-align: middle; display: inline; } img.latexdisplay { display: block; margin: 1em auto 1em 10%; } }}} === # wiki.pl 수정 === {{{#!vim perl sub CommonMarkup { ... ### LaTeX 지원 if ($UseLatex) { s/\\\[((.|\n)*?)\\\]/&StoreRaw(&MakeLaTeX("\$"."$1"."\$", "display"))/ige; s/\$\$((.|\n)*?)\$\$/&StoreRaw(&MakeLaTeX("\$"."$1"."\$", "inline"))/ige; } # 아래 추가 else { s/\$\$(.*?)\$\$/StorePlugin('latex inline', $1)/ges; s/\\\[(.*?)\\\]/StorePlugin('latex', $1)/ges; } ... } }}} === # 추가 업데이트 내역 === === # 사용자 의견 === 안녕하세요. 모니위키에 LaTeX 설치하는 방법 찾다가 여기까지 왔습니다. \\ Ubuntu 20.04 LTS 에 모니위키 설치 중인데요, \\ LaTeX 가 동작하게 할 방법이 있을까요? \\ 아니면 지금 사용하시는 위키를 저도 써 볼 방법이 있는지도 궁금합니다. 감사합니다.
---- [[위키위키분류]]
UseModWiki소스수정/LaTeX플러그인
페이지로 돌아가기 |
다른 수정본 보기