初心者に優しいTeXworks?

# 初心者に優しいTeXworks?

TeXworks はTeX Live にも収録されているTeX 用エディタである．
デフォルトの状態でタイプセットまでの一連を実行できるように設定されており非常に便利で，TeX 初心者はこのエディタを利用してTeX の第一歩を送ることになると思われる．

しかしながら，デフォルトの設定が初心者に優しい設定になっているかと思うと，そうではないように思われる．
そこで，以下について設定の変更を行ってみたい．(※は発展的な内容)

- [\# 一般設定](#-一般設定)
- [\# 自動補完とキーボードショートカット](#-自動補完とキーボードショートカット)
- [\# タイプセット方法](#-タイプセット方法)
- [\# シンタックスハイライト](#-シンタックスハイライト) ※
- [\# フォント](#-フォント) ※

これらによって，少しだけ初心者に優しいものになると思われる．

> - **_公式ページ_**
>   - [TeXworks](http://www.tug.org/texworks/)
> - **_リポジトリ_**
>   - [TeXworks/texworks: Main codebase \- GitHub](https://github.com/TeXworks/texworks)

## ■ 前提

TeXworks はTeX Live から導入したものを想定します．(その他での導入は適宜ファイルディレクトリを置き換える必要が生じます)

- Windows10
- TeX Live
- TeXworks 0.6.6
- 日本語のLaTeX 文書だけを作成する

## ■ 一般設定

一般設定はGUI でも簡単に設定できるので，設定ファイルを編集することはしない．
メニューバーの`編集> 設定` から設定ウィンドウが開かれる．

最低でも以下のような設定にはしておきたい．いくつかはデフォルトのままのものもある．

- エディタ
  - フォント: **Consolas**
  - フォントサイズ: **12pt** (適宜)
  - 行番号の表示: **ON**
  - 行の折り返し: **ON**
  - 構文の色付け: **LaTeX**
  - 自動インデント: **Whitespace only**
  - 引用符の入力支援: **TeX ligatures**
  - エンコード: **UTF-8**
  - 現在のカーソルのある行をハイライトする: **ON**
  - カーソル幅: **3px**
- タイプセット
  - デフォルトのタイプセット方法: **upLaTeX (ptex2pdf)**
  - コンソール出力の表示: **成功時に隠す**

これらを設定後，TeXworks を再起動するとこれらが適応される．

フォントに関しては`0(ゼロ)`, `O(オー)` や`1(イチ)`, `l(エル)` などの見分けがつきづらいものの，[\# シンタックスハイライト](#-シンタックスハイライト)を強化する場合には以下のようなフォントを利用しても問題ないだろう．
あるいは新たに[\# フォント](#-フォント)を導入しても良い．

- MS ゴシック
- BIZ UD ゴシック
- UD デジタル教科書体 N-B

ちなみにこれの設定ファイルは以下のディレクトリにある．直接編集しても良いがすこし面倒くさい．GUI の方が楽．

```
C:\<USER>\<user_name>\.texlive20**\texmf-config\texworks\TUG\TeXworks.ini
```


## ■ 自動補完とキーボードショートカット


以下のディレクトリに`shortcuts.ini` ファイルを作成することでキーボードショートカットを定義することが出来る．

```
C:\<USER>\<user_name>\.texlive20**\texmf-config\texworks\configuration\shortcuts.ini
```

キーボードショートカットは事前に定義されているアクションに対して割り当てるため，shortcuts.ini ファイル内では以下のような記法となっている．

```ini
Action=Keyboard_shortcuts
```

### ▼ 自動補完

自動補完のキーボードショートカットはデフォルトで設定されていない．以下のようにしておく．
(どうして自動補完のキーボードショートカットはデフォルトで設定されていないのだろう)

> shortcuts.ini

```ini
actionNext_Completion=Tab
```

これによって，補完機能を`Tab` キーで操作出来るようになる．

**_例_** :

```
xa
  ↓
[Tab]
  ↓
\alpha
```

この他の補完機能のプレフィックスについては以下のリンクを参照のこと．

> [CodeCompletion · TeXworks/texworks \- GitHub Wiki](https://github.com/TeXworks/texworks/wiki/CodeCompletion)

また，このような補完機能を利用するとき，非常に奇妙な`•` が残る場合がある．これはTeXworks エディタ内で`Ctrl+Tab` などとするとここにジャンプすることを想定しているためである．

> *cf.* A short manual for TeXworks A. Customizing TeXworks - A.2 Keyboard shortcuts

`Ctrl+Tab` せずに大量に残ってしまった場合には置換を利用して適当に削除しておくと良いだろう．

また，これらの自動補完はtw-latex.txt で定義されている．
以下の記事からカスタマイズの方法がわかる．

> [Texworks ショートカットキーのカスタマイズ - The One with ...](https://hamada.hatenablog.jp/entry/2016/11/18/141758)

### ▼ その他のキーボードショートカット

> *cf.* A short manual for TeXworks A.2.1 Predefined shortcuts

キーボードショートカットは上で定義したようなアクションにショートカットを割り当てる形で定義されている．
ただし，すでに設定されているキーボードショートカットを上書きすることは出来ず，まったく異なる組み合わせである必要があるようだ．

キーボードショートカットの詳細は長いので折りたたみにしておきます．

<details>
<summary>デフォルトのキーボードショートカット (折りたたみ)</summary><div><br>

For working in the source window:

|    Shortcut    | Description          |
| :------------: | :------------------- |
|    `Ctrl+’`    | Go to Preview        |
|    `Ctrl+=`    | Show Selection       |
|    `Ctrl+[`    | Unindent             |
|    `Ctrl+\`    | Hide Console Output  |
|    `Ctrl+]`    | Indent               |
|    `Ctrl+A`    | Select All           |
|    `Ctrl+B`    | Balance Delimiters   |
|    `Ctrl+C`    | Copy                 |
|    `Ctrl+E`    | Copy to Find         |
|    `Ctrl+F`    | Find...              |
|    `Ctrl+G`    | Find Again           |
|    `Ctrl+H`    | Find Selection       |
|    `Ctrl+L`    | Go to Line...        |
|    `Ctrl+N`    | New                  |
|    `Ctrl+O`    | Open...              |
|    `Ctrl+Q`    | Quit TeXworks        |
|    `Ctrl+R`    | Replace...           |
|    `Ctrl+S`    | Save                 |
|    `Ctrl+T`    | Typeset              |
|    `Ctrl+V`    | Paste                |
|    `Ctrl+W`    | Close                |
|    `Ctrl+X`    | Cut                  |
|    `Ctrl+Z`    | Undo                 |
| `Ctrl+Shift+C` | Insert Citations...  |
| `Ctrl+Shift+E` | Copy to Replace      |
| `Ctrl+Shift+N` | New from Template... |
| `Ctrl+Shift+R` | Replace Again        |
| `Ctrl+Shift+S` | Save As...           |
| `Ctrl+Shift+Z` | Redo                 |
| `Ctrl+Shift+[` | Uncomment            |
| `Ctrl+Shift+]` | Comment              |
|  `Ctrl+Alt+S`  | Save All             |

Description をスネークケースにして`action` に続ければ元のアクションとなる．

**_例_**
: `Ctrl+E` : Copy to Find → `actionCopy_to_Find`

Moving the cursor (hold `Shift` to select):

|  Shortcut   | Description       |
| :---------: | :---------------- |
|     `→`     | 1 character right |
|  `Ctrl+→`   | 1 word right      |
|     `←`     | 1 character left  |
|  `Ctrl+←`   | 1 word left       |
|     `↑`     | 1 line up         |
|     `↓`     | 1 line down       |
|   `PgUp`    | 1 screen up       |
|  `PgDown`   | 1 screen down     |
|   `Home`    | Begin of line     |
| `Ctrl+Home` | Begin of document |
|    `End`    | End of line       |
| `Ctrl+End`  | End of document   |


</div></details><br>

未定義のアクションもある．これらはデフォルトで定義されていないため，適宜定義して利用すると良いだろう．

<details>
<summary>未定義のアクション (折りたたみ)</summary><div><br>

|  Type   | Action                                                                                                                                                                                              |
| :-----: | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|  Edit   | `actionPreferences`<br>`actionClear`<br>`actionTo_Lowercase`<br>`actionTo_Uppercase`<br>`actionNone`<br>`actionToggle_Case`                                                                         |
|  File   | `actionClear_Recent_Files`<br>`actionRemove_Aux_Files`<br>`actionRevert_to_Saved`                                                                                                                   |
| Format  | `actionApply_to_Selection`<br>`actionLine_Numbers`<br>`actionAutoIndent_None`<br>`actionSmartQuotes_None`<br>`actionSyntaxColoring_None`<br>`actionFont`<br>`actionHard_Wrap`<br>`actionWrap_Lines` |
|  Help   | `actionAbout_TW`<br>`actionSettings_and_Resources`<br>`actionGoToHomePage`<br>`actionWriteToMailingList`                                                                                            |
| Scripts | `actionAbout_Scripts`<br>`actionShow_Scripts_Folder`<br>`actionManage_Scripts`<br>`actionUpdate_Scripts`                                                                                            |
| Window  | `actionAuto_Follow_Focus`<br>`actionSide_by_Side`<br>`actionPlace_on_Left`<br>`actionStack`<br>`actionPlace_on_Right`<br>`actionTile`                                                               |

また，利用できる`Ctrl` に続くアルファベットは以下の文字のみである．`Ctrl+Shift+<Alph>` や`Ctrl+Alt+<Alph>` などとする方が競合しづらいだろう．

```
D I J K M P U Y
```

中間ファイルの削除(`actionClear_Recent_Files`) や最近開いたファイルの履歴削除(`actionRemove_Aux_Files`) のアクションもあるので，これらをキーボードショートカットにしておいても良いだろう．

> shortcuts.ini

```ini
actionClear_Recent_Files=Ctrl+Alt+C
actionRemove_Aux_Files=Ctrl+Alt+R
```

</div></details><br>


## ■ タイプセット方法

初心者にとってデフォルトのタイプセット方法は以下のような点が優しくないと思われる．

- 対話モード <br>　↳ TeX とお話ししながらタイプセットしたくない
- デフォルトに構成されるタイプセット方法が多い <br>　↳ 使うもののみにしておきたい <br>　↳ 日本語LaTeX を利用するだけならpdfLaTeX やXeLaTeX は滅多に使わない

したがって，これらを以下のような設定に変更する．

- 非対話モードに変更 (`-interaction=nonstopmode`) <br>　↳ エラーが含まれていた場合はコンソール部分にエラーや警告が記述される
- 日本語LaTeX のみ (mendex 等については省略しました)
  - LuaLaTeX
  - ptex2pdf(upLaTeX + dvipdfmx)
  - BibTeX
  - upBibTeX

これらを変更するには以下のファイルを編集する．

```
C:\<USER>\<user_name>\.texlive20**\texmf-config\texworks\configuration\tools.ini
```

このファイルを以下のように書き換える．

<details>
<summary>tools.ini (折りたたみ)</summary><div><br>

```ini
[001]
name=LuaLaTeX
program=lualatex.exe
arguments=$synctexoption, "-interaction=nonstopmode", $fullname
showPdf=true

[002]
name=upLaTeX (ptex2pdf)
program=ptex2pdf.exe
arguments=-u, -l, -ot, $synctexoption, "-kanji=utf8", "-interaction=nonstopmode", $fullname
showPdf=true

[003]
name=BibTeX
program=bibtex.exe
arguments=$basename
showPdf=false

[004]
name=upBibTeX
program=upbibtex.exe
arguments="-kanji=utf8", $basename
showPdf=false

[005]
name=llmk
program=llmk.exe
arguments=$fullname
showPdf=true
```

ついでにllmk も利用できるようにしています．これはLaTeX エンジンではなく，ビルドツールになります．
llmk については以下の記事を参照すると良い．

> [llmk の基本 | ラング・ラグー](https://blog.wtsnjp.com/2020/12/20/llmk-basics/)

もちろん，latexmk やcluttex でも良い．個人的にllmk が好きなので入れました．

</div></details><br>

念のため記法についても記載しておく．

<details>
<summary>tools.ini の記法 (折りたたみ)</summary><div><br>

1つのショートカットは以下のように記述される．

```ini
[<Three-digit_number>]
name=<Compile_method_name>
program=<Compile_command>
arguments=<Compile_command_args>
showPdf=<true_or_false>
```

`arguments` では以下のようなオプションを利用することが出来る．

|      Option      | Description                          |
| :--------------: | :----------------------------------- |
| `$synctexoption` | `-synctex=1` に展開                  |
|   `$fullname`    | ファイルの絶対パス                   |
|   `$basename`    | 拡張子を除いた絶対パス               |
|    `$suffix`     | 拡張子                               |
|   `$directory`   | ファイルを含むディレクトリの絶対パス |

> [AdvancedTypesettingTools # Defining new typesetting tools · TeXworks/texworks Wiki](https://github.com/TeXworks/texworks/wiki/AdvancedTypesettingTools#defining-new-typesetting-tools)

余力があれば好きなようにカスタマイズ出来るようになる良いだろう．

</div></details><br>

もちろんGUI で編集しても良いが，全体を編集するには労力が大きすぎる．ファイルを編集した方が楽だろう．

## ■ シンタックスハイライト

デフォルトのシンタックスハイライトは非常にシンプルになっている．
シンプルさ故にちょっとチープな感じもする．

以下のファイルを書き変えることでシンタックスハイライトを変更することが出来る．

```
C:\<USER>\<user_name>\.texlive20**\texmf-config\texworks\configuration\syntax-patterns.txt
```

今回はLaTeX のみについて以下の点を変更を加えた．

- ハイライトテーマを追加
- ハイライトを追加
  - 数字
  - 括弧
  - いくつかの記号
- 余分な空白文字に赤下線を追加
  - 空白文字のみの行
  - 行末の空白文字
  - すべての全角スペース

適用すると一例として以下のような感じになる．フォントはConsolas になっている．

![Monokai theme texworks](https://i.gyazo.com/e7df7ed4d81e7a5fb61225b1a7c8a126.png)

<details>
<summary>syntax-pattern.txt (折りたたみ)</summary><div><br>

さまざまなテーマを作成してみた．以下のページを参考に配色を決めた．

> *cf.* [Brand Colors | Verified brand colors on Kolormark](https://kolormark.com/brands)

複数作成したため，メニューバーのから`フォーマット> 構文の色付け` から順に変更することが出来る．また，設定を保存する場合はメニューバーの`編集> 設定` からエディタの「構文の色付け」を選択することが出来る．
デフォルトのシンタックスハイライトに加えて，5つのテーマを作成してみた．これらには，かなり下手なハイライト設定も含まれている．

- LaTeX (Default)
- LaTeX: Visual Studio Code
- LaTeX: Monokai theme
- LaTeX: Bluloco theme
- LaTeX: BatCat Design
- LaTeX: PatternCrew

おそらく読み取り専用ファイルになっているが，プロパティから読み取り専用を解除すれば問題ない．

> syntax-pattern.txt (一応ライセンスも付与)

```
# Copyright 2021 Yarakashi Kikohshi
# Released under the MIT License
# https://opensource.org/licenses/mit-license.php
# ----- ----- -----

# TeXworks: Patterns for syntax coloring

# Each entry consists of three whitespace-separated fields:
# <style> <spell?> <regex>

# <style> is a combination of color and style flags
# Valid syntax:
# <fgcolor>
# <fgcolor>/<bgcolor>
# ;<fontflags>
# <fgcolor>;<fontflags>
# <fgcolor>/<bgcolor>;<fontflags>
#
# The color fields <fgcolor> and <bgcolor> are either:
# *) a color name from the list defined in the SVG standard;
#    see https://www.w3.org/TR/SVG11/types.html#ColorKeywords
# *) a hexadecimal color value of the form #rrggbb; note that if this is used at
#    the beginning of a line, a space " " must be added in front of it so the
#    line is not interpreted as a comment (e.g., " #aabbcc" instead of "#aabbcc")
#
# The <fontflags> field is a combination of the letters
# B (bold)
# I (italic)
# U (underlined)

# <spell> is a flag controlling whether this style is subject to spell-checking;
# "Y" or "y" for yes, "N" (or anything else, actually) for no.

# <regex> is the regular expression to match.

# Note that order of rules may be important if several rules could match at the same position;
# this is why the generic "control sequence" rule comes AFTER the specific \begin/\end one.

[LaTeX]
# Default theme
# special characters
darkred		N	[$#^_{}&]

# LaTeX environments
darkgreen	N	\\(?:begin|end)\s*\{[^\}]*\}

# LaTeX packages
darkblue	N	\\usepackage\s*(?:\[[^\]]*\]\s*)?\{[^\}]*\}

# control sequences
blue		N	\\(?:[\p{L}@]+|.)

# comments
red		Y	%.*

[LaTeX: Visual Studio Code]
# Visual Studio Code theme

# special characters
 #C586C0	N	[\$#\^\_\+\-&]

# line breaks
 #C586C0	N	\\\\

# brank
 #F44747;U	N	^\s+$
 #F44747;U	N	(?=.)+\s+$
 #F44747;U	N	　

# numeric
 #B5CEA8	N	[0-9]

# LaTeX environments
 #9CDCFE	N	(?<=\\begin\{|\\end\{).*(?=\})
 #DCDCAA	N	\\(?:begin|end)

# LaTeX packages
 #DCDCAA	N	(?<=\\documentclass\[|\\usepackage\[)(?:.*|\n(?:.*\n)*\s?)(?=\])
 #C586C0	N	\\(?:documentclass|usepackage)

# control sequences
 #569CD6	N	\\(?:[\p{L}@]+|.)

# brace
 #4EC9B0	N	[\{\}\[\]\(\)]

# comments
 #6A9955;U	Y	%.*

[LaTeX: Monokai theme]
# Monokai theme
# https://kolormark.com/brands/monokai

# special characters
# Monokai Blue
 #66D9EF	N	[\$#\^\_\+\-&]

# line breaks
# Monokai Blue
 #66D9EF	N	\\\\

# brank
 #F44747;U	N	^\s+$
 #F44747;U	N	(?=.)+\s+$
 #F44747;U	N	　

# numeric
# Monokai Green
 #A6E22E	N	[0-9]

# LaTeX packages
 #595959;I	N	(?<=\\documentclass\[|\\usepackage\[)(?:.*|\n(?:.*\n)*\s?)(?=\])
# Monokai Pink
 #F92672	N	\\(?:documentclass|usepackage)

# LaTeX environments
 #595959;I	N	(?<=\\begin\{|\\end\{).*(?=\})
# Monokai Pro Pink
 #FF6188	N	\\(?:begin|end)

# control sequences
# Monokai Pro Purple
 #AE81FF	N	\\(?:[\p{L}@]+|.)

# brace
# Monokai Orange
 #FD971F	N	[\{\}\[\]\(\)]

# comments
 #75715E;U	Y	%.*

[LaTeX: Bluloco theme]
# Bluloco theme
# https://github.com/uloco/theme-bluloco-light

# special characters
 #DF631C	N	[\$#\^\_\+\-&]

# line breaks
 #DF631C	N	\\\\

# brank
 #F44747;U	N	^\s+$
 #F44747;U	N	(?=.)+\s+$
 #F44747;U	N	　

# numeric
 #CE33C0	N	[0-9]

# LaTeX packages
 #7A82DA	N	(?<=\\documentclass\[|\\usepackage\[)(?:.*|\n(?:.*\n)*\s?)(?=\])
 #D52753	N	\\(?:documentclass|usepackage)

# LaTeX environments
 #A05A48	N	(?<=\\begin\{|\\end\{).*(?=\})
 #275FE4	N	\\(?:begin|end)

# control sequences
 #23974A	N	\\(?:[\p{L}@]+|.)

# brace
 #823FF1	N	[\{\}\[\]\(\)]

# comments
 #A0A1A7	Y	%.*

[LaTeX: BatCat Design]
# BatCat Design theme
# https://kolormark.com/brands/badcat

# special characters
 #FF2D96	N	[\$#\^\_\+\-&]

# line breaks
 #FF2D96	N	\\\\

# brank
 #F44747;U	N	^\s+$
 #F44747;U	N	(?=.)+\s+$
 #F44747;U	N	　

# numeric
 #D00D1E	N	[0-9]

# LaTeX packages
 #DEFACE	N	(?<=\\documentclass\[|\\usepackage\[)(?:.*|\n(?:.*\n)*\s?)(?=\])
 #7C3583	N	\\(?:documentclass|usepackage)

# LaTeX environments
 #DEFACE	N	(?<=\\begin\{|\\end\{).*(?=\})
 #AC1D1C	N	\\(?:begin|end)

# control sequences
 #0FF1CE	N	\\(?:[\p{L}@]+|.)

# brace
 #FACADE	N	[\{\}\[\]\(\)]

# comments
 #BEEBEE	Y	%.*

[LaTeX: PatternCrew]
# PatternCrew theme
# https://kolormark.com/brands/patterncrew

# special characters
 #711271	N	[\$#\^\_\+\-&]

# line breaks
 #711271	N	\\\\

# brank
 #F44747;U	N	^\s+$
 #F44747;U	N	(?=.)+\s+$
 #F44747;U	N	　

# numeric
 #F47471	N	[0-9]

# LaTeX packages
 #4A4C49	N	(?<=\\documentclass\[|\\usepackage\[)(?:.*|\n(?:.*\n)*\s?)(?=\])
 #711271	N	\\(?:documentclass|usepackage)

# LaTeX environments
 #4A4C49	N	(?<=\\begin\{|\\end\{).*(?=\})
 #1E382D	N	\\(?:begin|end)

# control sequences
 #007D8C	N	\\(?:[\p{L}@]+|.)

# brace
 #DC000C	N	[\{\}\[\]\(\)]

# comments
 #96ACA4	Y	%.*

[ConTeXt]
# special characters
darkred		N	[$#{}&]

# 'other' special characters
darkblue	N	[=\[\]]

# mathematical operations
gray		N	[\-+/^_]

# start/stop
darkgreen;B	N	\\(?:start|stop)[A-Za-z]+

# control sequences
blue;B		N	\\(?:[\p{L}@]+|.)

# comments
red		Y	%.*

[BibTeX]

# entries
darkgreen	N	@[^{]+

# comments
red		Y	%.*

# keys
blue	N	[a-zA-Z]+(?=\s*=)

[LaTeX DTX]

# comments
red		Y	\^\^A.*

# Guards
darkviolet		N	^%<@@=[^>]*>
limegreen		N	^%<\*[^>]*>
crimson		N	^%</[^>]*>
brown		N	^%<<
orange		N	^%<[^>]*>

# special characters
darkred		N	\^\^\^\^\^[0-9a-z]{5}
darkred		N	\^\^\^\^[0-9a-z]{4}
darkred
	N	\^\^\^[0-9a-z]{3}
darkred		N	\^\^[0-9a-z]{2}
darkred		N	[$#^_{}&]
gray		N	^%%.*
gray		N	^%

# Macrocode
green		N	\\(?:begin|end)\{macrocode\}

# LaTeX environments
darkgreen	N	\\(?:begin|end)\s*\{[^}]*\}

# control sequences
blue		N	\\(?:[\p{L}@:_]+|.)

[Lua]

# Comments (single line only)
red		Y	--.*

# Strings
green		N	(?:\"(?:[^\"\\]|\\[\s\S])*(?:\"|$)|\'(?:[^\'\\]|\\[\s\S])*(?:\'|$))
green		N	\[(=*)\[[\s\S]*(?:\]\1\]|$)

# Keywords
blue;B		N
\b(?:and|break|do|else|elseif|end|false|for|function|if|in|local|nil|not|or|repeat|return|then|true|until|while)\b

# Numbers
darkblue	N	[+-]?(?:0x[\da-f]+|(?:(?:\.\d+|\d+(?:\.\d*)?)(?:e[+\-]?\d+)?))

# other possibilities to be added....
# [Metapost]
# etc
```

</div></details><br>

syntax-pattern.txt にも記法が記載されているが，改めて記載しておく．

<details>
<summary>syntax-pattern.txt の記法 (折りたたみ)</summary><div><br>

基本構文は以下のようにする．これらの要素はタブで区切る．

```
<style>		<spell?>	<regex>
```

`#` が行頭にある行はコメントアウトされる．

**_例_**
: `%` より右側の文字列に下線を付けてMonokai Pro Purple にする

```
# Monokai Pro Purple
 #AB9DF2;U	Y	%.*
```

----------

> > **§** **Style**

スタイルでは文字色(`<fgcolor>`)とフォントスタイル(`<fontflags>`)を指定することが出来る．いずれか一方でも機能する．
これらは`;` で区切られる．

```
<fgcolor>
;<fontflags>
<fgcolor>;<fontflags>
```

`<fgcolor>` はHex 値かSVG 標準の予約済み色名(以下リンク参照) を利用できる．

> *cf.* https://www.w3.org/TR/SVG11/types.html#ColorKeywords

Hex 値の場合は半角スペース1つ空けてから行を始める．

`<fontflags>` では太字，斜体，下線を与えることが出来る．

| `<fontflags>` | Description |
| :-----------: | :---------- |
|      `B`      | bold        |
|      `I`      | italic      |
|      `U`      | underlined  |

----------

> > **§** **Spell**

スペルチェックをするかどうかを決める．

```
"Y" or "y" for yes, "N" (or anything else, actually) for no.
```

----------

> > **§** **Regex**

正規表現でハイライトを与える構文を定義する．

</div></details><br>

## ■ フォント

デフォルトでは`MS UI Gothic` に設定されている．上では`Consolas` に変更している．
しかし，`Consolas` が対応しているのは欧文のみで和文には対応していない．すこし不格好だとも思われる．

このような場合には日本語対応のプログラミング用フォントを導入して変更しても良いだろう．
Windows では日本語対応のプログラミング用フォントが含まれていないので，適宜ダウンロードして導入する必要がある．

このようなフォントに変更するメリットは以下のようなものがある．

- 文字が紛らわしくない (`1` と`l` や`0` と`O` など)
- 全角スペースを視認できる

本記事ではCica をおすすめしておく．
以下のダウンロードページからZip ファイルをダウンロード，解凍，インストールすれば良い．これで利用できるようになる．

> [miiton/Cica: プログラミング用日本語等幅フォント Cica(シカ) - GitHub](https://github.com/miiton/Cica)

この他に，MyricaM，白源などがある．

> - [プログラミングフォント Myrica / Estable | Myrica （ミリカ）は、フリーなプログラミング用 TrueType フォントです。](https://myrica.estable.jp/)
> - [yuru7/HackGen: Hack と源柔ゴシックを合成したプログラミングフォント 白源 (はくげん／HackGen) - GitHub](https://github.com/yuru7/HackGen)

Ricty Diminished もあるが，生成が面倒なので省略．

> [プログラミング用フォント Ricty Diminished](https://rictyfonts.github.io/diminished)

インストールしたのちに`編集> 設定> エディタ` から変更することが出来るようになる．

## ■ その他

### マニュアル

マニュアルはTeXworks を立ち上げて，メニューバーの`ヘルプ>A short manual for TeXworks` から見ることが出来る．

このファイルは以下のディレクトリに格納されている．
フランス語のマニュアルもあるので，フランス語の方が読みやすい方はそちらを見ると良い．

```
%TEXLIVE%\20**\tlpkg\texworks\texworks-help\TeXworks-manual\en\index.html
```

本記事の参考はすべてこのマニュアルになる．

### 検索と置換

検索と置換にはいくつかのキーボードショートカットが与えられている．

|    Shortcut    | Description  |
| :------------: | :----------- |
|    `Ctrl+F`    | 検索         |
|    `Ctrl+R`    | 置換         |
|    `Ctrl+G`    | 繰り返し検索 |
| `Ctrl+Shift+R` | 繰り返し置換 |

これらの検索はカーソルより下側のものを検索するようになっている．ドキュメント全体を検索したい場合は「検索結果をすべて表示する(a)」にチェックを入れておくと良いだろう．

また，検索と置換には正規表現を利用することも出来る．「正規表現(R)」にチェックを入れると利用できる．ただし，正規表現の詳細については記載を避ける．

> *cf.* A short manual for TeXworks B. Regular expressions

### 起動が遅い

起動が遅い場合，「最近開いた文書」を記録していることが良くない影響を及ぼしているようだ．

メニューバーの`ファイル> 最近開いた文書` から`最近開いたファイルの一覧をクリア` すれば良いだろう．
あるいは，以下のファイルから`recentFiles` の項目を削除すれば良い．

```
C:\<USER>\<user_name>\.texlive20**\texmf-config\texworks\TUG\TeXworks.ini
```

記録しない設定は存在しないようだ．

### ダークテーマ

TeXworks はダークテーマを搭載していない．

そのため，デフォルトでイメージを選択出来るようにする方が良いというIssue は上がっている．これが実現されればより平易にイメージを変更することが出来るが，実際はまだそうはいかない．

> [Implement dark mode · Issue #932 · TeXworks/texworks \- GitHub](https://github.com/TeXworks/texworks/issues/932)

しかしながら，頑張ればダークテーマにすることも出来る．
頑張ってみた ↓

> [僕はTeXworks を使いこなしていない \- Gist](https://gist.github.com/Yarakashi-Kikohshi/1670f2f0c169ad4971101bf4fa7dbae9)

# 余談

VSCode で編集できなくなったときのためにTeXworks が使い物になるか試していたところ，いくつか初心者向きでないような設定があると感じたので記事にしてみた．
たぶんこれで初心者に優しいTeXworks になっていると思われる．

TeX 用エディタで対話モードに対応しているものはTeXworks くらいなのではないかと思っているのだが，世の中で対話モードを利用してLaTeX している人がどれくらいいるのだろうと思う．
また，どれくらいの人がTeX とおしゃべり出来るのだろう．(誰も教えてくれたことなかった記憶)

ダークテーマがデフォルトで設定されていない点はエディタとしてかなり痛いように思う．長時間編集していると目が疲れる．

## 他のエディタとの比較?

エディタとしての出来るとことの少なさを思うと，TeXworks はかなりチープなエディタだ．

しかしながら，基本的なエディタの機能は搭載されており，デフォルトでタイプセットの設定からSyncTeX の設定までされていることを思うと初心者にとって敷居の低いエディタであると思う．

TeXstudio やその他の汎用テキストエディタ(\+拡張機能) ではTeXworks 以上の機能がさまざま整っている．設定は面倒だが，これらを使ったらTeXworks には戻れないと言われればそうである．

<!-- https://www.webfx.com/tools/emoji-cheat-sheet/ -->