訳者注:このマニュアルはTeXstudio付属のものを日本語に翻訳したものであり、内容が古いままになっている可能性がある。
TeXstudioを使用する前に、「オプション」メニュー(Mac OS Xでは「好みの設定」)の「TeXstudioの設定」を通じてエディターとLaTeX関連のコマンドの設定をすべきである。 注意すべきは詳細には2段階あることだ。 より高度なオプションやあまり使用しないオプションは、左下隅の「高度なオプションの表示」にチェックをした場合にのみ表示される。
エンコーディングとしてUTF8を使用したくない場合には、新規ファイルに対する既定のエンコーディングを変えることができる(「TeXstudioの設定」 -> 「エディタ」 -> 「既定のフォントエンコーディング」)。
忘れずに文書中のプリアンブルで同じエンコーディングをセットするように(例:UTF8を使用している場合、\usepackage[utf8]{inputenc})。
TeXstudioはUTF8とlatin1エンコーディングファイルを自動検出できるが、既存の文書で異なるエンコーディングを使用する場合は開く前に設定ダイアログでエンコーディングを指定する必要がある(そして自動検出も無効にする必要がある)。
LaTeXは、LaTeX文書をコンパイルしたり操作したりするための多数のコマンドラインツールを備えている。 コマンドの段落ではその場所と引数が定義されている。
既定値は最近の標準的なlaTeXディストリビューションで機能するが、それらを変更する必要があるかもしれない(「TeXstudioの設定」 -> 「コマンド」)。 コマンドを変更するには、対応する行の末尾のボタンをクリックして、ファイルブラウザでコマンドを選択するだけでよい。 TeXstudioは自動的にコマンドの構文を適合する。
現在の文書の状況を扱うために多数の特殊文字/文字列を使用できる。 それらは実行時に展開される:
特殊文字 | 展開後 |
---|---|
% |
現在の文書に対するルート文書の拡張子なしファイル名 |
@ |
現在の行番号 |
? (後ろに文字が続く) |
設定ダイアログの下部の説明を参照 |
[txs-app-dir] |
TeXstudio実行ファイルの場所(ポータブル版の設定に有用) |
[txs-settings-dir] |
設定ファイル(texstudio.ini)の場所 |
「順方向/逆方向検索」の段落で一般的なビューワーに対するいくつかのコマンド例が示されている。
右の「既定値に戻す」ボタンを使って既定の設定にいつでも戻すことができる。
TeXstudioではLaTeXを変換する一般的なコマンドが提供されている。
既定の設定では"pdflatex"と組み込みのPDFビューワーを使用する。
また、別の参考文献変換器と同様に他のコマンドやビューワーを選択することができる。
「組み込みPDFビューワー」ではPDF文書を閲覧する際に新しくウィンドウは開かれず、エディターのテキストの隣に直接表示される。
有益な別の方法として"latexmk"をコンパイルコマンドとして使用する方法がある(システムにコマンドがインストールされている場合)。
"latexmk"ではbiblatexと索引で依存関係を非常にうまく扱える。
更に、高度なオプションでは一般的には必要ないより詳細なカスタマイズを行える。
ここでユーザーコマンドを「追加」することで定義できる。
各々のユーザーコマンドには<command id>:<display name>
のようなパターンを持つ名前がつく(例:user0:User Command 0
)。
command idは一意的でなければならず、スペースを含んではならない。
高度な設定では、txs:///"<command id>
を用いてそれを参照することができる。
display nameはツールメニューに表示されることになる。
ユーザーコマンドはショートカット(alt+shift+F%n)またはツールメニュー(ツール/ユーザー)のいずれかで実行できる。
ユーザーコマンドは既知のコマンドを利用可能なコマンドのリストから選択して組み合わせてもよい。
この場合スパナマークをクリックすると選択可能になる。
別な方法としては、ファイルシステムを通じて直接コマンドを選択してもよい。
高度なオプションを表示するようにしている場合、ビルドシステムをより詳細に設定することができる。
すべてのtxsコマンドは呼び出すべき外部プログラム/LaTeXコマンドと他のtxsコマンドのリストとなっている。
外部プログラムは通常のコマンドラインで呼び出すことができるが、ID"foobar"を持つtxsコマンドはtxs:///foobarで呼び出す。
リストのコマンドは単なる区切りである"|"で区切られる("|"はあるプログラムからの標準出力を次のプログラムの標準入力へ渡す「パイプ」ではない)。
これらtxsコマンドにはそれぞれ一意的なIDが付けられ、「通常の」コマンドの、あるいは編集ボックスではユーザーコマンドの名前のツールチップとして表示される。 いくつかの重要なコマンドはよく使用される: txs:///quick (ビルド&表示、以前のクイックビルド)、 txs:///compile (既定のコンパイラ)、 txs:///view (既定のビューワー)、 txs:///latex (LaTeX)、 txs:///pdflatex (pdfLaTeX)、 txs:///view-pdf (既定のPDFビューワー)、 txs:///view-pdf-external (外部PDFビューワー)。
例えば、典型的なビルド設定ではF1を押してtxs:///quickを呼び出すと、txs:///compileが呼ばれ(まず実際にpdfLaTeXを実行するtxs:///pdflatexが呼ばれる)、そしてtxs:///viewが呼ばれて(txs:///view-pdfが呼ばれ、それによってtxs:///view-pdf-internalが呼ばれる)、PDFが表示される。
コマンド設定ページでコマンドとして定義されたコマンドと、ビルド設定ページでビルドとして定義されたコマンド、ユーザーコマンドとして定義されたコマンドには違いはない。
インターフェースの単純化のためにGUI側で区別しているだけである。
これは、前の定義を無視してあらゆるコマンドを望むように変更できる(iniファイルを編集してIDを変えることさえできる)という事でもある。
しかし、常に定義されている三つの内部コマンドがあり、それらは呼び出すことのみ可能で変更はできない:
txs:///internal-pdf-viewer | 現在の文書に対して内部ビューワーを開く |
txs:///view-log | 現在の文書に対してログファイルを閲覧する |
txs:///conditionally-recompile-bibliography | bibファイルが変更されているか確認して、変更されている場合txs:///recompile-bibliographyを呼ぶ |
内部PDFビューワー(txs:///internal-pdf-viewer)には動作を変更するために次のオプションを使用することもできる:
--embedded | ビューワーを埋め込みで開く |
--windowed | ビューワーを別枠で開く(オプションが与えられてない場合の規定値) |
--close-(all|windowed|embedded) | すべての開いているビューワーを閉じるか、あるいは特定のビューワーだけを閉じる |
--preserve-existing | 既存のビューワーを変更しない(つまり、常に新しいビューワーを開く) |
--preserve-(embedded|windowed) | 既存の埋め込み/別枠ビューワーを変更しない |
--preserve-duplicates | 最初に開いたビューワーでのみPDFを開く |
--(no-)auto-close | 対応するtexファイルを閉じた時にビューワーも閉じるかどうかを決める(既定:埋め込みの場合自動的に閉じる(auto-close)) |
--(no-)focus | ビューワーを開いた時にビューワーに焦点を移すかどうかを決める(既定:別枠の場合焦点を移す(focus)) |
--(no-)foreground | ビューワーを前面に持ってくるかどうかを決める(既定:前面に持って来る(foreground)) |
filename | 開くべきファイルを決める。他のコマンドと同様に、ファイルパターンをサポートしている。
このパラメータが与えられていない場合、TXSは"?am.pdf" (つまりメインファイルの絶対パス)を使用する。
このパラメータが絶対パスでのファイル名でない場合、メインファイルのあるディレクトリと「オプション -> TeXstudioの設定 -> ビルド -> ビルドオプション -> 追加の検索パス -> PDFファイル 」のディレクトリの中を探す。 |
また、呼び出されるサブコマンドの引数を引数変更子または新しい引数の追加で変更することもできる。
これらの変更子は呼び出しリストを通じて渡されるので、直接呼び出されるサブコマンドが別のコマンドの単なるラッパーでも、最終的に呼び出されるプログラムの引数は常に変更される:
txs:///foobar --xyz | xyzオプションを追加 |
txs:///foobar[--xyz=123] | xyzオプションの値を123に変更(つまり、foobarで定義されたあらゆるxyzオプションを削除して変更) |
txs:///foobar{--xyz=123} | 他の値を持つxyzオプションを無視して、foobarコマンドラインから--xyz=123を削除 |
txs:///foobar{--xyz} | 値にかかわらず、あらゆる--xyzオプションをfoobarコマンドラインから削除 |
txs:///foobar{} | 実行可能ファイル名のみ残して、すべてのオプションをfoobarコマンドラインから削除 |
最後に、iniファイルを変更することでしか変えられない隠しオプションもある: Tools/Kind/LaTeX、 Tools/Kind/Rerunnable、 Tools/Kind/Pdf、 Tools/Kind/Stdout、 Tools/Kind/Viewer。 これらはそれぞれLaTeXコンパイラ(例えば、後にログを表示する)、再実行可能(警告がある場合にコマンドを繰り返し呼び出す)、PDF生成器(例えば、pdflatex)、標準出力へ出力するコマンド(例えば、bibtex)、そしてビューワー(例えば一度だけ開く)として扱われるコマンドのリストである。
実行時に利用できる環境変数は、TeXstudioを起動した状況で利用できる環境変数と同じである。 特にこれはPATHに当てはまる。 Linux/OS XではTeXstudioを起動する方法に依存するかもしれない。 GUIで起動した場合とシェルから起動した場合でPATHの設定が異なるかもしれない(何故ならいくつかの変数はシェルの状況でのみ定義されるからだ(例:~/.bashrcを通じて))。
既定では、TeXstudioではコマンド内の環境変数は構文解析される。
構文は利用しているオペレーションシステムによって異なる。
変数MYVARは、Windowsでは%MYVAR
と書かれ、LinuxとOS Xでは$MYVAR
と書かれる。
Windowsでは環境変数は大文字子文字は区別されないが、LinuxとOS Xでは区別される。
環境変数の構文解析はオプションの「ビルド」部分で無効化できる。
作業ディレクトリは、ルートドキュメントのパスに設定される。
設定で指定された全てのコマンド(つまり「コマンド」と「ユーザーコマンド」)は直接実行される。 シェルが関わることはない。 従ってほとんどのシェル機能は機能しない。
TeXstudioで提供される出力リダイレクト機能は限られている。
メッセージパネル(> txs:///messages
)へ出力するか、出力を抑制する(> /dev/null
)ことだけ行うことができる。
既定の設定はコマンドによって異なる。
stderrを同じターゲットにすることは可能である:2> txs:///messages
, 2> /dev/null
。
さらに、2>&1
を用いてstdoutと同じターゲットへリダイレクトすることもできる。
典型的な活用事例としては、コマンドの出力すべてを抑制する事が挙げられる:>/dev/null 2>&1
注:Linux/Unix表記(> /dev/null
)の代わりに、Windows表記(> nul
)を使用しても良い。
なぜならこれらのコマンドはTXSが直接解釈するので、両方の表記は全てのオペレーションシステムで機能する。
シェル機能が必要な場合、明示的にシェルを起動しなければならない。 ユーザーコマンドでこれを直接行うことも可能である:
sh -c "/path/to/testscript foo > bar"
Windowsの場合:
cmd /C "/path/to/testscript.bat foo > bar"
もしくはユーザーコマンドでラッパースクリプトを呼び出し、
/path/to/wrapperscript foo bar
ラッパースクリプト内で実際の作業を行う方法もある:
#!/bin/sh # I am wrapperscript /path/to/testscript $1 > $2
このパネルではいくつかの一般的な外見の設定を行うことができる。
TeXstudioでは統合されたスペルチェック機能を提供している。 それはダイアログを通してもしくは入力中に直接利用できる。 LaTeXコマンドの外側のテキスト全てがチェックされる。 さらに、LaTeXコマンドのオプション中のテキストもチェックされる。 TeXstudioはオプションが自然なテキストを含んでいるかどうか判断する。 そして補完単語リスト中の定義を調べることでスペルチェックが行われる。 補完単語リストに関するさらなる情報は、補完とcwl形式の解説の段落を参照のこと。
スペルチェックはOpenOfficeやLibreOffice、Firefoxなど幅広く使われているHunspellの辞書形式を利用している。
それぞれの辞書は2つのファイル(.dic
と.aff
)からなる。
TeXstudioにはフランス語、英語、ドイツ語の辞書が同梱されている。
辞書ディレクトリパスに追加の辞書を配置することで、それを使用できる。
追加の辞書を入手する特に便利な方法は、http://wiki.services.openoffice.org/wiki/DictionariesまたはLibreOfficeの辞書拡張をダウンロードして、TeXstudioのオプションの辞書のインポートボタンを使ってインポートすることだ。
ユーザーはオプションで辞書の探索パスを一つ以上指定することができる。
複数のパスを指定する場合、セミコロンで区切る必要がある。
パスには特殊文字[txs-app-dir]
と[txs-settings-dir]
を使用できる。
これらはそれぞれTeXstudioの実行ファイルと設定ファイル(texstudio.ini
)のパスへと展開される。
これはUSBスティックでポータブル版を使用する際に特に役立つ。
というのも、その場合使用しているコンピュータによって実際のプログラムの配置が異なるからだ。
簡便のために、TeXstudioではスペルチェッカーの言語を好きに選択できる。
しかし、別の言語で書かれたファイルに対して頻繁に作業する場合規定の振る舞いを上書きしたいと思うかもしれない。
これを行うには二つの方法がある。
一つ目はステータス行の言語メニューを通じてファイルの言語を明示する方法だ。
この設定はファイルを閉じると即座に失われる。
ファイルの言語を永続的に保存するために、TeXstudioは特別な「マジックコメント」% !TeX spellcheck = de_DE
をサポートしている。
このコメントがファイルにある場合、ファイルを開くとその言語に自動的に設定される。
注記:Ctrl+Shift+F7でのスペルチェックはカーソル位置から開始されるのであって、文書の最初からではない。
もし対話式のスペルチェッカーが有効な場合(既定)、間違って綴られた単語すべてに赤い波下線が引かれる。 その単語で右クリックすると、考えられる訂正語のリストのメニューが表示される。 このコンテキストメニューでは無視するリストにその単語を追加することもできる。 使用している辞書がとても大きい(> 5MB)場合、コンテキストメニューを開いて考えられる候補を表示するのに数秒かかるかもしれない。 もし候補が不必要なら、右クリック中にShiftを押すと待つ必要がなくなる。
辞書の内部構造が複雑である(例えば、様々な変化形を持つ単語を生成する規則を含む)ので、単純に単語を辞書に追加することはできない。 そのかわり辞書に単語がない場合、その単語を無視するリストに追加してスペルチェッカーが何も言わないようにすることができる。 無視するリストは通常辞書と同じディレクトリに保存される。 それは拡張子が".ign"のプレーンテキストファイルである。 もし辞書と同じディレクトリに保存できない(例えばアクセス権限がない)場合、そのリストはユーザーの設定ディレクトリに保存される。
類語辞典ではOpenOffice.org 2.xのデータベースを使用している。
GPLのフランス語、アメリカ英語、ドイツ語のデータベースのみがTeXstudioに同梱されている。
ユーザーは次の場所から他のデータベースをダウンロードできる:
http://wiki.services.openoffice.org/wiki/Dictionaries
LaTeX構文チェッカーでは、コマンドが正しいかどうか判断するために考えられる完全なコマンドのリストを利用している。
更に、そのコマンドリストには、コマンドがその文脈で有効かどうか、数式モードでのみ有効かあるいは表モードでのみ有効かを決めるための追加情報が部分的に含まれている。
文法チェッカーはLanguageToolの標準的なhttp APIに基づいていて、LanguageToolとJavaを別個にインストールする必要がある。
一度LanguageToolをインストールすると、LanguageToolのスタンドアローンアプリケーションを起動し、その後TeXstudioを起動することで文法チェッカーを利用できる。 LanguageToolはアドレスがhttp://localhost:8081/であるローカルで起動するサーバーを作成し、TeXstudioは起動時にそこに自動的に接続される。 接続が確立されたら、すべての入力された段落がLTに送られ、ちょっとした後に考えられる文法上の間違いが強調表示される。
TeXstudioでLanguageToolを自動的に起動させるには、設定ダイアログの文法ページでLT jarのパスを入力する必要がある。 Javaの実行ファイルが既定のPATHにない場合、そのパスもそこで設定する必要がある。
高度な設定モードでは、あるLTの規則を「特別」として特徴づけすることもできる。 その「特別」な規則に一致したものは異なる/カスタマイズ可能な方法で強調表示される。 これは、例えばLTですべての動詞またはすべての副詞を強調表示する独自の規則を作成することで、文体の解析を行うのに有益である。
LanguageToolとは独立して、TeXstudioでは繰り返しの悪い(不正確な/俗語的な)単語もチェックされる。 繰り返しの確認では、後ろのいくつかの単語を見て、身近なところの短い単語の繰り返しや前方10単語までの長い単語の繰り返しがしるし付けされる。 これらの距離や長さは高度な文法設定のページで変更できる。
TeXstudioでは、補完用の既知のコマンドの数をかなり増やした、kileの補完単語のリストを採用している。
構文チェックだけでなく補完の有効なコマンドリストを選択するため、TeXstudioでは\documentclassと\usepackageが使われていることが認識される。
しかし、TeXstudioでは「TeXstudioの設定」 -> 「コマンドの補完」で追加の単語リストを選択することができる。
単語リストの名前とパッケージ名は対応関係がある。
例えばリストlatex.cwlは標準的なLaTeXコマンドを含んでいる。
自動補完に関連して、TeXstudioでは挙動を好みに合わせることができる。
オプションは次のものが利用できる:
好みのパッケージが補完(と構文チェック)にない場合、「packagename.cwl」というファイルを設定ディレクトリに配置することで独自のリストを提供できる。 このディレクトリはLinuxでは"~/.config/texstudio"、Windowsでは通常"c:\Documents and Settings/User/AppData/Roaming/texstudio"である。 基本的にファイルは有効なコマンドのリストを含んでいる。 正確な書式と例の解説はclw形式の解説にある。
ショートカットは、「現在のショートカット」または「追加のショートカット」の場所でダブルクリックを行うことにより変更できる。 ショートカットは、ドロップダウンリストから選択するか、直接テキストとして入力することができる。 ショートカットを規定値に設定もしくは完全に除去するのであれば、リストの最上部にある「<default>」または「<none>」を選択すればよい。
Math/Latexメニューはユーザーの好みに合わせることができる。 このメニューに対して、項目の名前を変更したり、新規にLaTeXコードを追加したりすることが可能である。 各項目は、ダブルクリックすることで直接編集することができる。
TXSにはカスタムツールバーがひとつ存在する。 このツールバーはLaTeX、Math、ユーザーメニューの要素から成り立っている。 これらの項目の多くにはアイコンがないので、ユーザーが好きなアイコンを読み出すこともできる。 これは、設定ダイアログのカスタムツールバーリストで、項目のコンテキストメニューから「別のアイコンの読み出し」をすることで可能となる。
文章のバージョン管理を提供するため、TeXstudioではSVN(Subversion)を使用している。 これを利用するには、SVNコマンドラインツールがインストールされている必要がある。 LinuxとMac OSXでは通常SVNツールが(パッケージとして)すでに提供されており、Windowsでは「SlikSVN」のインストールが推奨される。
TeXstudioのオプションのコマンドページの適切な欄に、「svn」と「svnadmin」のコマンドへの完全なパスが設定されている必要がある。 SVNページでは、自動化の度合いやWSVNを選択できる(下記参照)。
注:TeXstudioを通じてリポジトリをチェックアウトすることはできない。 これを行うには通常のツールを使用するように(コマンドラインか選んだGUIでのsvn checkout)。 一度作業コピーができると、TeXstudioでそれを操作できる。
「保存後に自動的にチェックインする」を選択すると、TeXstudioが文書を保存するたびにSVNチェックインを行う。 従って文書作成の非常に完全な履歴が残ることとなる。 テキスト文書はディスクの空きスペースに比べて小さいので、SVNのデータベースのサイズは問題にならない。 更に、ディレクトリがすでにSVNの制御下にある場合、(「…として保存」で)新たに保存したファイルは自動的にSVNの制御下に追加される。 そうでない場合、TeXstudioは現在のディレクトリ上での「SVNディレクトリの検索深度」のディレクトリ内でSVNの制御下のディレクトリを検索し、サブディレクトリとTeX文書をSVNの制御下に追加する。 適切なディレクトリが見つからない場合、リポジトリが「./repo」というディレクトリに自動的に作成され、文書が追加される。 従って、ユーザーはリポジトリ設定のための必要なコマンドを探す必要はない。 「自動チェックイン」を有効化した場合にのみこの機能は有効化される!
「最後の保存以前に戻すためにSVNリビジョンを用いる」を使うと、TeXstudioはアンドゥを通常のように行うが、内部記憶領域にアンドゥ可能なコマンドがそれ以上ない場合に、文書をSVN履歴での一つ前のバージョンに変更する。 さらなるアンドゥコマンドでより古いリビジョンへ戻すことが可能である一方で、「元に戻す」コマンドでより新しいバージョンへ変更できる。 これは直接メニューコマンドを通してSVNのリビジョンを選択することよりもインタラクティブな手法である(4.4章参照)。
標準的なコマンド(切り取り、コピー、検索…)は「編集」メニューと「編集」ツールバーを通して実行できる。
新しく文書を作成するには、次の小節で説明されるように2つの異なった方法がある。
文書のプリアンブルを定義するには、(「ウィザード」メニューの)「簡単テンプレート」ウィザードが利用できる。
このダイアログでは文書の主な仕様(文書クラス、用紙サイズ、エンコーディング、…)を設定することができる。
注意:"+"ボタンをクリックすることで他のオプションを追加することができる。
また、設定全ては記録される。
また、エディターで自分自身のプリアンブルモデルを入力することもできる:「コピー/貼り付け」や「名前をつけて保存」コマンドで、新規文書にそれを利用できる。
新規文書に対して、「ファイル/テンプレートから新規作成」コマンドを用いてテンプレートを適応できる。 ダイアログでは利用するテンプレートを選択できる。
テンプレートから新しいエディター文書を作成するか、テンプレートをファイルとしてディスク上に作成してそれをエディターで開くか選択することができる。 前者のオプションは複数のファイルのテンプレートに対して利用できない。
テンプレートとして利用したい開いている文書に対して、「ファイル/テンプレートを作成」コマンドを用いて新規テンプレートを作成することができる。 このダイアログは現在テンプレートシステムの機能すべてをサポートしてはいないことに注意するように。 特に、プレビュー画像を提供したり、画像つきの複数ファイルテンプレートを作成することはできない。 このようなことは手動で行う必要がある(テンプレートの書式参照)。
ユーザーが追加したテンプレートは、テンプレート選択ダイアログでコンテキストメニューから編集や削除が可能である。 しかし、組み込みのテンプレートは変更できない。
ユーザーテンプレートは、設定ディレクトリの/templates/user/
サブディレクトリに保存される。
最も単純な形式では、テンプレートは.texファイルのみである。 複数ファイルテンプレートはすべての.texファイルをzipアーカイブにまとめることで作成することができる。 追加で、同名だが拡張子が".tex"や".zip"の代わりに".json"である別ファイルにメタデータをJSON形式で保存することができる。 現在次の項目がメタデータ内でサポートされている:
{ "Name" : "Book", "Author" : "TXS built-in", "Date" : "04.01.2013", "Version" : "1.1", "Description" : "Default LaTeX class for books using separate files for each chapter.", "License" : "Public Domain", "FilesToOpen" : "./TeX_files/chapter01.tex;main.tex" }
FilesToOpenは複数ファイルの文書に対してのみ影響がある。 テンプレートファイルの隣にプレビュー画像を付け加えてもよい。 ただ、ファイル名は同名で拡張子が".png"でなければいけない。
TeXstudioで文書に新しい部分(節、小節、……)を定義するには、ツールバーのこのコンボボックスボタンを使用すれば良い:
「構造ビュー」(左側パネル)を用いると、文書のあらゆる部分にすぐに移動できる。 何らかの項目(ラベル、節、……)をクリックしさえすれば、エディタの対応する場所の先頭へ移動する。 ある行へ移動する仕組みでは、もはや行数を考慮するだけでなく実際のテキスト行をも記憶している。 従って、行を追加や削除しても間違った位置へ移動することはない。
灰色の背景はテキストと構造ビューでの現在のカーソル位置を示している。 緑の背景は付録での節を表している。
「構造ビュー」はタイプしたとおりに自動的に更新される。 また、いつでも(「Idefix」メニューの)「文書構造の更新」コマンドを用いることができる。
ラベル、節、includeやbeamerブロックの他に、%TODOで始まるコメントもスキャンされて構造ビューに項目として表示される。 これはテキストに一種の永久ブックマークを作成したり、変更が依然として必要な場所を書き留めるために使用することができる。
また構造ビューでは、(小節を含む)節に属するテキストすべてをコピー/切り取りして別の節の前または後ろに貼り付けるコンテキストメニューが利用できる。 更に節のインデント/インデントの解除をすることが可能である。 それは階層構造のレベルを変更することを意味している。 つまり\sectionが\subsectionに変更され、全ての小節がそれに応じて扱われる事になる。
それぞれのファイルに対して、移動の高速化のため3つのブックマークが利用できる:ブックマークに追加または削除するには行番号をクリックすれば良い。 すでに3つのブックマークが定義されている場合、新たなブックマークを追加するためそのうち1つを削除しなければならない。 エディタ上でブックマークに対応する行へ移動するには、ステータスバーのブックマークボタンをクリックすれば良い。
このツールバーでテキストの一部の書式を簡単に設定することができる:
追加のオプション:
選択したテキストを特定の環境で直接囲うこともできる。
例:"Hello"という単語を選択した後「ボールド体」のボタンをクリックすることで、次のコードが入力される:\textbf{Hello}.
このオプションは「LaTeX」メニューの"[選択]"で示されている環境全てに対して利用できる。
メニュー「編集」 -> 「テキスト操作」には選択したテキストの大文字使用を変更する方法がいくつか含まれている:
「タイトルケース化」の両方共、短い単語(a, the, ofなど)は小文字のままにする。 加えて、「スマートなタイトルケース化」は、大文字を含む単語を大文字使用の固定を必要とする頭字語(例:「TeXstudio」)と仮定して変換しない。
もし、TeXの予約語を含むテキストがあり、文書中でその文字どおりにテキストを表示したい場合、 LaTeXが解釈するのを防ぐためその予約語をエスケープする必要がある。 次の機能でそれを扱うことができる(メニュー:Idefix)
例:"Less than 10% of computer users know the meaning of $PATH."は次のように変換される: "Less than 10\% of computer users know the meaning of \$PATH."
通常の「スペース」コマンドは「LaTeX」と「数式」メニューで利用できる。 「強制改行」のLaTeXコマンドを簡単に挿入するには、ツールバーの対応するコマンドを利用できる(ショートカットキー:Ctrl+return)。
通常の箇条書き環境コードは「LaTeX->箇条書き」メニューから簡単に挿入できる。
注:\itemコマンドのショートカットキーはCtrl+Shift+I.
「表作成」ウィザード(「ウィザード」メニュー)で、表環境に対応するLaTeXコードを簡単に挿入することができる:
このウィザードで表の主な特徴を設定することができる。
注:このダイアログでセルにコードを直接入力することができる。
対応するLaTeXコードが自動的にエディタに挿入される。
TeXstudioでは表を簡単に操作できるコマンドが提供されている。 そのコマンドはLaTeX → 表の操作と表ツールバーにある。 表構築のコマンドが複雑になりすぎると予期しない結果となるかもしれないことを認識しておくこと。 次のコマンドが提供されている:
TeXstudioではブロックカーソルも利用できる。 <Ctrl>+<Alt>+<Shift>を押してマウスでカーソルをドラッグすることで利用できる。 ブロックカーソルは通常のカーソルの組のように機能する。 通常と同じくテキストのコピーや貼り付けができる。 また新たなテキストを入力すると、全ての行にそのテキストが追加される。
"tabbing"コードを挿入するのを容易に行うため、(「ウィザード」メニューの)"Tabbing"ウィザードを利用できる:
文書中に図を挿入するには、「LaTeX」メニューの"\includegraphics"コマンドを使用すれば良い。
そして画像ファイルを選択するためダイアログの「ブラウザ」ボタンをクリックすれば良い。
注:図の挿入前に(「LaTeX - 環境」メニューの)"figure" LaTeX環境を挿入してもよい。
図の適切な挿入は、LaTeX初心者には挑戦であり、熟練者にはほんの僅かのテキストをタイプすることである。
従ってTeXstudioでは文書への画像挿入コードを扱うウィザードを提供している。
「画像オプション」では\includegraphics[options]{file}
のオプションパラメータを定義する。
最も使用される幅/高さの属性は容易に設定できる一方で、ユーザー定義の設定で完全に制御することもできる。
画像をテキスト中のまさにその位置に配置する必要がない場合、画像をfigure
環境内に置くべきだ。
そしたらLaTeXの方でページ上の最適な位置を決定してくれる。
「既定として保存」ボタンを押すことで、現在の設定(ファイル、図見出し、ラベルを除く)が保存される。
そしてウィザードを開いた際その設定を既定として使用することができるようになる。
画像ファイルを文書にドラッグ&ドロップしたり、エクスプローラーでコピーしてTeXstudioで貼り付けたりした時にも、画像挿入ウィザードが起動する。
これによって、調整可能な既定パラメータを伴って新しい画像を非常に素早く挿入できる。
更に図のコード上にカーソルがあるときに画像挿入ウィザードを開始すると、既存の図の設定をそのウィザードで操作することができる。
ツールバーのこのツールボックスでラベルや引用、参照、脚注などのコードをすぐに挿入できる。
注:文書中で用いられているラベルは「構造ビュー」に表示される。
追加のオプション:\refコマンドに対しては、ダイアログボックスで直接ラベルを選択することができる。
ツールバーの「インライン数式」ボタン(ショートカット:Ctrl+Shift+M)または「数式」メニューで、「インライン数式」環境内の状態へと切り替えることができる。
「ディスプレイ数式」環境のショートカットキーは次である:Alt+Shift+M。
「数式」ツールバーで\leftや\rightタグのような最も使用される数学的な形(frac, sqrt...)を挿入できる。
また、「文書の構造」ビューの「記号パネル」を用いて、400種類の数学記号のコードを挿入することができる。
「数式」メニューを通して数学的テキストの書式を決めることもできる。
"array"環境に対しては、(「表」ウィザードのように)「ウィザード」メニューからウィザードが利用できる。
このウィザードでは、使用する環境(array, matrix, pmatrixなど)を選択することができる。
更にセルを直接埋めることもできる。
"\"に続いて文字を打つと常に、考えられるLaTeXタグのリストが表示され、正しいものを選択することができる。
追加の文字を打った場合、LaTeXタグリストはフィルター処理されて、すでに書かれたテキストで始まるタグのみが表示される。
タグリストが同じ文字の組み合わせで始まる単語だけを含む場合、Tabキーを押して全てに共通する文字を補完することができる。
もしタグリストに一つしか要素がない場合、EnterキーのようにTabキーでこれを選択して補完することができる。
この振る舞いはbashシェルでのtab補完に似ている。
また、望むときにCtrl+Spaceを押してこのタグリストを開くことも可能である。
タグに異なるオプションがある場合、短い説明的なテキストが挿入され、それぞれのオプションの意味を教える。
更に、Ctrl+LeftとCtrl+Rightを押してあらゆる位置を選択することができる。
また通常のテキストも単語をタイプし始めてCtrl+Spaceを押すことで補完を行うことができる。
現在の文書の適切な単語全てが考えられる候補として用いられる。
環境を挿入するつもりであれば、環境名の最初をタイプしてCtrl+Alt+Spaceを押すことで、適切な環境の候補が表示されて\begin{env}..\end{env}で補完挿入される。
そして最後に、ユーザータグを補完で使用することもできる略語へ割り当てることが可能である。
略語の最初の部分をタイプしてCtrl+Spaceで補完を開始するだけでよい。
そうした略語は、特に“略語(テンプレート)”でしるし付けされて補完リストに表示される。
もし新たなコマンドを補完することでとあるコマンドを変える場合、コマンド名のみが取り替えられる。
同じことが環境に対しても当てはまり、\begin- & \end-コマンド内の環境名が変化する。
TeXstudioは単純な類語辞典を統合している。 これにはOpenOffice 2.xのデータベースを使用している。 単語上にカーソルを置いて類語辞典をアクティブにする(Ctrl+Shift+F8またはツール/類語辞典)ことで、この単語に対する類義語を見つけようとする。 類語辞典を初めて起動する場合には、データベースの読み込みが生じて少し時間がかかりうるので我慢すること。
左側の最初の行は類義語を探索する対象単語を含む。 その下のリストは単語の種類のリストである。 それらのいずれかを選択して候補の数を減らすことができる。 右側の欄は提案された類義語のリストを含む。 このリストから選択した単語が、そのテキストの代わりに対する提案として右側の最初の行に表示される。 この単語は手動で変更できる。 その単語は、それ「で始まる」またはそれ「を含む」単語や類義語に対するさらなる調査にも用いられる。 「調べる」でその単語の類義語を探すために直接利用することもできる。
Alt+Delのショートカットでカーソル位置の単語が削除される。 それがコマンドならば、そのコマンドが開き括弧と閉括弧を含んで削除される。 例:"\textbf{text}"は"text"が残ることになる。 もしも環境だった場合、取り囲むbegin/endが削除される。
カーソルが環境名もしくは対応するbegin-/end-コマンド上にある場合、少ししてミラーカーソルがアクティブになる。 これでbegin-&end-コマンドの環境名を同時に変更することができる。 もし"\begin{tabular}...\end{tabular}"構文を"\begin{tabularx}...\end{tabularx}"へ変更したい場合、テキストカーソルを"tabular"の上に置き「環境名の付け替え」を実行して少し待てばよい。 すると、ミラーカーソルが現れて"tabular"を"tabularx"に変更できるようになる。
何かを選択してコマンドを入力し始めて補完を行う場合、選択したものが最初の引数として配置される。 例:"text"があり、それを選択して"\textbf"を補完入力する。 すると結果として得られるテキストは"\textbf{text}"となる。
文書をコンパイルする最も簡単な方法は、「コンパイル」コマンドまたは「ビルド&表示」コマンド(「コンパイル」ボタン - ショートカット:F6、「ビルド&表示」ボタン - ショートカット:F1)を使用することである。
「TeXstudioの設定」ダイアログを通して既定のコマンドを選択することができる。
(また、「ツール」メニューで各々のコマンドを一つ一つ起動することも可能である。)
注:「ツールメニュー」の「補助ファイルの削除」でLaTeXのコンパイル時に生成されるファイル(dvi, toc, aux...)を削除することができる(ps&pdfファイルを除く)。
注意:すべてのファイルには拡張子がなければならず、「タイトルなし」ファイルや名前に空白のあるファイルはコンパイルできない。.
「ビルド」コマンドで、ログファイルが「メッセージ/ログファイル」パネルに自動的に表示される。 もしコンパイル時にエラーが生じれば「エラー」パネルにそのエラーが表示される。 「エラー」パネル上の「行」列の数字をクリックすれば、エディタ上で対応する行にカーソルが移動してそのエラーが「ログファイル」パネル上でも表示される。
「次のエラー」と「前のエラー」コマンドでコンパイル中に検出されたエラーの間を移動できる。
エラーや警告、良くないボックスのある行は背景がそれぞれ赤、黄色、青で強調表示される。
また、Ctrl+Up/Downでそれらの間を移動できる(エラーのみに対してはCtrl+Shift、警告のみに対してはCtrl+Alt、良くないボックスのみに対してはAlt+Shiftを用いる)。
更に、それらの行へ移動するとツールチップで間違いのさらなる詳細が表示される(行番号の左側の印にマウスを合わせた場合にも表示される)。
LaTeX文書は複数のファイルに渡っても良い。 TeXstudioは自動的に読み込んだ文書の親/子関係を把握する。 このことには、ルートドキュメントの検出と定義されているラベルとコマンドの把握が含まれる。
ルートドキュメントは、複数ファイルの文書における一番上のファイルである。 単一ファイルの文書では、これはそのファイル自身である。 既定では、LaTeXを呼び出す全ての動作はルートドキュメントに対して行われる。
TeXstudioは自動的にルートドキュメントを検出する。
もしこの機能がうまくいかない場合は、ファイルの一番最初にマジックコメント% !TeX root = root-filename
を置いても良い。
最後の手段として、「オプション -> ルートドキュメント -> 明示的に現在の文書をルートとして設定
」を使って明示的なルートドキュメントを設定しても良い。
この設定は絶対的なものである。
エディタ上でどの文書を編集していても、「ツール」メニューのコマンド全てはこのルートドキュメントに対して呼び出される
(より正確には、ビルドシステムはプレースホルダ%
をルートドキュメントに展開する)。
さらに、あらゆる開いてある文書内で定義されているラベルとユーザーコマンドは、あらゆる開いている文書で補完の為に利用される。
以前のバージョンでは、明示的なルートドキュメントはマスターファイルと幾分誤解を生む呼び方だった。
明らかに、TeXstudioが利用できるのは認識している情報(定義されたコマンド、ラベル、文書構造など)のみである。 我々は全ての開いているファイルでその情報を利用するのだが、 複数ファイルからなる文書内のラベルが読み込まれていないファイル内で定義されている場合、 TeXstudioはそれを認識できず参照の欠損として印付けする。 これに対処するには、対応するファイルも開くだけでよい。
より新しいバージョンのTeXstudioには高度なオプション「エディタ -> 含まれるファイルを自動的に読み込む
」がある。
これは、古いシステムでのパフォーマンスの理由から既定では無効になっている。
このオプションを有効にすると、複数ファイルからなる文書のうち一つのファイルを開くと、即座にTeXstudioは文書に関わるファイルすべてを自動的に読み込み解析する。
ルートドキュメントを開いた状態でない場合、マジックコメント% !TeX root = root-filename
を設定する必要があるかもしれない。
このオプションを有効にしておくと、TeXstudioは常に文書全体を認識して、強調表示や補完を行うときにそれに応じて振る舞う。
LaTeX構文チェッカーは、コマンドが正しいかどうか決めるため考えられる補完コマンドのリストを採用している。
どの文脈でコマンドが有効であるか、例えばコマンドが数式モードでのみまたは表モードでのみ有効なのかどうかを決めるため、補完リストは部分的に追加情報を含んでいる。
更に表の正確さはより詳細に確認される。
列の数が続く行で解析・確認される。
もしある行で列の数が多かったり少なかったりすると、警告印が表示される。
"bib"ファイルに対して、「文献」メニューで文書の標準型に対応する項目を直接挿入できる。
注:「文献」メニューの「削除」コマンドでオプション項目が自動的に削除される。
第1.8節ですでに述べたサポートされているsvn機能とは別に、TeXstudioはさらに2つのコマンドをサポートしている。
「ファイル/SVN/チェックイン」で、svn履歴に保存されるチェックインメッセージを求める入力ダイアログとともに明示的に保存、チェックインが行われる。
「ファイル/SVN/古いリビジョンを表示」で、全ての利用可能なリビジョンを表示するダイアログが表示される。 古いリビジョンを選択することで、その古いリビジョンへ現在の文書が即座に変更される。 また、古い部分をコピーして最新のバージョンへ戻ることで、その部分を文書の最新バージョンにすることができる。 もしその文書を直接編集し始めると、ダイアログは閉じて現在のテキストが未保存だが新しい最新バージョンとなる。
TeXstudioでは自分のマクロを挿入できる(ショートカット:Shift+F1...Shift+F10)。
これらのマクロは「マクロ - マクロを編集」メニューで定義できる。
マクロはTXSに直接配置される単純なテキストからなる。
また、それはbegin/endで自動的に展開される「環境」でも、java scriptでも良い。
必要な機能はチェックボックスで選択することができる。
「略語」はLaTeX補完に対する擬似コマンドである。
擬似コマンドが補完されると代わりにそのマクロが挿入される。
擬似コマンドはバックスラッシュ("\")で始まる必要があることに注意すること。
「トリガー」はマクロを含むものを自動実行する正規表現である:
最後に入力された文字がこの表現に一致すると、それは削除されてマクロが挿入/実行される(詳細は下を見ること)。
通常のテキストとは別に、いくつかの特別なコードが認識されて挿入時に置換される。
もしどこかに%|を書いた場合、カーソルは挿入されたテキストのその場所に配置される(2番めの%|はそれらの間全ての選択になる)。
%<something%>を書くと、Ctrl+Left/Rightで選択できる説明的テキストとしてしるし付けされる。
オプション%(filefilter%)はファイルダイアログで尋ねられるファイル名で置換される。
ファイルフィルターは標準的なQtファイルフィルター形式である。
例:"Images (*.png *.xpm *.jpg);;Text files (*.txt);;XML files (*.xml)"。
Qt-Docも参照すること。
テキストは環境名として用いられる。
従って"%environment"は次のように挿入される:
\begin{environment}
\end{environment}
注:TeXstudioでは、挿入時に配置されないものの環境名が"%"で始まる必要がある。
コード片を用いる代わりに、javascriptを使用することもできる。 そのためには最初の行に"%SCRIPT"を置けばよい。 続くコードはjavascriptとして解釈される。 言語はECMAScriptに基づく。 文書にアクセスするために次のオブジェクトが導入されている:
次の表は考えられるコマンドの概要である。
コマンド | 説明 |
---|---|
グローバルスコープ | |
alert(str), information(str), warning(str)またはcritical(str) | 文字列strをあるアイコンとともにメッセージボックスに表示 |
confirm(str)またはconfirmWarning(str) | 文字列strをはい/いいえ(yes/no)の質問としてメッセージボックスに表示 |
debug(str) | 文字列strを標準出力stdoutに表示 |
writeFile(name, value) | ファイルnameに値valueを書き込む(書き込み権限を要求) |
readFile(name) | ファイルname全体を読み込む(読み込み権限を要求) |
system(cmd) | コマンドcmdを呼び出し、次のメソッドをもつProcessXオブジェクトを返す:
|
setGlobal(name, value) | 一時的なグローバル変数を設定する |
getGlobal(name) | グローバル変数を読み込む |
hasGlobal(name) | グローバル変数の存在を確認する |
setPersistent(name, value) | グローバル設定変数を設定する(iniファイルの値を変更することができる。書き込み権限を要求) |
getPersistent(name) | グローバル設定変数を読み込む(iniファイルの値全てを読み込むことができる。読み込み権限を要求) |
hasPersistent(name) | グローバル設定変数が存在するかを確認する(読み込み権限を要求) |
hasReadPrivileges() | スクリプトに読み込み権限があるかを確認する |
hasWritePrivileges() | スクリプトに書き込み権限があるかを確認する |
registerAsBackgroundScript([id]) | スクリプトがバックグラウンドで実行できるようにする(スクリプトがイベント/シグナルを扱う場合には必要) |
triggerMatches | スクリプトがエディタトリガーで呼び出された場合、通常のトリガー表現に一致する |
triggerId | スクリプトがイベントトリガーで呼び出された場合、トリガーのidの数字を表す |
include(script) | 別のスクリプトを読み込む。scriptはファイル名やマクロ名である。 |
pdfs | 全ての開いている内部pdfビューワーのリストである |
エディタオブジェクト | |
editor.search(searchFor, [options], [scope], [callback]) | エディタ上で検索を行う。
|
editor.replace(searchFor, [options], [scope], [replaceWith]) | エディタ上で検索と置換を行う。 これは、単純な文字列またはコールバック関数のreplaceWith引数を別としてeditor.searchのように振る舞う。 replaceWithが関数の場合、その返り値はreplaceWithに渡されたカーソルで表される一致物を置換するのに用いられる。 |
editor.replaceSelectedText(newText, [options]) | この関数は現在の選択部をnewTextで置換する。
何も選択されていない場合newTextを挿入する。 newTextが関数の場合、選択テキストと対応するカーソルを引数としてその関数が呼び出され、戻り値がnewTextとなる。 全テキスト置換/挿入にこの関数を使用することが推奨される。 なぜならこれが複数のカーソル/ブロック選択を正しく扱う最も簡単な方法だからだ。 ただしこの関数はTXS >= 2.8.5でのみ利用できる。 オプション(options)は次のプロパティを持つオブジェクトである:
例: editor.replaceSelectedText("world", {"append": true} ) "world"を現在の選択部の末尾に追加editor.replaceSelectedText(function(s){return s.toUpperCase();}) 現在の選択部を大文字へ変換 |
editor.undo(); | エディタ上で最後のコマンドを元に戻す |
editor.redo(); | エディタ上で最後のコマンドをやり直す |
editor.cut(); | 選択部をクリップボードへ切り取る |
editor.copy(); | 選択部をクリップボードへコピーする |
editor.paste(); | クリップボードの内容を貼り付ける |
editor.selectAll(); | 全てを選択する |
editor.selectNothing(); | 何も選択しない(選択を解除する) |
editor.find(); | 「検索パネル」を起動する |
editor.find(QString text, bool highlight, bool regex, bool word=false, bool caseSensitive=false); | 事前に定義された値で「検索パネル」を起動する |
editor.find(QString text, bool highlight, bool regex, bool word, bool caseSensitive, bool fromCursor, bool selection); | 事前に定義された値で「検索パネル」を起動する |
editor.findNext(); | 次を検索する |
editor.replacePanel(); | (検索パネルが開いていて何か選択物がある場合)置換する |
editor.gotoLine(); | 「指定行へ移動パネル」を起動する |
editor.indentSelection(); | 選択部をインデントする |
editor.unindentSelection(); | 選択部のインデントを解除する |
editor.commentSelection(); | 選択部をコメント化する |
editor.uncommentSelection(); | 選択部のコメント化を解除する |
editor.clearPlaceHolders(); | プレースホルダーを削除する |
editor.nextPlaceHolder(); | 次のプレースホルダーへ移動する |
editor.previousPlaceHolder() | 前のプレースホルダーへ移動する |
editor.setPlaceHolder(int i, bool selectCursors=true); | プレースホルダーを設定する |
editor.setFileName(f); | ファイル名をfに設定する |
editor.write(str) | 現在のカーソル位置に文字列strを挿入する(ミラーカーソルがある場合そのすべてにstrが挿入される) |
editor.insertText(str) | 現在のカーソル位置に文字列strを挿入する(ミラーカーソルは無視されるので、replaceSelectedTextの使用または代わりに書き込むのに好ましい) |
editor.setText(text) | 現在の文書のテキスト全てをtextで置換する |
editor.text() | 完全な文書のテキストを返す |
editor.text(int line) | 行lineのテキストを返す |
文書オブジェクト | |
editor.document().lineCount() | 行の数を返す |
editor.document().visualLineCount() | 見かけの行の数を返す(ワードラップした行を数える) |
editor.document().cursor(line, [column = 0], [lineTo = -1], [columnTo = length of lineTo]) | カーソルオブジェクトを返す。 もしlineToが与えられた場合、カーソルはline:columnからlineTo:columnToまでの選択部を持つ。 |
editor.document().text([removeTrailing = false], [preserveIndent = true]) | 文書のテキスト全体を返す |
editor.document().textLines() | テキスト行全ての配列を返す |
editor.document().lineEndingString() | 行の末端(\nまたは\n\r)を含む文字列を返す |
editor.document().canUndo() | 元に戻す(undo)が可能なら真(true)を返す |
editor.document().canRedo() | やり直す(redo)が可能なら真(true)を返す |
editor.document().expand(lineNr) | 行を展開する |
editor.document().collapse(lineNr) | 行を折りたたむ |
editor.document().expandParents(lineNr) | 行の全ての親をその行が見えるまで展開する |
editor.document().foldBlockAt(bool unFold, lineNr); | lineNrの前の最初のブロックを折りたたむまたは展開する |
editor.document().getMasterDocument(); | この文章を直接含む開いてある文書を返す |
非推奨:代わりにgetRootDocument()を使うこと | |
editor.document().getRootDocument(); | この文章を間接的に含み、自身は他の文書で含まれていない、開いてある文書を返す |
editor.document().getMagicComment(name); | 存在する場合マジックコメントの内容を返す |
editor.document().updateMagicComment(name, value, [create = false]); | マジックコメントを変更する |
editor.document().labelItems/refItems/bibItems | 全てのラベル/参照または含まれる参考文献ファイルのidを返す |
editor.document().getLastEnvName(lineNr) | (その行の終わりでの)現在の環境名を返す |
文書管理オブジェクト | |
documentManager.currentDocument | 現在の文書(スクリプトがバックグラウンドモードで起動していない限り、通常はeditor.document()と同じである) |
documents.masterDocument | マスターファイル |
[documentManager.]documents | 開いている文書全ての配列 |
documentManager.findDocument(fileName) | あるファイル名fileNameを持つ開いてある文書を返す |
documentManager.singleMode() | 明示的なマスターファイルがない場合真(true)を返す |
非推奨:代わりにgetRootDocumentForDoc(document)を使うこと | |
documentManager.getRootDocumentForDoc(document) | 与えられた文書(document)を(おそらく間接的に)含んでいる開いてある文書を返す |
documentManager.findFileFromBibId(id) | 与えられたidの項目を含むbibファイルのファイル名を返す |
カーソルオブジェクト | |
cursor.atEnd() | カーソルが文書の終端にあるかどうかを返す |
cursor.atStart() | カーソルが文書の先頭にあるかどうかを返す |
cursor.atBlockEnd() | カーソルがブロックの終端にあるかどうかを返す |
cursor.atBlockStart() | カーソルがブロックの先頭にあるかどうかを返す |
cursor.atLineEnd() | カーソルが行の終端にあるかどうかを返す |
cursor.atLineStart() | カーソルが行の先頭にあるかどうかを返す |
cursor.hasSelection() | カーソルに選択部があるかどうかを返す |
cursor.lineNumber() | カーソルの行番号を返す |
cursor.columnNumber() | カーソルの列を返す |
cursor.anchorLineNumber() | アンカーの行番号を返す |
cursor.anchorColumnNumber() | アンカーの列を返す |
cursor.shift(int offset) | カーソル位置(テキスト列)を列(文字)の数でずらす |
cursor.setPosition(int pos, MoveMode m = MoveAnchor) | 文書の先頭から数えてpos文字後にカーソル位置を設定する(非常に遅い) |
cursor.movePosition(int offset, MoveOperation op = NextCharacter, MoveMode m = MoveAnchor); | カーソルをoffset回移動する。MoveOperationsは次のものである:
|
cursor.moveTo(int line, int column); | カーソルを行lineと列columnへ移動する |
cursor.eraseLine(); | 現在の行を削除する |
cursor.insertLine(bool keepAnchor = false); | 空行を挿入する |
cursor.insertText(text, bool keepAnchor = false) | テキストtextをカーソル位置に挿入する(この関数はインデントとミラーを無視する。editor.writeとeditor.insertTextを見ること。) |
cursor.selectedText() | 選択したテキストを返す |
cursor.clearSelection(); | 選択を削除する |
cursor.removeSelectedText(); | 選択したテキストを削除する |
cursor.replaceSelectedText(text); | 選択したテキストをテキストtextで置換する |
cursor.deleteChar(); | カーソルの右側の文字を削除する |
cursor.deletePreviousChar(); | カーソルの左側の文字を削除する |
cursor.beginEditBlock(); | 新規編集ブロックを開始する。 編集ブロックに埋め込まれたカーソル操作全ては一度で元に戻す/やり直すことになる。 |
cursor.endEditBlock(); | 編集ブロックを終了する |
アプリケーションオブジェクト | |
app.getVersion() | 現在のバージョン(0xMMmm00) |
app.clipboard | クリップボードへの読み書きのための属性 |
app.getCurrentFileName() | 現在編集しているファイルの名前 |
app.getAbsoluteFilePath(rel, ext = "") | 相対的なファイル名を絶対的なものに変換する |
app.load(file) | ファイルfileを読み込む |
app.fileOpen/Save/Close/.../editUndo/.../QuickBuild/... | メニューコマンド全て(つまりtexmaker.hファイルのスロット全て)。 設定ダイアログの「メニュー」ページの現在存在するスロット全てのリストを見ることができる。 |
app.newManagedMenu([parent menu,] id, caption) | 新規メニューを作成してそれを返す |
app.getManagedMenu(id) | あるidを持つQMenuを返す |
app.newManagedAction(menu, id, caption) | 新規アクションを作成してそれを返す
|
app.getManagedAction([id]) | あるidを持つQActionを返す(全てのidは通常一つのメニューでmain/menu1/menu2/.../menuN/actionという形を持つ。例:"main/edit/undo"。texmaker.cppを見ること。) |
app.createUI(file, [parent]) | あるuiファイルを読み込み、それからQWidget*を作成する |
app.createUIFromString(string, [parent]) | 文字列stringで記述されたQWidget*を作成する |
app.slowOperationStarted()/slowOperationEnded() | 遅い操作の開始/終了に関して一時的に無限ループ検出を無効化するようTXSに通知する |
app.simulateKeyPress(shortcut) | 与えられたショートカットに対してキー入力イベントを発生させる(例:app.simulateKeyPress("Shift+Up") )。
注:これは主にショートカットと移動の為に用意されたものである。
現在キー入力イベントの全ての機能をサポートしているわけではない。
特にテキストは全く入力できない。 |
UniversalInputDialogクラス | |
new UniversalInputDialog() | 新しいダイアログを作成する |
dialog.add(defaultValue, [description, [id]]) | 与えられた規定値defaultValueと省略可能な説明descriptionとidを持つ新しい変数をダイアログに追加する。
そして対応するQtコンポーネントを返す。 文字列既定値はQLineEditに、数字はQSpinBoxに、配列はQComboBoxになる。 |
dialog.get(nr/id) | nr番目に追加された変数またはあるidを持つ変数の現在値を返す |
dialog.getAll() | 全ての変数の値を組み合わされた数字/連想配列として返す。 i番目の変数を得るためにreturnvalue[i]を、あるidを持つ変数を得るためにreturnvalue.idを用いることができる。 |
dialog.exec() | ダイアログを表示する。 ユーザーがダイアログを承諾した場合1を、ダイアログが取り消された場合0を返す。 |
dialog.show() | ダイアログを非同期的に表示する |
UniversalInputDialog([[defaultValue_0, description_0, id_0], [defaultValue_1, description_1, id_1], ...]) | 短い形:新規ダイアログを作成して、配列の全ての変数を追加し、execをその上で呼び出す |
FileChooserオブジェクト | |
fileChooser.exec() | ダイアログを表示して、再度閉じられるまで待機する |
fileChooser.setDir(dir) | ダイアログ内のディレクトリをdirに設定する |
fileChooser.setFilter(filter) | QT-formatを用いてファイルフィルターをfilterに設定する。上を参照すること。 |
fileChooser.fileName() | (execの後)選択したファイル名を返す |
いくつかの例:
%SCRIPT app.clipboard = editor.fileName();
%SCRIPT eval(editor.text());
%SCRIPT obj = editor; //表示するオブジェクト(例:現在のエディタ) app.fileNew(); //新しい文書を作成 newEditor = documentManager.currentDocument.editorView.editor; //新しく作成された文書にアクセス for (var prop in obj) newEditor.write(prop+"\n"); //属性を出力
%SCRIPT var menu = app.getManagedMenu("main/edit"); //編集メニューを入手 var act = app.newManagedAction(menu, "script", "scripttest"); //アクションを追加 act.triggered.connect(function(){alert("called");}); //簡単なハンドラを登録 registerAsBackgroundScript("test"); //ハンドラを有効化し続ける
%SCRIPT var ui = createUI(" ... path to your ui file ..."); //ダイアログを読み込む ui.accepted.connect(function(){alert("x");}) //ダイアログを閉じることに反応 registerAsBackgroundScript("abc"); //関数の有効化を維持 ui.show(); //ダイアログの表示ダイアログはQt Designerで作られるuiファイルに記述されている。
%SCRIPT currentLine=editor.text(cursor.lineNumber()); from=currentLine.lastIndexOf("%")+1; to=currentLine.lastIndexOf("="); if (from>=0 && to > from) { toEvaluate = currentLine.substring(from, to); with (Math) { value = eval(toEvaluate);} cursor.eraseLine(); cursor.insertText(currentLine.substring(0, from)+toEvaluate+"="+value); cursor.insertLine(); cursor.movePosition(1,cursorEnums.Left ); }これは%と=の間のもの全てを評価して、=の後ろに結果を書き込む。 texファイルに%5+3=を書くと計算機のように使用出来る。
%SCRIPT var doit = function(){ var mytext=cursor.selectedText(); var regExNumberPre = " *[0-9]+([.][0-9]*)? *"; var regExDigit = /[0-9]/; var regExSpace = / /g; var regExPairPre = " *(-?"+regExNumberPre+")"; var regExPair = new RegExp("()[(]"+regExPairPre+","+regExPairPre+"[)]"); ; //最初の座標の組を読み込む var regExFirstPairPre = regExPairPre + " *([+-]"+regExNumberPre+")?"; var regExFirstPair = new RegExp("()[(]"+regExFirstPairPre+","+regExFirstPairPre+"[)]"); //オフセットを抽出(-x - yを許可するため、最初の数字から正規表現検索を開始) var matches = regExFirstPair.exec(mytext); if (matches == null) throw "missing"; //一致物を投げる var offsetXPre = matches[4]; var offsetYPre = matches[8]; if (offsetXPre == "" && offsetYPre == "") throw "abc"; var offsetX = offsetXPre == ""?0.0:offsetXPre.replace(regExSpace, "")*1.0; var offsetY = offsetYPre == ""?0.0:offsetYPre.replace(regExSpace, "")*1.0; //最初の組を移動 var matchpos = mytext.search(regExFirstPair); editor.write(mytext.slice(0,matchpos)); editor.write("("+(matches[2].replace(regExSpace, "")*1.0+offsetX)); editor.write(", "+(matches[6].replace(regExSpace, "")*1.0+offsetY)+")"); //他の組を移動 var remaining = mytext.slice(matchpos+matches[0].length); while (remaining != ""){ matches = regExPair.exec(remaining); if (matches == null) break; matchpos = remaining.search(regExPair); editor.write(remaining.slice(0,matchpos)); remaining = remaining.slice(matchpos+matches[0].length); editor.write("(" + ((matches[2].replace(regExSpace, "")*1.0)+offsetX) + ", "+ ((matches[4].replace(regExSpace, "")*1.0)+offsetY) + ")"); } editor.write(remaining); } doit();これは、全ての選択した座標の組に最初の組のオフセットを加えて与えられた方向に全ての組を移動させる。 例:(1 + 1, 2 - 1.5) (3, 4)がある場合、(2, 0.5) (4, 2.5)に変更される。
トリガーの最も単純な形式では、トリガーは単なるテキストであり、マクロで置換される。
例:trigger="eg" macro="example given"の場合、"the leg"の"eg"は"g"を入力すると"example given"で置換される。
トリガーが正規表現であると、手の込んだトリガーを作成することができる。
TXSは後方参照検索を使用している:
"(?<=\s)%
"は、前の文字が空白なら"%
"を置換するのに使用される。
正規表現についてのさらなるヘルプはインターネット上で見ることができる。
グローバル変数triggerMatches
を通してスクリプト中で一致した表現にアクセスすることができる。
triggerMatches
は配列である。
その0番目の要素は正規表現全体に一致したものである。
続く要素は(グループが定義されていれば)グループに一致したものである。
例:
Trigger: #([a-z]) Typed text: #a triggerMatches[0] == '#a' triggerMatches[1] == 'a'
マクロが有効なスコープには、パターン(?[scope-type]:...)
の表現を前に付けることができる。
スコープ制限表現 | 意味 |
---|---|
(?language:...) |
文書の強調表示が与えられた言語に一致している場合にのみ、マクロは有効である。 例: (?language:latex) |
(?highlighted-as:...) |
マクロを特定の強調表示される環境に制限する。
可能な値は構文強調表示設定ページのリスト(英語)に対応する。 例: (?highlighted-as:numbers,math-delimiter,math-keyword) |
(?not-highlighted-as:...) |
(?highlighted-as:...) に似ているが、与えられた環境でマクロを無効化する。 |
(?language:...)
と(?highlighted-as:...)
の表現を組み合わせることができる。
しかし、(?highlighted-as:...)
と(?not-highlighted-as:...)
の組み合わせは論理的に意味を成さず、未定義な振る舞いとなる。
トリガー自体の正規表現が必要なことに注意すること。
次は充分で複雑な例である:
(?language:latex)(?highlighted-as:comment,commentTodo)FIXME
。
このトリガーは"FIXME"を入力することに対応しているが、LaTeX文書のコメントとtodoノート内でのみ有効である。
さらに、対応するイベントが生じた時にスクリプトを実行するために次の特別なトリガー表現(括弧なし)を使うことができる:
特別なトリガー | スクリプトが実行されるイベント |
---|---|
?txs-start | TeXstudio開始時 |
?new-file | 新規ファイル作成時 |
?new-from-template | テンプレートからの新規ファイル作成時 |
?load-file | ファイル読み込み時 |
?load-this-file | マクロを含むファイルの読み込み時(スクリプトがマジックコメントとして定義されている場合にのみ意味をなす) |
?save-file | ファイル保存時 |
?close-file | ファイルを閉じた時 |
?master-changed | 文書がマスターファイルとして定義解除/定義された時 |
?after-typeset | LaTeX類似コマンド終了時 |
?after-command-run | コマンド実行終了時(例:latexを2回呼び出してビューワーを開くコンパイルコマンドの場合、このイベントが生じるのは1回だがafter-typesetでは2回である。) |
これら特殊トリガーは"|"記号で複数個組み合わせることができる。
主なpstricksコマンドは「構造ビュー」の「Pstricks」パネルで挿入できる。
Metapostキーワードは「構造ビュー」の「Metapost」パネルで挿入できる。 また、「ツール/コマンド」メニューを通じて「mpost」などのコマンドを起動させることができる。
このコマンド(「ツール」メニューにある)は、LaTeXソースファイルからhtmlページ各々につき一画像のhtmlページのセットを生成する。
プレゼンテーションスライドの各ページは、LaTeXを実行して得られるpostscriptページの一つに対応する。
またこのコマンドでは、LaTeXで得られる目次に対応するページも生成される。
このページの各項目は対応するhtmlページへのリンクを含んでいる。
texファイルに\ttwplink{}{}コマンドを用いることで、生成されるhtmlページにリンクを作成することができる。
概要:
\ttwplink{http://www.mylink.com}{my text} (外部リンク)
\ttwplink{page3.html}{my text} (内部リンク)
\ttwplink{name_of_a_label}{my text} (内部リンク)
警告:hyperrefパッケージ(あるいは他のいくつかのパッケージ)とともにこのコマンドを使用することはできない。
このコマンドは「HTMLへ変換」ツールとともにしか使用できない。
TeXstudioでは順方向・逆方向検索を提供する統合されたPDFビューワーが提供されている。
pdflatexコマンド(または類似コマンド)でsynctexが有効化されていることを確認すること(オプション"-synctex=1"を追加する必要がある)。
もし正しく設定されていない場合、TeXstudioはコマンド自体を修正するかどうかを尋ねる。
順方向検索はPDFビューワーが開いた時にはいつも自動的に行われる。
TeXstudioはカーソルが現在位置している場所へ(PDF上で)移動する。
さらに、テキストエディタ上の単語をCTRL+左クリックすることでPDFへ移動したり、コンテキストメニューを用いて「PDFへ移動」を選択して移動することもできる。
逆方向検索は、PDF上でCTRL+左マウスボタンクリックするか、コンテキストメニュー(右マウスボタンクリック)で「ソースへ移動」を選択することで有効になる。
さらに、PDFビューワーの設定で「カーソルに続いてスクロールする」を有効化することができる。
これで、PDFビューワー上の位置をエディタ上のカーソル位置に同期させることができる。
同様に、「スクロールに続いてカーソルを移動する」を有効化することでエディタ上の位置をPDFビューワー上の位置に同期させることができる。
いくつかの(dvi)ビューワーでは、(La)TeXソースファイル上のある行番号に対応するDVIファイル上での位置へ移動(あるいは視覚的に強調表示)することができる。
この順方向検索を有効にするには、ユーザーツール(「オプション/TeXstudioの設定」 -> 「ビルド」)のコマンド行または設定ダイアログのビューワーコマンド行(「オプション/TeXstudioの設定」 -> 「コマンド」)で、対応するビューワーのコマンドを入力すれば良い。
ビューワーが起動するときに、@プレースホルダは現在の行番号で置換され、?c:ameは現在のファイルの完全な絶対パスでのファイル名で置換される。
Windowsでは、次の形のコマンドを挿入することでDDEコマンドを実行できる:dde:///service/control/[commands...]
あるいは必要な場合次の形のコマンドでプログラムを起動することもできる(TeXstudio 1.9.9から):dde:///programpath:service/control/[commands...]
下にいくつかの一般的なビューワーに対するコマンドのリストを載せている。
当然、コマンドを使用したい場合(your program path)をコンピュータ上のそのプログラムのパスで置換する必要がある。
SumatraをTeXstudioから起動して逆方向検索を設定:
"(your sumatra path)" -reuse-instance -inverse-search "\"(your TeXstudio path)\" \"%%f\" -line %%l" "?am.pdf"
起動しているSumatraである行へ移動(Windows限定):
dde:///SUMATRA/control/[ForwardSearch("?am.pdf","?c:am.tex",@,0,0,1)]
起動していなければSumatraを実行して、ある行へ移動(Windows限定):
dde:///(your sumatra path):SUMATRA/control/[ForwardSearch("?am.pdf","?c:am.tex",@,0,0,1)]
SumatraからTeXstudioを実行:
"(your TeXstudio path)" "%f" -line %l
(your Sumatra path)の考えられる値はC:/Program Files/SumatraPDF/SumatraPDF.exeである。
Foxit ReaderをTeXstudioから起動: "(your Reader path)" "?am.pdf"
TeXstudioからAcrobat Readerを起動:
"(your Reader path)" "?am.pdf"
移動と閉じることはDDEコマンドを通じて行う。
Adobe製品のバージョン10から、DDEサービス名に製品とバージョン番号に対する文字列が含まれる。
製品 | サービス名 |
---|---|
Adobe Reader 9 | acroview |
Adobe Acrobat 9 | acroview |
Adobe Reader 10 | acroviewR10 |
Adobe Acrobat 10 | acroviewA10 |
Adobe Reader 11 | acroviewR11 |
Adobe Acrobat 11 | acroviewA11 |
Adobe Reader 11に対する例が次である:
実行しているAcrobat Reader上のある位置へ移動(Windows限定):
dde:///acroviewR11/control/[DocOpen("?am.pdf")][FileOpen("?am.pdf")][DocGotoNameDest("?am.pdf","jump-position")] jump-positionはhyperrefパッケージで定義できる
実行しているAcrobat Reader上の文書を閉じる(Windows限定):
dde:///acroviewR11/control/[DocOpen("?am.pdf")][FileOpen("?am.pdf")][DocClose("?am.pdf")]
TeXstudioからYapを起動:
"(your Yap path)" -1 -s @?c:m.tex %.dvi
YapからTeXstudioを起動:
"(your TeXstudio path)" "%f" -line %l
(your Yap path)の考えられる値はC:/Program Files/MiKTeX 2.7/miktex/bin/yap.exeである。
TeXstudioからxdviを起動:
xdvi %.dvi -sourceposition @:?c:m.tex
TeXstudioからxdviを起動して逆方向検索を有効化:
xdvi -editor "texstudio %f -line" %.dvi -sourceposition @:%.tex
TeXstudioからkdviを起動: kdvi "file:%.dvi#src:@ ?c:m.tex"
TeXstudioからokularを起動:
okular --unique %.dvi#src:@?c:m.tex
OkularからTeXstudioを起動:
texstudio %f -line %l
TeXstudioからSkimを起動:
(your Skim path)/Contents/SharedSupport/displayline @ ?am.pdf ?c:ame
SkimからTeXstudioを起動:
コマンド:/applications/texstudio.app/contents/macos/texstudio 引数:"%file" -line %line
(your Skim path)の考えられる値は/Applications/Skim.appである。
いわゆる「マジックコメント」はエディタのオプションを文書ごとのレベルで適応させる方法である。 概念は元々TeXshopに導入されて、以来数多くのエディタに取り入れられている。 TeXstudioでは次のマジックコメントがサポートされている:
% !TeX spellcheck = de_DE
文書のスペルチェックに用いられる言語を定義する。 これは全体的なスペルチェックの設定を上書きする。 しかし、適切な辞書がインストールされている必要がある。
% !TeX encoding = utf8
文書の文字エンコーディングを定義する。
% !TeX root = filename
このファイルに対するルートドキュメント(つまり、ビルドする際にLaTeXコンパイラに渡されるファイル)を定義する。
この設定はTeXstudioのルートドキュメントの自動検出を上書きする。
続いて、明示的なルートドキュメントが「オプション -> ルートドキュメント
」で設定されている場合それも上書きされる。
% !TeX program = pdflatex
文書に対して利用するコンパイラを定義する。
正確には、「ビルド&表示」と「コンパイル」の動作で使用する既定のコンパイラ(コマンドtxs:///compile
)を上書きする。
% !TeX TXS-program:bibliography = txs:///biber
これはTeXstudio特有の設定である。
左側で指定されたビルドシステムコマンドを右側のコマンドで上書きする。
例では、TXSに一般的な「参考文献コマンド(txs:///bibliography)」に対してbiberコマンド(txs:///biber
)を使用することを伝えている。
ビルドシステムの解説も参照のこと。
% !TeX TXS-SCRIPT = foobar
% //Trigger = ?load-this-file
% app.load("/tmp/test/test.tex");
% app.load("/tmp/test/a.tex");
% TXS-SCRIPT-END
このコードは一時的なjavascriptマクロを定義している。 このマクロはファイルが読み込まれた時に実行され、順番に/tmp/testにある2つのファイルを読み込む。
TXS-SCRIPTを通じて定義されたマクロは文書のファイル全て(例:取り込まれるファイル)で有効である。 これらを手動で起動することはできない。 これらはトリガー(正規表現または特定のトリガー、トリガーについての節を見よ)を通じて起動する。 マクロはファイルを開く際に一度だけ読み込まれる。 編集セッションの間の変更はファイルを開き直した時だけ効果がある。
% !BIB program = biber
特殊コマンド% !BIB program
はTeXShopとTeXWorksとの互換性のために用いられる(% !BIB TS-program
もである)。
これは% !TeX TXS-program:bibliography = txs:///biber
と同じである。
texstudio file [--master] [--line xx[:cc]] [--insert-cite citation] [--start-always] [--pdf-viewer-only] [--page yy]
--master |
文書を明示的なルートドキュメント(以前はマスターファイルと呼ばれていた)として定義する。 |
--line xx[:cc] |
TeXstudioは文書読み込み後にxx行へ移動する。 さらにコロンで区切って目標の列を追加できる(例:"--line 2:5"は2行目の5列目に移動する)。 |
--insert-cite citation |
カーソル位置へ挿入するbibtexキーをTeXstudioへ通知する。 これは外部参考文献管理アプリケーションに対するインターフェースとして、引用をTeXstudioに通知するために用いられる。 \mycite{key}のようなコマンド(カスタマイズされていても良い)または、キーだけを渡してもよい。 後者の場合、\cite{key}に展開される。 また、カンマ区切りのキーリストもサポートされている。 カーソルがすでに引用マクロ内にある場合、TeXstudioはそれを認識する。 その場合キーのみが適切な位置に挿入され、そうでない場合完全な引用コマンドが挿入される。 |
--start-always |
TeXstudioの別のインスタンスがすでに起動していても、TeXstudioを起動する。 これで複数のインスタンスを利用できる。 |
--pdf-viewer-only |
TeXstudioを、エディタなしの単体のPDFビューワーとして開く。 |
--page |
オプションであり、PDFビューワーとして用いた場合にTeXstudioで特定のページを表示する。 |
次の追加のオプションはTeXstudioのデバッグ版でのみ利用できる:
--disable-tests |
あらゆるテストを実行しない。 |
--execute-tests |
最も一般的なテストを強制的に実行する。 |
--execute-all-tests |
全てのテストを強制的に実行する。 |
キーボードショートカットは「オプション -> TeXstudioの設定 -> キーボードショートカット」で変更できる。
次のリストは既定のキーボードショートカットの大まかな概要である。 オペレーティングシステム(OS)によって、OS特有のショートカット規定に適合するためばらつきがあるかもしれない。
cwlはcompletion word list(補完単語リスト)の略であり、もともとは補完の際に並べられるコマンドを定義するためKileで使用されていたファイル形式である。 TeXstudioではcwlの拡張書式を用いて、追加の意味情報を含ませたりカーソルやプレースホルダの配置を行えるようにしている。 TeXstudioでは次の目的のためにcwlを利用している:
cwlファイルの各行ではコマンドが定義されている。
コメント行も可能であり、#
で始めればよい。
コマンド構文は次の形で表される。
<command>[#classification]
分類classificationがない場合、そのコマンドはLaTeX文書のあらゆる位置で有効であるとみなされる。
文字#
は、次のような特別な意味があるので、command
内で使用することはできない:
#include:<packagename>
(行の最初で):
packagename.cwlも読み込む。
これはあるパッケージが他のパッケージに依存していることを示すのに使用する。#repl:<search> <replacement>
(行の最初で):
文字の置換を定義する(例:ドイツ語に対して"a -> ä)。
スペルチェック(babel)における文字置換に対してのみ用いられる。#keyvals:<command>
(行の最初で):
command
に対するkeyvalsの定義を開始する(ソースコードのgraphicx.cwlを参照)。
キーに対する可能な値を指定するため、#の後ろにそれらを追加する(例:mode=#text,math
)。color=#%color
、tikz.cwlも参照のこと)。command
は2つの部分からなる(例:\documentclass/thesisはコマンド\documentclassが引数としてthesisを使用する場合にのみ有効である)。#endkeyvals
(行の最初で):
keyvalsの定義の終わりを示す(ソースコードのgraphicx.cwlを参照)。#ifOption:<option>
(行の最初で):
以降のブロックは、<option>がusepackageコマンドで使われた場合にのみ読み込まれる(例:\usepackage[svgnames]{color} -> option=svgnames)#endif
(行の最初で):
条件ブロックの終わりを示す#
(#include,#repl,#keyvals,#endkeyvals
を除いた行の最初で):
この行はコメントであり、無視される。#
(行中で):
コマンドcommandと分類classificationを分ける。cwlファイルはUTF-8としてエンコードされていなければならない。
最も単純な形式では、文書で見られるようにコマンドは単なる有効なLaTeX表記である(例:\section{title}
)。
既定では全てのオプションはプレースホルダとして扱われる。
かわりに、%|
でカーソルの停止位置を定義(例:\left(%|\right)
)するか、%< %>
を用いてオプションの一部のみをプレースホルダとしてしるし付け(例:\includegraphics[scale=%<1%>]{file}
)してもよい。
改行は%n
でコマンドに含めることができる。
引数の名前は、補完ウィンドウに表示され、補完後はエディタ上にプレースホルダとして表示される。
一般的に、引数の名前は好きなように自由に名付けてよい。
我々は意味ある名前を与えることを勧める(例:\parbox[arg1]{arg2}{arg3}
ではなく\parbox[position]{width}{text}
)。
特別な意味を持つ引数名がいくつかある:
text
あるいは%text
で終わる:スペルチェッカーはこの引数内で作動する(既定では引数はスペルチェックされない)。title
あるいはshort title
:スペルチェッカーはこの引数内で作動する(既定では引数はスペルチェックされない)。
さらに、引数は(section内のように)ボールド体で設定される。bibid
とcite key
:コマンド内で使用される場合、"C"と分類される。下の分類子解説を見よ。cmd
とcommand
あるいは%cmd
で終わる:コマンドに対する定義(例:\newcommand{cmd})。
この例の"cmd"は引数は無く、何も機能性を伝えないとみなされる。def
とdefinition
:コマンドの実際の定義(例:\newcommand{cmd}{definition})。
この例の"definition"は構文チェックに大しては無視される。args
:コマンドに対する引数の数(例:\newcommand{cmd}[args]{definition})。package
:パッケージ名(例:\usepackage{package})title
とshort title
:section名(例:\section{title})color
:色名(例:\textcolor{color})width
、length
、height
あるいは%l
で終わる:幅または長さのオプション(例:\abc{size%l})cols
とpreamble
:tabularなどでの列定義(例:\begin{tabular}{cols})file
:ファイル名URL
:URLoptions
:パッケージオプション(例:\usepackage[options])imagefile
:画像のファイル名key
:ラベル/参照のキー#r
付きのlabel
または%ref
で終わるキー:参照キーlabellist
:cleverefで用いられるラベルのリストbib file
とbib files
:参考文献ファイルclass
:ドキュメントクラスplacement
とposition
:環境の位置beamertheme
:beamerのテーマ(例:\usebeamertheme{beamertheme})keys
,keyvals
そして%<options%>
:キー/値のリスト次の分類がTXSでは有効である:
分類子 | 意味 |
---|---|
* | 「全て」タブでのみ補完に用いられる珍しいコマンド。 この印は他の分類子とともに用いてもよい。 |
S | 補完の際に全く表示されない。 この印は他の分類子とともに用いてもよい。 |
m | 数式環境でのみ有効 |
t | tabular環境(または同様の環境)でのみ有効 |
T | tabbing環境でのみ有効 |
n | テキスト環境(つまり数式環境でない)でのみ有効 |
r | このコマンドは"\ref{key}"のような参照を表すことを示す。 |
c | このコマンドは"\cite{key}"のような引用を表すことを示す。 |
C | このコマンドは"\textcquote{bibid}{text}"のような複雑な引用を表すことを示す。
キーはbibid として与えられる必要がある。 |
l | このコマンドは"\label{key}"のようなラベルを表すことを示す。 |
d | このコマンドは"\newcommand{cmd}{def}"のような定義コマンドを表すことを示す。 |
g | このコマンドは"\includegraphics{file}"のような画像読み込みコマンドを表すことを示す。 |
i | このコマンドは"\include{file}"のようなファイル読み込みコマンドを表すことを示す。 |
u | このコマンドは"\usepackage{package}"のようなパッケージ使用コマンドを表すことを示す。 |
b | このコマンドは"\bibliography{bib}"のような参考文献を表すことを示す。 |
U | このコマンドは"\url{URL}"のようなurlコマンドを表すことを示す(ただしURLはチェックされない) |
D | このコマンドはtodo項目を表すことを示す(サイドパネルのtodoリストに追加される) |
B | このコマンドは色を表すことを示す(色補完に対してのみ利用され、構文チェックには用いられない) |
s | このコマンドは特別な定義を表すことを示す。 定義クラスは"#"の後に与えられる。 クラス名は%に続ける必要がある(例:%color)。 以下の例も参照のこと。 |
V | このコマンドはverbatimのような環境"\begin{Verbatim}"を表すことを示す。 |
/env1,env2,... | 環境env1、env2…内でのみ有効 |
\env | 環境の別名であることを表し、"env"環境のようにその環境が扱われることを意味する。 これはenv=math, tabularに対して有用である。 |
引数の意味を指定する分類子(cやiのような)は常に最初の非オプションパラメータに適用される。
これはcwl書式とTXSのLaTeXパーサーの現在の限界によるものである。
例えば、\ref{label}#r
と\ref[option]{label}#r
は期待通りに働くが、
\ref{arg}{label}#r
はarg
を参照として解釈する。
我々はこのような場合にはどの分類も指定しないことを勧める。
例:
行 | 解説 |
---|---|
# test |
コメント |
\typein{msg}#* |
「全て」タブの補完にのみ表示される珍しいコマンド |
\sqrt{arg}#m |
数式モードでのみ有効 |
\pageref{key}#r |
補完に正しく使用される参照コマンドを表す。 |
\vector(xslope,yslope){length}#*/picture |
picture環境でのみ有効な珍しいコマンド |
\begin{align}#\math |
コマンドの妥当性や構文強調に関しては、"align"環境が数式環境のように扱われることを表す! |
\definecolor{name}{model}{color-spec}#s#%color |
name を特殊リスト%color に追加する |
TeXstudioはパッケージからcwlを自動的に作成するが、こうした自動生成されたcwlは意味ある引数名やコマンドの分類を含んでいない。 従って多くのパッケージに対して手動調整したcwlファイルが同梱されている。 我々はユーザーの新しいcwlファイルへの寄与を奨励する。 これらは次の属性を持つ:
\usepackage{mypackage}
という記述があれば、TeXstudioは利用可能であればmypackage.cwlを読み込む。
Texstudioでは、表テンプレートに従って既存のLaTeX形式の表を書式変更できるようにしている。
例えば、TXSで次の表を入力したとする:
\begin{tabular}{ll} a&b\\ c&d\\ \end{tabular}
カーソルをその表の内部に置き、メニュー「LaTeX/表の操作/テンプレートを用いて表を再構築する」を選択する。
すると表の書式を定義するテンプレートを選択することができる。
多数のテンプレートがTXSで予め定義されている:
最初の項目を選択すると、表は次のように書式変更される:
\begin{tabular}{|l|l|} \hline \textbf{a}&\textbf{b}\\ \hline c&d\\ \hline \end{tabular}
これらのテンプレートで予め定義された様式にちなんで容易に表を書式変更できるようになる。 従って、文書中の表が非常に単純な形式で入力されている場合でもその表の形式を同一のものにすることができる。
テンプレートはユーザーが定義することもできる。 テンプレートは設定ディレクトリ(Linux: ~/.config/texstudio)に置いて、設定tabletemplate_name.jsにちなんで名前をつける必要がある。
メタデータを用いてテンプレートの追加の情報を提供できる。
メタデータはソースコードのmetaData
に保存される。
コードvar metaData = {
はファイルの最初の行で始めなければならない。
現在文字列値のみが利用できる。
また、整形にhtmlタグを使用することができる。
例:
var metaData = { "Name" : "Colored rows", "Description" : "Formats the table using alternate colors for rows. <br> <code>\usepackage[table]{xcolor}</code> is necessary.", "Author" : "Jan Sundermeyer", "Date" : "4.9.2011", "Version" : "1.0" }
テンプレート自体は、表全体を含むいくつかの予め定義された変数を持つjavascript(上記参照)である。 新しい表は古いものの置換として配置されるだけであり、その変数から情報を使用する。 4つの変数が与えられている:
行われることの本質を見るために、"plain_tabular"テンプレートのソースをここに載せておく。
function print(str){ //ソースをより見やすくするためこの関数を定義 cursor.insertText(str) } function println(str){ //ソースをより見やすくするためこの関数を定義 cursor.insertText(str+"\n") } println("\\begin{tabular}{"+defSplit.join("")+"}") //表環境を出力 for(var i=0;i<tab.length;i++){ //表の全ての行に対してループ var line=tab[i]; //lineは行row[i]の全ての列のリスト for(var j=0;j<line.length;j++){ //行の全ての列に対してループ print(line[j]) //セルを出力 if(j<line.length-1) //最後の列で無い場合 print("&") //&を出力 } println("\\\\") // \\で行を終える。文字列中にバックスラッシュが必要なことに注意。 } println("\\end{tabular}") //環境を閉じる
例で見たように、表は完全に再構築される必要があり、それから新しい書式が適用可能となる。 2番めの例は幾分手の込んだ表を出力する(fullyframed_firstBold):
function print(str){ cursor.insertText(str) } function println(str){ cursor.insertText(str+"\n") } if(env=="tabularx"){ println("\\begin{tabularx}{\\linewidth}{|"+defSplit.join("|")+"|}") }else{ println("\\begin{"+env+"}{|"+defSplit.join("|")+"|}") } println("\\hline") for(var i=0;i<tab.length;i++){ var line=tab[i]; for(var j=0;j<line.length;j++){ var col=line[j]; var mt=col.match(/^\\textbf/); if(i==0 && !mt) print("\\textbf{") print(line[j]) if(i==0 && !mt) print("}") if(j<line.length-1) print("&") } println("\\\\ \\hline") } println("\\end{"+env+"}")
TeXstudioはエディタ部品としてQCodeEditを利用している。
そこでは(プログラミング)言語はQNFAという特別なxml書式で指定されている。
これには強調表示、(一致する)括弧、コードの折りたたみが含まれている。
通常のTeXstudioインストールでは.qnfaファイルは見当たらない。
なぜなら含まれる言語のファイルはコンパイルされてバイナリに含まれているからだ。
設定ディレクトリ内のlanguages
フォルダに適切な.qnfaファイルを置くことで、独自の言語を追加したり既定のものを上書きすることができる。
ここでの定義は組み込みのものより優先される。
.qnfaファイルでは言語の構文が指定されている。 実際の書式情報は.qxfファイルで指定されている。 defaultFormats.qxfで指定された書式を利用してもよいし、.qnfaファイルと一緒に独自の.qxfファイルを提供してもよい。
構文書式指定を読み、TeXstudio同梱の書式を見るべきである。
注:TeXstudioをより柔軟にニーズに合わせるため、我々はエンドユーザーに言語指定を公開する。
しかし、それをそのまま受け取るべきである。
なぜなら、我々はここでサポートを提供することはできないからだ。
それは強力なAPIであるが、洗練されているわけでも完全な機能を提供しているわけでもない。
同梱されている.qnfaファイルにいくつかの構造物が見られるかもしれないが、それは構文書式指定では文書化されていない。
加えて、QNFAの書式に基づく正規表現はLaTeXに望む強調表示全てを定義するには十分ではない。
従って、さらなる強調表示機能を"(La)TeX"言語に対してソースコード中で直接補っている(例:\begin
と\end
の括弧内の強調表示)。
このためユーザーはこれを変更したり別の言語へ追加したりすることはできない。
次はpythonコードのある強調表示を指定するちょっとした例である:
python.qnfa
<!DOCTYPE QNFA> <QNFA language="Python" extensions="py" defaultLineMark=""> <sequence parenthesis="round:open" parenthesisWeight="00">\(</sequence> <sequence parenthesis="round:close" parenthesisWeight="00">\)</sequence> <!-- highlight def and function name --> <sequence id="python/definition" format="python:definition">def$s?$w*</sequence> <sequence id="python/number" format="python:number">[0-9]+</sequence> <list id="python/keyword" format="python:keyword"> <word>return</word> <word>if</word> <word>elif</word> <word>else</word> </list> </QNFA>
python.qxf
<!DOCTYPE QXF> <QXF version="1.0" > <!-- full specification --> <format id="python:keyword" > <bold>false</bold> <italic>false</italic> <overline>false</overline> <underline>false</underline> <strikeout>false</strikeout> <waveUnderline>false</waveUnderline> <foreground>#B200FF</foreground> </format> <!-- but it is sufficient to specify deviations from default --> <format id="python:number" > <italic>true</italic> <overline>false</overline> <foreground>#007F0E</foreground> </format> <format id="python:definition" > <bold>true</bold> </format> </QXF>
結果は次のような強調表示となる:
変更点のリストはhttp://texstudio.sourceforge.net/manual/current/CHANGELOG.txt(英語) またはCHANGELOG_jp.txt(日本語)、changelogのページ(日本語)で見られる。