テキストエディター「Mery」Ver 2.2.5

Mery 2.2.5

スポンサーリンク

更新履歴

  • onig.dll を 5.9.6 に更新
  • libhunspell.dll を 1.3.3 に更新
  • スペルチェックで辞書ファイルの文字コードを aff ファイルから取得するようにした
  • スペルチェックの単語の区切り判定ロジックを見直した
  • マクロの記録で Copy メソッドの引数の meCopyUnicode を廃止
  • Editor_GetSelType で SEL_TYPE_SELECTED の論理和を返していたのをやめた
  • プラグインの SEL_TYPE_SELECTED 定数を廃止
  • 右クリックメニューの初期値に「リンクをコピー」「リンクを表示」の機能を追加
  • メニューキーからコンテキストメニューを開いた時のメニューの表示位置を修正
  • 引用付き貼り付けの機能を追加
  • 印刷プレビューで「最後のページ」が効かなかったのを修正
  • ポップアップメニューにスペルチェックを追加した際にチェック状態が反映されなかったのを修正
  • 外部で更新されたファイルを読み直す時に文字コードを自動選択するようにした
  • その他、細かいバグ修正

ダウンロード

Mery_2.2.5.5016.zip

* Windows 8, 7, Vista, XP 対応

スポンサーリンク

関連する記事

フォローする

コメント (17)

  1. 右クリックメニューに "リンクをコピー"・"リンクを表示" を追加しました。これは "ポップアップメニューの設定" で "編集" のカテゴリから追加できます。ポップアップメニューを変更していない場合は "リセット" でも良いです。

    "引用付き貼り付け" は機能的に "引用付きコピー" と重複して分かりにくくなる恐れがあるのでメインメニューからは外しています。キーボードに割り当てるか "ポップアップメニューの設定" から右クリックメニューに追加することで使用可能になります。ちなみに、引用付きコピーしたものを引用付き貼り付けすると当然、引用マークは 2 つ付いてしまいます。

    既存のプラグインで影響がでそうなのが 1 点あります。Editor_GetSelType の戻り値で SEL_TYPE_SELECTED (0x20) との論理和を返していたのですが意味がないので SEL_TYPE_NONE、SEL_TYPE_CHAR、SEL_TYPE_BOX のどれかを返すようにしました。

     |  Kuro
  2. アップデート キターー!!
    テンション上がって全裸になりました。
    でも、ちょっと寒いのでパジャマを着ました。

    ぬくっぬくです。
    これでいい夢が見れそうです。
    おやすみなさい。

     |  玄米茶
  3. いつも愛用させて頂いております。
    最新版ですが、アップデートしたところ起動時に「不明な発行元」の警告が出るようになってしまいました。
    OSはVistaです。
    お手数ですがご回答の程よろしくお願いします。

     |  生姜湯
  4. > 生姜湯どの

    おそらく、ダウンロードした exe か zip のプロパティを見ると、「全般」のタブの一番下に「ブロックの解除」というボタンがあったのではないでしょうか。
    (ネットワークからダウンロードしてきたファイルになんかそういうフラグが付いている)
    「ブロックの解除」ボタンを押してから再度インストールしてみるとどうでしょうか。

     |  ゆうしゃあああ
  5. 更新ありがとうございます m(_ _)m

     |  saku
  6. > ゆうしゃあああ様

    素早いご指摘ありがとうございます。
    まさにその通りで解決しました。
    今まで該当した事がなく存じませんでしたが、常識だったのでしょうか(^_^;)
    ともあれこれで快適に使用出来ます。ありがとうございました。

     |  生姜湯
  7. ● 玄米茶 さん

    早速の全裸ダウンロードありがとうございます。
    私も Mery の開発は主に全裸で行っております(違

    ● 生姜湯 さん、ゆうしゃあああ さん

    Mery をご愛用くださりありがとうございます。
    返信が遅くなりすみません、解決されたようで良かったです。
    ゆうしゃあああ さんありがとうございました。
    (「ブロックの解除」の機能なんて知りませんでした……)

    ● saku さん

    書き込みありがとうございます。
    地味な更新なのです……

     |  Kuro
  8. 更新お疲れ様です&ありがとうございます.
    プラグイン回りの変更で注意してもらえるなんて,私は果報者です(なんて

    「ブロックの解除」機能ですが,zip の場合アーカイバによって勝手に外れたりします.
    Windows7 のエクスプローラでの展開だと,展開したファイル全てにこのブロック属性がつきますねぇ.
    この属性がついた .NET の DLL がロードできなかったり地味に影響があったりします.

     |  ks
  9. ks さんコメントありがとうございます&ご愛用くださりありがとうございます!
    SDK の方も更新しておきました。

    > プラグイン回りの変更で注意してもらえるなんて,私は果報者です(なんて

    こちらこそ、細かいところまで知ってくださっていてうれしい限りでございますw
    今回から機能追加の際に MEID を振り直すのをやめまして、末尾に追加するようにしました。git のソースも更新しておきました。といっても SDK を見てる人ってそうとう少ないでしょうが……w

     |  Kuro
  10. こんにちは。
    いつも便利に利用させていただいています。
    「ブロックの解除」は正確には“Webコンテンツゾーン情報”によるものですね。
    Windows 8.1 以降では無用の長物のようです。
    Windows 8.1ミニTips (29) プロパティダイアログ - その5 : Windows 8.1では不要なゾーン情報 | マイナビニュース - http://news.mynavi.jp/column/win81tips/029/

    ところで,1/31現在のBitDefender系?アンチウイルスソフトでトロイの木馬っぽい名称で誤検出されるようです。
    Antivirus scan for 9886c19af96737e87a75a10a44eb9d6d9400027d5a46a8d5a0d6e0258192eeb1 at UTC - VirusTotal
    - https://www.virustotal.com/ja/file/9886c19af96737e87a75a10a44eb9d6d9400027d5a46a8d5a0d6e0258192eeb1/analysis/1422676907/
    検出率も 9 / 57 ですし,誤検出だとは思いますが('◇')ゞ

     |  アイヴァーン
  11. ● アイヴァーン さん

    ご報告ありがとうございます。
    VirusTotal 見てみました。ほんとですね。マイナーなソフトなので毎度、バージョンアップするたびにアンチウイルスソフトに引っかかりがちですね。すみませんorz

    最近ではダウンロード数が少ないだけでウイルス認定されちゃったり Chrome 先生にすら弾かれてしまいますしね…
    Vector さんがある程度はウイルスチェックをしてくれていますので大丈夫だとは思いますが…

     |  Kuro
  12. 一応、BitDefender の方には連絡しておきましたので、そのうち誤解だとわかってもらえる日が来るかもしれません…

     |  Kuro
  13. BitDefender 系、合格するようになりました。
    あとは Ikarus と nProtect のみですが、検体の送付先がわかりませんね…

     |  Kuro
  14. Tex2PDF01.js
    -----------------------Start------------------------
    (function () {
    var menu = window.CreatePopupMenu();
    menu.Add("pLaTeX (ptex2pdf)", 1, 0);
    menu.Add("pLaTeX (dvips + ps2pdf)", 2, 0);
    menu.Add("upLaTeX (ptex2pdf)", 3, 0);
    menu.Add("upLaTeX (dvips + ps2pdf)", 4, 0);
    menu.Add("pdfLaTeX", 5, 0);
    menu.Add("LuaLaTeX", 6, 0);
    menu.Add("LuaJITLaTeX", 7, 0);
    menu.Add("XeLaTeX", 8, 0);
    menu.Add("", 0, meMenuSeparator);
    menu.Add("pLaTeX (ptex2pdf) [Adobe Reader]", 11, 0);
    menu.Add("pLaTeX (dvips + ps2pdf) [Adobe Reader]", 12, 0);
    menu.Add("upLaTeX (ptex2pdf) [Adobe Reader]", 13, 0);
    menu.Add("upLaTeX (dvips + ps2pdf) [Adobe Reader]", 14, 0);
    menu.Add("pdfLaTeX [Adobe Reader]", 15, 0);
    menu.Add("LuaLaTeX [Adobe Reader]", 16, 0);
    menu.Add("LuaJITLaTeX [Adobe Reader]", 17, 0);
    menu.Add("XeLaTeX [Adobe Reader]", 18, 0);
    menu.Add("", 0, meMenuSeparator);
    menu.Add("pBibTeX", 51, 0);
    menu.Add("upBibTeX", 52, 0);
    menu.Add("BibTeX", 53, 0);
    menu.Add("BibTeXu", 54, 0);
    menu.Add("", 0, meMenuSeparator);
    menu.Add("Mendex", 61, 0);
    menu.Add("MakeIndex", 62, 0);
    menu.Add("TeXindy", 63, 0);
    menu.Add("", 0, meMenuSeparator);
    menu.Add("TeXworks", 71, 0);
    menu.Add("SumatraPDF", 72, 0);
    menu.Add("fwdsumatrapdf", 73, 0);
    menu.Add("pdfopen", 74, 0);
    menu.Add("", 0, meMenuSeparator);
    menu.Add("Quit", 99, 0);

    var menuItem = menu.Track(0);
    switch (menuItem) {
    case 1:
    var c = document.Path;
    var b = new ActiveXObject("Scripting.FileSystemObject").GetBaseName(document.Name);
    var cd = "cd /d " + ["\"", c, "\""].join("");
    var ptex2pdf = "ptex2pdf -l -ot \"-synctex=1 -guess-input-enc -sjis-terminal\"";
    var encoding = document.Encoding;
    if (encoding == meEncodingUTF8WithoutSignature || encoding == meEncodingUTF8WithSignature || encoding == meEncodingUTF8) {
    ptex2pdf = "ptex2pdf -l -ot \"-synctex=1 -no-guess-input-enc -kanji=utf8 -sjis-terminal\"";
    } else if (encoding == meEncodingShiftJIS) {
    ptex2pdf = "ptex2pdf -l -ot \"-synctex=1 -no-guess-input-enc -kanji=sjis -sjis-terminal\"";
    } else if (encoding == meEncodingEUC) {
    ptex2pdf = "ptex2pdf -l -ot \"-synctex=1 -no-guess-input-enc -kanji=euc -sjis-terminal\"";
    } else if (encoding == meEncodingJIS) {
    ptex2pdf = "ptex2pdf -l -ot \"-synctex=1 -no-guess-input-enc -kanji=jis -sjis-terminal\"";
    }
    ptex2pdf += " " + ["\"", b, "\""].join("");
    var cmd = "cmd /c " + cd + " && " + ptex2pdf;
    execute(cmd);
    break;
    case 2:
    var c = document.Path;
    var b = new ActiveXObject("Scripting.FileSystemObject").GetBaseName(document.Name);
    var cd = "cd /d " + ["\"", c, "\""].join("");
    var latex = "platex -synctex=1 -guess-input-enc -sjis-terminal";
    var encoding = document.Encoding;
    if (encoding == meEncodingUTF8WithoutSignature || encoding == meEncodingUTF8WithSignature || encoding == meEncodingUTF8) {
    latex = "platex -synctex=1 -no-guess-input-enc -kanji=utf8 -sjis-terminal";
    } else if (encoding == meEncodingShiftJIS) {
    latex = "platex -synctex=1 -no-guess-input-enc -kanji=sjis -sjis-terminal";
    } else if (encoding == meEncodingEUC) {
    latex = "platex -synctex=1 -no-guess-input-enc -kanji=euc -sjis-terminal";
    } else if (encoding == meEncodingJIS) {
    latex = "platex -synctex=1 -no-guess-input-enc -kanji=jis -sjis-terminal";
    }
    latex += " " + ["\"", b, "\""].join("");
    var dvips = "dvips -Ppdf -z -f" + " " + ["\"", b, ".dvi", "\""].join("") + " | convbkmk -g > " + ["\"", b, ".ps", "\""].join("");
    var ps2pdf = "ps2pdf.bat" + " " + ["\"", b, ".ps", "\""].join("");
    var cmd = "cmd /c " + cd + " && " + latex + " && " + dvips + " && " + ps2pdf;
    execute(cmd);
    break;
    case 3:
    var c = document.Path;
    var b = new ActiveXObject("Scripting.FileSystemObject").GetBaseName(document.Name);
    var cd = "cd /d " + ["\"", c, "\""].join("");
    var ptex2pdf = "ptex2pdf -l -u -ot \"-synctex=1 -no-guess-input-enc -kanji=utf8\"" + " " + ["\"", b, "\""].join("");
    var cmd = "cmd /c " + cd + " && " + ptex2pdf;
    execute(cmd);
    break;
    case 4:
    var c = document.Path;
    var b = new ActiveXObject("Scripting.FileSystemObject").GetBaseName(document.Name);
    var cd = "cd /d " + ["\"", c, "\""].join("");
    var latex = "uplatex -synctex=1 -no-guess-input-enc -kanji=utf8" + " " + ["\"", b, "\""].join("");
    var dvips = "dvips -Ppdf -z -f" + " " + ["\"", b, ".dvi", "\""].join("") + " | convbkmk -u > " + ["\"", b, ".ps", "\""].join("");
    var ps2pdf = "ps2pdf.bat" + " " + ["\"", b, ".ps", "\""].join("");
    var cmd = "cmd /c " + cd + " && " + latex + " && " + dvips + " && " + ps2pdf;
    execute(cmd);
    break;
    case 5:
    var c = document.Path;
    var b = new ActiveXObject("Scripting.FileSystemObject").GetBaseName(document.Name);
    var cd = "cd /d " + ["\"", c, "\""].join("");
    var pdflatex = "pdflatex -synctex=1" + " " + ["\"", b, "\""].join("");
    var cmd = "cmd /c " + cd + " && " + pdflatex;
    execute(cmd);
    break;
    case 6:
    var c = document.Path;
    var b = new ActiveXObject("Scripting.FileSystemObject").GetBaseName(document.Name);
    var cd = "cd /d " + ["\"", c, "\""].join("");
    var lualatex = "lualatex -synctex=1" + " " + ["\"", b, "\""].join("");
    var cmd = "cmd /c " + cd + " && " + lualatex;
    execute(cmd);
    break;
    case 7:
    var c = document.Path;
    var b = new ActiveXObject("Scripting.FileSystemObject").GetBaseName(document.Name);
    var cd = "cd /d " + ["\"", c, "\""].join("");
    var luajitlatex = "luajitlatex -synctex=1" + " " + ["\"", b, "\""].join("");
    var cmd = "cmd /c " + cd + " && " + luajitlatex;
    execute(cmd);
    break;
    case 8:
    var c = document.Path;
    var b = new ActiveXObject("Scripting.FileSystemObject").GetBaseName(document.Name);
    var cd = "cd /d " + ["\"", c, "\""].join("");
    var xelatex = "xelatex -synctex=1" + " " + ["\"", b, "\""].join("");
    var cmd = "cmd /c " + cd + " && " + xelatex;
    execute(cmd);
    break;
    case 11:
    var c = document.Path;
    var b = new ActiveXObject("Scripting.FileSystemObject").GetBaseName(document.Name);
    var cd = "cd /d " + ["\"", c, "\""].join("");
    var ptex2pdf = "ptex2pdf -l -ot \"-guess-input-enc -sjis-terminal\"";
    var encoding = document.Encoding;
    if (encoding == meEncodingUTF8WithoutSignature || encoding == meEncodingUTF8WithSignature || encoding == meEncodingUTF8) {
    ptex2pdf = "ptex2pdf -l -ot \"-no-guess-input-enc -kanji=utf8 -sjis-terminal\"";
    } else if (encoding == meEncodingShiftJIS) {
    ptex2pdf = "ptex2pdf -l -ot \"-no-guess-input-enc -kanji=sjis -sjis-terminal\"";
    } else if (encoding == meEncodingEUC) {
    ptex2pdf = "ptex2pdf -l -ot \"-no-guess-input-enc -kanji=euc -sjis-terminal\"";
    } else if (encoding == meEncodingJIS) {
    ptex2pdf = "ptex2pdf -l -ot \"-no-guess-input-enc -kanji=jis -sjis-terminal\"";
    }
    ptex2pdf += " " + ["\"", b, "\""].join("");
    var pdf = ["\"", b, ".pdf", "\""].join("");
    var pdfopen = "powershell -Command \"& {$pdf = \"\"" + pdf + "\"\"; $pages = (pdfinfo $pdf | Select-String \"^Pages:\"); $page = (-split $pages)[1]; pdfopen --rxi --file $pdf --page $page}\"";
    var pdfclose = "tasklist /fi \"IMAGENAME eq AcroRd32.exe\" /nh | findstr \"AcroRd32.exe\" > nul && pdfopen --rxi --file " + pdf + " && pdfclose --rxi --file " + pdf;
    var cmd = "cmd /c " + cd + " && " + pdfclose + " & " + ptex2pdf + " && " + pdfopen;
    execute(cmd);
    break;
    case 12:
    var c = document.Path;
    var b = new ActiveXObject("Scripting.FileSystemObject").GetBaseName(document.Name);
    var cd = "cd /d " + ["\"", c, "\""].join("");
    var latex = "platex -guess-input-enc -sjis-terminal";
    var encoding = document.Encoding;
    if (encoding == meEncodingUTF8WithoutSignature || encoding == meEncodingUTF8WithSignature || encoding == meEncodingUTF8) {
    latex = "platex -no-guess-input-enc -kanji=utf8 -sjis-terminal";
    } else if (encoding == meEncodingShiftJIS) {
    latex = "platex -no-guess-input-enc -kanji=sjis -sjis-terminal";
    } else if (encoding == meEncodingEUC) {
    latex = "platex -no-guess-input-enc -kanji=euc -sjis-terminal";
    } else if (encoding == meEncodingJIS) {
    latex = "platex -no-guess-input-enc -kanji=jis -sjis-terminal";
    }
    latex += " " + ["\"", b, "\""].join("");
    var dvips = "dvips -Ppdf -z -f" + " " + ["\"", b, ".dvi", "\""].join("") + " | convbkmk -g > " + ["\"", b, ".ps", "\""].join("");
    var ps2pdf = "ps2pdf.bat" + " " + ["\"", b, ".ps", "\""].join("");
    var pdf = ["\"", b, ".pdf", "\""].join("");
    var pdfopen = "powershell -Command \"& {$pdf = \"\"" + pdf + "\"\"; $pages = (pdfinfo $pdf | Select-String \"^Pages:\"); $page = (-split $pages)[1]; pdfopen --rxi --file $pdf --page $page}\"";
    var pdfclose = "tasklist /fi \"IMAGENAME eq AcroRd32.exe\" /nh | findstr \"AcroRd32.exe\" > nul && pdfopen --rxi --file " + pdf + " && pdfclose --rxi --file " + pdf;
    var cmd = "cmd /c " + cd + " && " + pdfclose + " & " + latex + " && " + dvips + " && " + ps2pdf + " && " + pdfopen;
    execute(cmd);
    break;
    case 13:
    var c = document.Path;
    var b = new ActiveXObject("Scripting.FileSystemObject").GetBaseName(document.Name);
    var cd = "cd /d " + ["\"", c, "\""].join("");
    var ptex2pdf = "ptex2pdf -l -u -ot \"-no-guess-input-enc -kanji=utf8\"" + " " + ["\"", b, "\""].join("");
    var pdf = ["\"", b, ".pdf", "\""].join("");
    var pdfopen = "powershell -Command \"& {$pdf = \"\"" + pdf + "\"\"; $pages = (pdfinfo $pdf | Select-String \"^Pages:\"); $page = (-split $pages)[1]; pdfopen --rxi --file $pdf --page $page}\"";
    var pdfclose = "tasklist /fi \"IMAGENAME eq AcroRd32.exe\" /nh | findstr \"AcroRd32.exe\" > nul && pdfopen --rxi --file " + pdf + " && pdfclose --rxi --file " + pdf;
    var cmd = "cmd /c " + cd + " && " + pdfclose + " & " + ptex2pdf + " && " + pdfopen;
    execute(cmd);
    break;
    case 14:
    var c = document.Path;
    var b = new ActiveXObject("Scripting.FileSystemObject").GetBaseName(document.Name);
    var cd = "cd /d " + ["\"", c, "\""].join("");
    var latex = "uplatex -no-guess-input-enc -kanji=utf8" + " " + ["\"", b, "\""].join("");
    var dvips = "dvips -Ppdf -z -f" + " " + ["\"", b, ".dvi", "\""].join("") + " | convbkmk -u > " + ["\"", b, ".ps", "\""].join("");
    var ps2pdf = "ps2pdf.bat" + " " + ["\"", b, ".ps", "\""].join("");
    var pdf = ["\"", b, ".pdf", "\""].join("");
    var pdfopen = "powershell -Command \"& {$pdf = \"\"" + pdf + "\"\"; $pages = (pdfinfo $pdf | Select-String \"^Pages:\"); $page = (-split $pages)[1]; pdfopen --rxi --file $pdf --page $page}\"";
    var pdfclose = "tasklist /fi \"IMAGENAME eq AcroRd32.exe\" /nh | findstr \"AcroRd32.exe\" > nul && pdfopen --rxi --file " + pdf + " && pdfclose --rxi --file " + pdf;
    var cmd = "cmd /c " + cd + " && " + pdfclose + " & " + latex + " && " + dvips + " && " + ps2pdf + " && " + pdfopen;
    execute(cmd);
    break;
    case 15:
    var c = document.Path;
    var b = new ActiveXObject("Scripting.FileSystemObject").GetBaseName(document.Name);
    var cd = "cd /d " + ["\"", c, "\""].join("");
    var pdflatex = "pdflatex" + " " + ["\"", b, "\""].join("");
    var pdf = ["\"", b, ".pdf", "\""].join("");
    var pdfopen = "powershell -Command \"& {$pdf = \"\"" + pdf + "\"\"; $pages = (pdfinfo $pdf | Select-String \"^Pages:\"); $page = (-split $pages)[1]; pdfopen --rxi --file $pdf --page $page}\"";
    var pdfclose = "tasklist /fi \"IMAGENAME eq AcroRd32.exe\" /nh | findstr \"AcroRd32.exe\" > nul && pdfopen --rxi --file " + pdf + " && pdfclose --rxi --file " + pdf;
    var cmd = "cmd /c " + cd + " && " + pdfclose + " & " + pdflatex + " && " + pdfopen;
    execute(cmd);
    break;
    case 16:
    var c = document.Path;
    var b = new ActiveXObject("Scripting.FileSystemObject").GetBaseName(document.Name);
    var cd = "cd /d " + ["\"", c, "\""].join("");
    var lualatex = "lualatex" + " " + ["\"", b, "\""].join("");
    var pdf = ["\"", b, ".pdf", "\""].join("");
    var pdfopen = "powershell -Command \"& {$pdf = \"\"" + pdf + "\"\"; $pages = (pdfinfo $pdf | Select-String \"^Pages:\"); $page = (-split $pages)[1]; pdfopen --rxi --file $pdf --page $page}\"";
    var pdfclose = "tasklist /fi \"IMAGENAME eq AcroRd32.exe\" /nh | findstr \"AcroRd32.exe\" > nul && pdfopen --rxi --file " + pdf + " && pdfclose --rxi --file " + pdf;
    var cmd = "cmd /c " + cd + " && " + pdfclose + " & " + lualatex + " && " + pdfopen;
    execute(cmd);
    break;
    case 17:
    var c = document.Path;
    var b = new ActiveXObject("Scripting.FileSystemObject").GetBaseName(document.Name);
    var cd = "cd /d " + ["\"", c, "\""].join("");
    var luajitlatex = "luajitlatex" + " " + ["\"", b, "\""].join("");
    var pdf = ["\"", b, ".pdf", "\""].join("");
    var pdfopen = "powershell -Command \"& {$pdf = \"\"" + pdf + "\"\"; $pages = (pdfinfo $pdf | Select-String \"^Pages:\"); $page = (-split $pages)[1]; pdfopen --rxi --file $pdf --page $page}\"";
    var pdfclose = "tasklist /fi \"IMAGENAME eq AcroRd32.exe\" /nh | findstr \"AcroRd32.exe\" > nul && pdfopen --rxi --file " + pdf + " && pdfclose --rxi --file " + pdf;
    var cmd = "cmd /c " + cd + " && " + pdfclose + " & " + luajitlatex + " && " + pdfopen;
    execute(cmd);
    break;
    case 18:
    var c = document.Path;
    var b = new ActiveXObject("Scripting.FileSystemObject").GetBaseName(document.Name);
    var cd = "cd /d " + ["\"", c, "\""].join("");
    var xelatex = "xelatex" + " " + ["\"", b, "\""].join("");
    var pdf = ["\"", b, ".pdf", "\""].join("");
    var pdfopen = "powershell -Command \"& {$pdf = \"\"" + pdf + "\"\"; $pages = (pdfinfo $pdf | Select-String \"^Pages:\"); $page = (-split $pages)[1]; pdfopen --rxi --file $pdf --page $page}\"";
    var pdfclose = "tasklist /fi \"IMAGENAME eq AcroRd32.exe\" /nh | findstr \"AcroRd32.exe\" > nul && pdfopen --rxi --file " + pdf + " && pdfclose --rxi --file " + pdf;
    var cmd = "cmd /c " + cd + " && " + pdfclose + " & " + xelatex + " && " + pdfopen;
    execute(cmd);
    break;
    case 51:
    var c = document.Path;
    var b = new ActiveXObject("Scripting.FileSystemObject").GetBaseName(document.Name);
    var cd = "cd /d " + ["\"", c, "\""].join("");
    var bibtex = "pbibtex -sjis-terminal";
    var encoding = document.Encoding;
    if (encoding == meEncodingUTF8WithoutSignature || encoding == meEncodingUTF8WithSignature || encoding == meEncodingUTF8) {
    bibtex = "pbibtex -kanji=utf8 -sjis-terminal";
    } else if (encoding == meEncodingShiftJIS) {
    bibtex = "pbibtex -kanji=sjis -sjis-terminal";
    } else if (encoding == meEncodingEUC) {
    bibtex = "pbibtex -kanji=euc -sjis-terminal";
    } else if (encoding == meEncodingJIS) {
    bibtex = "pbibtex -kanji=jis -sjis-terminal";
    }
    bibtex += " " + ["\"", b, "\""].join("");
    var cmd = "cmd /c " + cd + " && " + bibtex;
    execute(cmd);
    break;
    case 52:
    var c = document.Path;
    var b = new ActiveXObject("Scripting.FileSystemObject").GetBaseName(document.Name);
    var cd = "cd /d " + ["\"", c, "\""].join("");
    var bibtex = "upbibtex" + " " + ["\"", b, "\""].join("");
    var cmd = "cmd /c " + cd + " && " + bibtex;
    execute(cmd);
    break;
    case 53:
    var c = document.Path;
    var b = new ActiveXObject("Scripting.FileSystemObject").GetBaseName(document.Name);
    var cd = "cd /d " + ["\"", c, "\""].join("");
    var bibtex = "bibtex" + " " + ["\"", b, "\""].join("");
    var cmd = "cmd /c " + cd + " && " + bibtex;
    execute(cmd);
    break;
    case 54:
    var c = document.Path;
    var b = new ActiveXObject("Scripting.FileSystemObject").GetBaseName(document.Name);
    var cd = "cd /d " + ["\"", c, "\""].join("");
    var bibtex = "bibtexu" + " " + ["\"", b, "\""].join("");
    var cmd = "cmd /c " + cd + " && " + bibtex;
    execute(cmd);
    break;
    case 61:
    var c = document.Path;
    var b = new ActiveXObject("Scripting.FileSystemObject").GetBaseName(document.Name);
    var cd = "cd /d " + ["\"", c, "\""].join("");
    var makeindex = "mendex -T";
    var encoding = document.Encoding;
    if (encoding == meEncodingUTF8WithoutSignature || encoding == meEncodingUTF8WithSignature || encoding == meEncodingUTF8) {
    makeindex = "mendex -U -T";
    } else if (encoding == meEncodingShiftJIS) {
    makeindex = "mendex -S -T";
    } else if (encoding == meEncodingEUC) {
    makeindex = "mendex -E -T";
    } else if (encoding == meEncodingJIS) {
    makeindex = "mendex -J -T";
    }
    makeindex += " " + ["\"", b, "\""].join("");
    var cmd = "cmd /c " + cd + " && " + makeindex;
    execute(cmd);
    break;
    case 62:
    var c = document.Path;
    var b = new ActiveXObject("Scripting.FileSystemObject").GetBaseName(document.Name);
    var cd = "cd /d " + ["\"", c, "\""].join("");
    var makeindex = "makeindex" + " " + ["\"", b, "\""].join("");
    var cmd = "cmd /c " + cd + " && " + makeindex;
    execute(cmd);
    break;
    case 63:
    var c = document.Path;
    var b = new ActiveXObject("Scripting.FileSystemObject").GetBaseName(document.Name);
    var cd = "cd /d " + ["\"", c, "\""].join("");
    var makeindex = "texindy" + " " + ["\"", b, "\""].join("");
    var cmd = "cmd /c " + cd + " && " + makeindex;
    execute(cmd);
    break;
    case 71:
    var fso = new ActiveXObject("Scripting.FileSystemObject");
    var currentTeXFile = document.FullName;
    var pdfFile = currentTeXFile.replace(new RegExp(/\.[^.]*$/), ".pdf");
    var texworks = "texworks";

    if (!fso.FileExists(pdfFile)) {
    var mainTeXFile = window.Prompt("Input the path to main TeX file.", pdfFile.replace(new RegExp(/\.[^.]*$/), ".tex"));
    if (mainTeXFile != "") {
    pdfFile = mainTeXFile.replace(new RegExp(/\.[^.]*$/), ".pdf");
    }
    }

    var mainTeXDir = fso.GetParentFolderName(pdfFile);
    var cd = "cd /d " + ["\"", mainTeXDir, "\""].join("");
    pdfFile = ["\"", pdfFile, "\""].join("");

    var args = texworks + " " + pdfFile;
    var cmd = "cmd /c " + cd + " && echo " + args + " | cmd";
    new ActiveXObject("WScript.Shell").Run(cmd, 1, true);
    break;
    case 72:
    var fso = new ActiveXObject("Scripting.FileSystemObject");
    var mery = editor.FullName;
    var currentTeXFile = document.FullName;
    var pdfFile = currentTeXFile.replace(new RegExp(/\.[^.]*$/), ".pdf");
    var line = document.selection.GetActivePointY(mePosLogical);
    var sumatraPDF = "C:/Program Files/SumatraPDF/SumatraPDF.exe";
    var existSumatraPDF = true;
    var mainTeXDir;
    var cd;
    var cmd;
    var args;

    if (!fso.FileExists(sumatraPDF)) {
    sumatraPDF = "C:/Program Files (x86)/SumatraPDF/SumatraPDF.exe";
    if (!fso.FileExists(sumatraPDF)) {
    sumatraPDF = window.Prompt("Input the path to SumatraPDF.exe.", "SumatraPDF.exe");
    if (!fso.FileExists(sumatraPDF)) {
    sumatraPDF = "rundll32 shell32,ShellExec_RunDLL SumatraPDF";
    existSumatraPDF = false;
    }
    }
    }

    if (existSumatraPDF) {
    sumatraPDF = ["\"", sumatraPDF, "\""].join("");
    }

    if (!fso.FileExists(pdfFile)) {
    var mainTeXFile = window.Prompt("Input the path to main TeX file.", pdfFile.replace(new RegExp(/\.[^.]*$/), ".tex"));
    if (mainTeXFile != "") {
    pdfFile = mainTeXFile.replace(new RegExp(/\.[^.]*$/), ".pdf");
    }
    }

    mainTeXDir = fso.GetParentFolderName(pdfFile);
    cd = "cd /d " + ["\"", mainTeXDir, "\""].join("");
    currentTeXFile = ["\"", currentTeXFile, "\""].join("");
    pdfFile = ["\"", pdfFile, "\""].join("");

    args = sumatraPDF + " -reuse-instance " + pdfFile + " -inverse-search \"\\\"" + mery + "\\\" /l %l \\\"%f\\\"\"" + " -forward-search " + currentTeXFile + " " + line;
    cmd = "cmd /c " + cd + " && echo " + args + " | cmd";
    new ActiveXObject("WScript.Shell").Run(cmd, 1, true);
    break;
    case 73:
    var fso = new ActiveXObject("Scripting.FileSystemObject");
    var currentTeXFile = document.FullName;
    var pdfFile = currentTeXFile.replace(new RegExp(/\.[^.]*$/), ".pdf");
    var line = document.selection.GetActivePointY(mePosLogical);
    var fwdsumatrapdf = "C:/w32tex/bin/fwdsumatrapdf.exe";
    var existFwdSumatraPDF = true;
    var mainTeXDir;
    var cd;
    var cmd;
    var args;
    if (!fso.FileExists(fwdsumatrapdf)) {
    fwdsumatrapdf = window.Prompt("Input the path to fwdsumatrapdf.exe.", "fwdsumatrapdf.exe");
    if (!fso.FileExists(fwdsumatrapdf)) {
    fwdsumatrapdf = "fwdsumatrapdf.exe";
    existFwdSumatraPDF = false;
    }
    }

    if (existFwdSumatraPDF) {
    fwdsumatrapdf = ["\"", fwdsumatrapdf, "\""].join("");
    }

    if (!fso.FileExists(pdfFile)) {
    var mainTeXFile = window.Prompt("Input the path to main TeX file.", pdfFile.replace(new RegExp(/\.[^.]*$/), ".tex"));
    if (mainTeXFile != "") {
    pdfFile = mainTeXFile.replace(new RegExp(/\.[^.]*$/), ".pdf");
    }
    }

    mainTeXDir = fso.GetParentFolderName(pdfFile);
    cd = "cd /d " + ["\"", mainTeXDir, "\""].join("");
    currentTeXFile = ["\"", currentTeXFile, "\""].join("");
    pdfFile = ["\"", pdfFile, "\""].join("");

    args = fwdsumatrapdf + " " + pdfFile + " " + currentTeXFile + " " + line;
    cmd = "cmd /c " + cd + " && " + args;
    new ActiveXObject("WScript.Shell").Run(cmd, 1, true);
    break;
    case 74:
    var fso = new ActiveXObject("Scripting.FileSystemObject");
    var currentTeXFile = document.FullName;
    var pdfFile = currentTeXFile.replace(new RegExp(/\.[^.]*$/), ".pdf");
    var pdfopen = "pdfopen";

    if (!fso.FileExists(pdfFile)) {
    var mainTeXFile = window.Prompt("Input the path to main TeX file.", pdfFile.replace(new RegExp(/\.[^.]*$/), ".tex"));
    if (mainTeXFile != "") {
    pdfFile = mainTeXFile.replace(new RegExp(/\.[^.]*$/), ".pdf");
    }
    }

    var mainTeXDir = fso.GetParentFolderName(pdfFile);
    var cd = "cd /d " + ["\"", mainTeXDir, "\""].join("");
    pdfFile = ["\"", pdfFile, "\""].join("");

    var args = pdfopen + " --rxi --file " + pdfFile;
    var cmd = "cmd /c " + cd + " && echo " + args + " | cmd";
    new ActiveXObject("WScript.Shell").Run(cmd, 1, true);
    break;
    case 99:
    window.Quit();
    break;
    default:
    window.Quit();
    break;
    }

    function execute(commandLine) {
    var ok = window.Confirm(commandLine);
    if (ok) {
    document.Save();
    new ActiveXObject("WScript.Shell").Run(commandLine, 1, true);
    }
    }
    }.call(this));
    --------------------end--------------------

    [マクロ(M)]-[カスタマイズ(C)...]-[新規作成(N)] でTex2PDF01.js を選択し,次に

    [ツール(T)]-[オプション(O)...]-[キーボード] でショートカットキー (Ctrl+Tなど) を追加して割り当てる.

     |  Tex User01
  15. こんにちは。Meryには凄くお世話になっています。

    気になる挙動というか「直ればいいなぁ」くらいのものなのですが、
    半角英数、半角記号、tabを混合して文書を作成し、 印刷 > 印刷プレビュー と進むと、
    タブが確保する空白の量が編集中と異なってしまい、位置が揃わないことがあります。

    もし修正可能でしたらお願いします。

     |  うどん県民
  16. ● うどん県民 さん

    こんばんは、Mery をご愛用くださりありがとうございます。

    印刷プレビューでの位置がそろわないとのことですが、フォントの設定は固定ピッチフォント (MS ゴシックなど) を使用されていますでしょうか?

    Mery は可変ピッチフォント (MS P ゴシックなどの "P" がつくやつ) にも対応しておりますが、可変ピッチフォントを使用された場合は文字幅がそろいません。

    編集中に使用するフォント (オプションから設定) と印刷時・印刷プレビュー時に使用するフォント (印刷画面で設定) は別々に設定するようになっていますが、これを同じフォントで固定ピッチのものをしようするように設定してみてください。

     |  Kuro
  17. Kuro様

    あぁなるほど、表示フォントと印刷フォントが違うからなんですね。
    当たり前のことなのに気がつきませんでした。
    そして固定幅フォントなら印刷プレビューでもズレないということなんですね。

    分かりました、教えてくださってありがとうございます!

     |  うどん県民