Texmaker は,統合環境として使える LaTeX エディタです. SyncTeX もサポートされています. Texmaker のデフォルトの文字コードは UTF-8 です.
現在は Texmaker から開発がフォークし,機能の追加や不具合が修正された TeXstudio もあります.ただし,使用感が Texmaker とは違う部分もあります.
Windows, macOS, Linux
GPLv2
Texmaker (free cross-platform latex editor) から,Windows, macOS, Linux 用の 64-bit バイナリおよびソースコードがダウンロードできます.
Windows の場合は msi 形式のファイルをダウンロードして実行すればインストールされます.
macOS の場合は dmg 形式のファイルをダウンロードして展開します.
Homebrew でインストールすることもできます.
https://github.com/Homebrew/homebrew-cask/blob/master/Casks/texmaker.rb
brew install texmaker --cask
Linux の場合はパッケージ管理システムからインストールするのがよいです.パッケージ名は大抵 texmaker でしょう.
Texmaker はデフォルトでは英語でメニューが表示されますが,メニューを日本語化するためのファイルが作成されています.
texmaker_jp.qm を texmaker.exe と同じフォルダーに置いて Texmaker を起動して Options > Interface Language > jp を選択して Texmaker を再起動するとメニューが日本語化されます.
macOS の Qt アプリケーションで Backslash (U+005C) が 円記号 (U+00A5) に変換されるバグがあるようです (Backslash is converted to YEN SIGN on Qt for Mac with JIS keyboard.).
Karabiner で Backslash が優先されるようにキーバインドを変更するとよいようです.
Windows の Texmaker には,かな漢字変換をする際に変換候補の文字色とその背景色がともに「黒」となって読めなくなるという不具合があります.
Options > Configure Texmaker > Editor で Dark theme を選択することで回避できます.
% これが本当で困っているならばバグ報告するべきでは.ここに書いて終わりですか?
Texmaker はコマンドの設定に使用するパラメータのパースの仕方に問題があります. TeXstudio ではコマンドの設定に使用するパラメータが正しく処理されています.
Texmaker のマニュアルにはコマンドの設定に % という表示が必要になった場合に %% と記述すればよいとありますが,%% を % よりも前に記述した場合は %% が % に変換されますが % が "basename" に変換されません.また,%% を % よりも後に記述した場合は %% は % に変換されずに "basename" が2回出力されてしまいます.
https://fossies.org/linux/texmaker/texmaker.cpp#l_7703 によると Texmaker では
QRegExp rx2("(%+)"); capt=""; if (rx2.indexIn(commandline) != -1) capt=rx2.cap(1); if (capt=="%") commandline.replace("%","\""+basename+"\""); else if (capt=="%%") commandline.replace("%%","%");
と記述されており,最初に % にマッチした場合は % が "basename" に置き換えられて %% は % に変換されずに "basename" が2回出力され,最初に %% にマッチした場合は %% は % に変換されますが % は "basename" に変換されずに % のまま出力されるためこの処理方法ではファイル名 (%) と % の表記 (%%) は同時に使用することが困難であると考えられます.
https://github.com/texstudio-org/texstudio/blob/master/src/buildmanager.cpp#L476 によると TeXstudio では
for (int i = 0; i < str.size(); i++) { QString add; if (str.at(i) == QChar('%')) { if (str.at(i + 1) == QChar('%')) add = str.at(++i); else add = "\"" + mainFile.completeBaseName() + "\"";
と記述されており,正規表現は使用せずに1文字ずつ文字列をチェックして %% であれば % を追加して % であれば "basename" を追加して文字列リストを作成するようです.
実例を挙げると例えば Windows 版の TeXstudio では Latexmk-upLaTeX は以下の設定で動作します.
latexmk.exe -e "$latex=q/uplatex %%O -kanji=utf8 -no-guess-input-enc -synctex=1 -interaction=nonstopmode %%S/" -e "$bibtex=q/upbibtex %%O %%B/" -e "$biber=q/biber %%O --bblencoding=utf8 -u -U --output_safechars %%B/" -e "$makeindex=q/upmendex %%O -o %%D %%S/" -e "$dvipdf=q/dvipdfmx %%O -o %%D %%S/" -norc -gg -pdfdvi -silent %
ところが Windows 版の Texmaker では上記の設定では動作せず以下のように %% を記述しない方法で設定する必要があります.
ruby -e "cmd='latexmk -e '+0x22.chr+'$latex=q/uplatex '+0x25.chr+'O'+' -kanji=utf8 -no-guess-input-enc -synctex=1 -interaction=nonstopmode '+0x25.chr+'S'+'/'+0x22.chr+' -e '+0x22.chr+'$bibtex=q/upbibtex '+0x25.chr+'O'+' '+0x25.chr+'B'+'/'+0x22.chr+' -e '+0x22.chr+'$biber=q/biber '+0x25.chr+'O'+' --bblencoding=utf8 -u -U --output_safechars '+0x25.chr+'B'+'/'+0x22.chr+' -e '+0x22.chr+'$makeindex=q/upmendex '+0x25.chr+'O'+' -o '+0x25.chr+'D'+' '+0x25.chr+'S'+'/'+0x22.chr+' -e '+0x22.chr+'$dvipdf=q/dvipdfmx '+0x25.chr+'O'+' -o '+0x25.chr+'D'+' '+0x25.chr+'S'+'/'+0x22.chr+' -norc -gg -pdfdvi '+'%.tex';system(cmd)"
Ruby では
0x25.chr
Windows PowerShell では
[char]0x25
で % を表示できます. このようにして Ruby や Windows PowerShell を使用して表示したい文字を「数値→文字」の変換で表現して設定を記述すれば OK です. Ruby, Windows PowerShell の他に バッチファイルやシェルスクリプトを使用しても OK です.
Texmaker で使用する文字コードはデフォルトでは UTF-8 です. このため,Shift_JIS, ISO-2022-JP, EUC-JP の文字コードを使用しているファイルを開きたい場合は,事前にファイルの文字コードを UTF-8 に変換する必要があります. 文字コードの変換には,各種テキストエディタの機能を使う方法と,コマンドラインから変換プログラムを使う方法があります.
% 以下の設定解説ページは読めるものではない.一から書き直しが必要.
Texmaker/設定 を参照.
Texmaker/使い方 を参照.