-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'master' of github:dirac6582/dirac6582.github.io
- Loading branch information
Showing
8 changed files
with
405 additions
and
4 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,134 @@ | ||
--- | ||
# Feel free to add content and custom Front Matter to this file. | ||
# To modify the layout, see https://jekyllrb.com/docs/themes/#overriding-theme-defaults | ||
title: aspellでTeX文書のスペルチェック | ||
layout: single | ||
date: 2023-10-27 21:00:00 +0900 | ||
categories: | ||
- code | ||
tags: | ||
- bash | ||
- emacs | ||
description: aspellによるスペルチェック | ||
--- | ||
|
||
TeX文書のスペルチェックにはいくつかの方法がある.ひとつが今日紹介するコマンドラインからispellやaspellを用いる方法,そしてもう一つがflyspellに代表されるようにエディターでオンザフライでやる方法だ.後者の方法もスペルチェックのエンジンとしてはispell/aspellを利用していることが多い.詳しいことは[aspellの公式ドキュメント](http://aspell.net/man-html/index.html)を参照. | ||
|
||
## aspellのインストール | ||
|
||
コマンドラインから使えるaspellはispellに機能を追加した新しい(といってもすでに結構古いが...)スペルチェッカーだ.macの場合はhomebrew/macportsから簡単にインストールできる. | ||
|
||
```bash | ||
brew install aspell | ||
``` | ||
|
||
## 基本的な使い方 | ||
|
||
基本的な使い方は以下のように`-l`で言語を,`-c`でファイルを指定する.`-t`はファイルがTeXファイルであることを示すオプションである. | ||
|
||
```bash | ||
aspell -t -l en -c <file> | ||
``` | ||
|
||
これでインタラクティブにスペルを修正できる.修正は複数の修正候補が画面上に表示されるので対応する番号を押すことでひとつづつ修正していく.まずはこれで使い勝手を見てみるのが良いだろう. | ||
|
||
|
||
## 応用的な使い方 | ||
|
||
実際上はもう少し高等な使い方をしたいことが多い.以下にいくつか例をあげるが,これらはあくまでオプションである. | ||
|
||
### aspellの設定ファイルをつくる | ||
|
||
aspellの設定ファイルは`.aspell.conf`という名前で,通常ホームディレクトリに置かれる[^1].よく使うオプションはこちらに記述した方がよい.一例を示す.`personal`は個人辞書の指定である.(後述) | ||
|
||
```bash | ||
lang en_US | ||
mode tex | ||
personal ~/.aspell.en.pws | ||
``` | ||
|
||
もしプロジェクトごとに設定ファイルを変更したい場合は,`aspell`実行時に`--conf`オプションで指定する. | ||
|
||
```bash | ||
aspell --conf=<path/to/aspell.conf> -c <file> | ||
``` | ||
|
||
本格的に使いたい場合は設定ファイルを書くことを強くおすすめしたい.可能なオプションについては[公式のマニュアル](http://aspell.net/man-html/Customizing-Aspell.html#Customizing-Aspell)に詳しい説明がある.基本的には辞書に関する設定,エンコーディングに関する設定,チェッカーに関するオプション,フィルター(ファイル形式)に関するオプションの4つを色々と指定できる.それぞれのオプションで可能な値については`aspell dump <options>`コマンドで調べられる.例えばファイル形式について知りたい場合は`aspell dump modes`とすると以下のように可能な形式の一覧が表示される. | ||
|
||
```bash | ||
$ aspell dump modes | ||
nroff mode for checking Nroff documents | ||
perl mode for checking Perl comments and string literals | ||
email mode for skipping quoted text in email messages | ||
tex mode for checking TeX/LaTeX documents | ||
markdown mode for checking Markdown/CommonMark documents | ||
ccpp mode for checking C++ comments and string literals | ||
sgml mode for checking generic SGML/XML documents | ||
none mode to disable all filters | ||
texinfo mode for checking Texinfo documents | ||
html mode for checking HTML documents | ||
comment mode to check any lines starting with a # | ||
url mode to skip URL like constructs (default mode) | ||
``` | ||
### 辞書に単語を追加する | ||
専門用語や個人名などは予め辞書に登録しておくといちいち修正候補として表示されないので楽になる.デフォルトでは辞書はホームディレクトリ直下に`~/.aspell.en.pws`という名前で保存される.aspellで修正中も`a`でユーザー辞書に登録できる.辞書はただのテキストファイルなので各自で自由に編集できる.辞書のフォーマットは,まず一行目に | ||
``` | ||
personal_ws-1.1 lang num [encoding] | ||
``` | ||
という行が必要.`lang`は言語,`num`は辞書に含まれる単語の数なのだが数字はいくつでもよいらしい.例えば英語の場合は | ||
``` | ||
personal_ws-1.1 en 0 | ||
``` | ||
でOK.二行目以降に一行一単語で追加していくだけ.たとえばファイルの一例は以下のような感じ. | ||
``` | ||
personal_ws-1.1 en 0 | ||
Bach | ||
Beethoven | ||
Chopin | ||
Mozart | ||
``` | ||
### プロジェクトごとに辞書を使い分ける | ||
もしプロジェクトごとに辞書を使いわけたい場合は追加で辞書ファイルを作成してaspell実行時に辞書を指定する. | ||
```bash | ||
aspell --personal <path/to/dictionary> -l en -c <file> | ||
``` | ||
もしくは上にあげたように`aspell.conf`の`personal`オプションで個人辞書を指定する.また,複数の辞書を扱いたい場合は`extra-dicts`オプションで追加指定できる. | ||
### emacs上から直接利用する | ||
emacsで編集している場合は,コマンドラインからではなくemacs上から直接aspellを利用できるが,これは今回の趣旨と違うのでまた別の機会に紹介する. | ||
## 実際の運用についてのコメント | ||
実際の運用では,私はプロジェクトごとに辞書ファイル,設定ファイルを作るようにしている.全ての文書で同一の個人辞書を使ってしまうと辞書が大きくなって意図せずスペルミスを見逃す可能性がありそうだからだ.gitでの管理が楽になるというのもある. | ||
emacsでのflyspellや,最近のIDEの優れた機能を利用すればエディターで編集中にオンザフライでスペルチェックはできるが,文書を書いている最中は内容を考える方に頭が行っていてスペルチェックまで完璧にできることは少ない.aspellは文書が出来上がったあとで一括で全体のスペルチェックができるので修正漏れが起こりにくいというメリットがあると思う.というわけでどんな場合でも文書完成後に一回aspellにかけておくと安心できる. | ||
また,これはaspellに限らないがこの手のスペルチェッカーはあくまで単純なスペルミスを修正してくれるにすぎず,文法の誤りや表現の誤りは一切修正できないことにも留意すべきだ.それらの修正にはより高等なアプリで確認する必要がある.これらのアプリでは同時にスペルミスも直してくれるが,TeXファイルを直接確認できるものはおそらく存在しない(?)ため,一回pdfに起こしてから文書をコピーして... とする必要がある.そうするとどうしてもTeXファイルを直接チェックできるaspellに比べてミスを逃しすくなる印象がある. | ||
まとめると(あくまで私の場合は)文書を書く,スペルチェックをする,文法/表現の修正をするの3ステップを別々にやることでより漏れのすくない自己校正ができると考えており,そのためのツールとしてaspellは必須である,ということだ. | ||
## 参考 | ||
[aspellの公式ドキュメント](http://aspell.net/man-html/index.html) | ||
[TeX Wiki Aspell](https://texwiki.texjp.org/?Aspell) | ||
[英語の文章を aspell でスペルチェック #英語 - Qiita](https://qiita.com/YutakakINJO/items/2c891aff66ef45251893) | ||
## 備考 | ||
[^1]: より具体的にはglobal configuration fileが`/usr/etc`または`/usr/local/etc`に存在し,ホームディレクトリにおかれたpersonal configuration fileがその設定を上書きする. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,87 @@ | ||
--- | ||
# Feel free to add content and custom Front Matter to this file. | ||
# To modify the layout, see https://jekyllrb.com/docs/themes/#overriding-theme-defaults | ||
title: tex pgfplotsでの凡例の指定方法について簡単に紹介 | ||
layout: single | ||
date: 2023-11-14 21:00:00 +0900 | ||
categories: | ||
- code | ||
tags: | ||
- bash | ||
- emacs | ||
description: pgfplotsで凡例の設定を行う際に頻出の項目を簡単に紹介する. | ||
--- | ||
|
||
pgfplotsで凡例の設定を行う際に個人的頻出の項目を簡単に紹介する.より詳しい説明は公式ドキュメントも参照のこと. | ||
|
||
|
||
## pgfplotsにおける凡例の見た目の設定 | ||
|
||
pgfplotsにおける凡例の設定は代表的なところではlegendの場所を指定する`legend pos`,凡例文字の左寄せや右寄せを指定する`legend cell align`,凡例を何×何で表示するかを決定する`legend columns`などがある.詳細はpgfplotマニュアルの`4.8.5 Legend Appearance`に記載がある. | ||
|
||
```tex | ||
legend pos = north east, | ||
legend columns=3, | ||
legend cell align=left, | ||
``` | ||
|
||
これらは`legend style`でまとめて指定することも可能. | ||
|
||
```tex | ||
legend style={legend pos = north east, legend columns=3, legend cell align=left} | ||
``` | ||
|
||
## 凡例の場所指定について | ||
|
||
一番単純にやるには`legend pos`で指定する.これは凡例を四隅のどこに配置するかの指定で,例えば右上なら`north east`,左下なら`south west`のように方角で指定する.グラフ外に凡例を指定する場合は追加で`outer`を指定して | ||
|
||
```tex | ||
legend pos = outer north east, | ||
``` | ||
|
||
のようにする. | ||
|
||
さらに細かく自分で座標を指定したい場合は`at`コマンドで指定できる.この時の座標はグラフの左下が`(0,0)`,右上が`(1,1)`となる相対座標で,したがって1より大きい値を指定すればグラフ外に凡例を設定できる.このとき`anchor`で「どこの点がatの座標に対応するか」を指定する.例えば`anchor=center`なら凡例の中心点が`at`で指定した座標に対応する. | ||
|
||
```tex | ||
legend style={at={(0.5,1.12)},anchor=north} | ||
``` | ||
|
||
## 凡例の透明度の指定 | ||
|
||
透明度は`opacity`で指定可能で,特に下地の透明度を`fill opacity`で,描画の透明度を`draw opacity`で,文字の透明度を`text opacity`で指定できる. | ||
|
||
```tex | ||
legend style={fill=white, fill opacity=1, draw opacity=1, text opacity=1}, | ||
``` | ||
|
||
## 凡例ごとに指定を変更する | ||
|
||
例えばグラフの線は太さ`2`で書いたけど,凡例では太さ`4`でより太く見せたい,というような場合,`\addlegendimage`コマンドで細かく指定できる.このとき,`addplot`の方の凡例を表示しないようにするためにはオプションで`[forgot plot]`を指定する. | ||
|
||
```tex | ||
\documentclass{standalone} | ||
\usepackage{pgfplots} | ||
\pgfplotsset{compat=newest} | ||
\begin{document} | ||
\begin{tikzpicture} | ||
\begin{axis} | ||
\addplot+[forget plot] coordinates {(1,2) (2,1)}; | ||
\addlegendimage{line legend,green} % or mark=none? | ||
\addlegendentry{Simulation} | ||
\addlegendimage{line legend,blue} | ||
\addlegendentry{Measurement} | ||
\addlegendimage{green,mark=square} | ||
\addlegendentry{Set 1} | ||
\addlegendimage{blue,mark=o} | ||
\addlegendentry{Set 2} | ||
\end{axis} | ||
\end{tikzpicture} | ||
\end{document} | ||
``` | ||
|
||
|
||
## 参考文献 | ||
|
||
[Opacity of a legend fill in pgfplots - TeX - LaTeX Stack Exchange](https://tex.stackexchange.com/questions/178732/opacity-of-a-legend-fill-in-pgfplots) | ||
[pgfplots - How to modify the image of an legend entry - TeX - LaTeX Stack Exchange](https://tex.stackexchange.com/questions/113749/how-to-modify-the-image-of-an-legend-entry) |
Oops, something went wrong.