TeXの改行&改ページ

TeX

TeXで改行する方法と、ページを変える方法です 改行 コマンド 改段落 改ページ 補足 空行 あり あり \\ 無し あり \\* 無し 無し \newline 無し あり \\と同じ意味 \linebreak 無し あり \break 無し あり \hfill\break 無し あり \vspace{5mm} 無し あり 余…

Emacsからjupyter notebookを使う方法

Emacs からjupyter notebookを使う方法をまとめますjupyter notebookは python やRを使った開発 グラフをプロットしながらデータをこねくり回すデータサイエンス・機械学習的な作業 流行りのデープラーニング などで非常に便利ですが、これらがすべて Emacs …

sshで急に接続できなくなった場合の対処方法 (no matching host key type found. Their offer: ssh-rsa,ssh-dss)

no matching host key type found. Their offer: ssh-rsa,ssh-dss というエラーメッセージでssh接続できない場合は ~/.ssh/config の末尾に以下の三行を加えればとりあえず接続できるようになります Host * HostKeyAlgorithms=+ssh-rsa PubkeyAcceptedAlgori…

hunspell の使い方&動かない時の対処方法

スペルチェッカーの hunspell の使い方ですスペルチェッカーといえば ispell aspell hunspell enchant あたりが定番です.2022年の時点でデファクトは hunspell ?という状況ですhunspell は Linux環境だと特に問題なく”普通"に使えますが,自分でビルドした…

Emacsのautoinsert.elを使うぐらいならfile-template.elを使うべき

Emacs には標準で autoinsert.el (auto-insert-mode) がありますが,file-template.el のほうがもっと便利です 初期設定 file-template.el をダウンロードします www.emacswiki.orgダウンロードした file-template.el は emacs のload-pathが通ったディレク…

Emacs でSQLを実行する

Emacs 上でSQLを実行する方法です 設定方法 sql-mode を使います. init.el などで初期設定をしておきます (use-package sql :hook ((sql-mode) . sqlind-minor-mode)) SQLの書式(インデントやtabサイズ)の設定,DBへの接続情報は,init.el に書くよりも .d…

マウスホイールでのフォントサイズ変更を無効にする方法

Emacs で ctrl キーを押しながらマウスホイールを上下にスクロールさせると,フォントサイズが変更できます.しかし,この機能 macbook で emacs を使っていると誤爆することがあります.そんな時は (global-unset-key (kbd "C-<wheel-up>")) (global-unset-key (kbd "</wheel-up>…

ローカルにダウンロード済みのphpのマニュアルをemacsから参照する方法

emacs の php-mode を使います.phpのマニュアルを簡単かつ素早く参照できるようになります. マニュアルのダウンロード マニュアルを保存するディレクトリを作成します $ mkdir -p ~/doc/php-manual https://www.php.net/download-docs.php から"Many HTML …

bashで正規表現を使う方法

bashのシェルスクリプトで正規表現を使う方法をまとめます 正規表現でパターンマッチ bash の演算子 "=~" を使います例 x=1234 if [[ $x =~ ^[0-9]+$ ]]; then echo "x is number" else echo "x is not number" fi 正規表現で部分文字列を取り出す マッチし…

エクセル(Excel)のパスワードを調べる方法

Excel(エクセル)ファイルのパスワードを忘れたと同僚が困っていたので、パスワードを解読(解除)してあげました。以下手順をメモします ツールのインストール 有料のツールもありますが、無料で利用できる John The Ripper を使いました。github からコー…

std::string と std::wstring の相互変換

c++

c++ で std::string と std::wstring (ワイド文字列版) を相互に変換するコードですプロトタイプ宣言 #include <string> std::wstring s2ws(const std::string& str); std::string ws2s(const std::wstring& wstr); 実装 #include <string> #include <codecvt> std::wstring s2ws(cons</codecvt></string></string>…

emacs でHTMLのコーディングを自動チェックする方法

emacs で HTMLのコーディングチェックを行う方法です flycheck を使います HTMLの解析ツールは htmllint を使います tidy より htmllint の方が使い勝手が良いように思います 手順1: htmllint のインストール npm で htmllint-cli をインストールしますひと…

Ctrlキーとcapsキーを入れ替える(Linuxでudevを使う方法)

キーボード割当を変更して ctrl キーとcapsキーを入れ替える方法ですudev で設定するので,hotplug 対応,コンソール&Xサーバ同時に設定可能な方法となります. 要約 キーボードをUSBで接続している場合lsusb で vendorID と productID を調べます $ lsusb …

フォルダを再帰的に辿って、動画ファイルのファイル名と再生時間をcsv形式でまとめて出力する方法

フォルダの中にたくさんある動画ファイルをサーチして,ファイル名と再生時間を CSV形式のファイルにまとめて出力するワンライナーです find -name "*.mp4" | sort -g | while read f ; do d=`ffprobe "$f" 2>&1 | grep Duration | cut -d' ' -f 4`; echo $f…

ディレクトリを再帰的に辿ってファイルのチェックサム(md5sum)を計算する方法

特定のディレクトリ以下にある全てのファイルについて md5sum を計算するワンライナーです find -type f -print0 | xargs -0 md5sum > md5sum.txt コマンドの意味は find で再帰的にディレクトリを探索して 全てのファイル名をstdoutに出力 (-type f) xargs …

/run/user/$UID ディレクトリのサイズを大きくする方法

systemd 以前の"古い"Linuxでは、テンポラリディレクトリといえば /tmp で、環境変数 $TMPDIR が /tmp を指していました。systemd 以降の今どきのLinuxは、テンポラリディレクトリは /run/user/$UID であり、環境変数 $XDG_RUNTIME_DIR が/run/user/$UIDを指…

macOSにtexlive2022をインストールする方法

macOS の TeX環境を texlive2022 に更新したので手順をまとめます.この記事は以下のエントリを macOS と Tex Live 2022 に合わせて更新・加筆したものです. http://pyopyopyo.hatenablog.com/entry/2019/07/04/150000 http://pyopyopyo.hatenablog.com/ent…

__FILE__ からディレクトリ名を削除する方法

c/c++のマクロ __FILE__ から、ディレクトリ名を取り除いて、ファイル名だけ(basenameだけ)にする方法です。stackoverflow にいろんな方法が掲載されていたので、要点だけまとめます。 https://stackoverflow.com/questions/8487986/file-macro-shows-full-p…

MSVC でC26812の警告を消す方法

Visual studio (MSVC) 2019で C26812のwarningを無視する方法ですC26812 は enum class に関する警告で、たとえば次のようなメッセージが出力されます。 Prefer ‘enum class’ over ‘enum’ (Enum.3). この警告はC++11で新しく追加された enum class と従来のe…

linuxでbeepのOn/Offを設定する

linuxでbeep(bell)を鳴らしたい場合・止めたい場合の設定方法をまとめます beepコマンド beepコマンドで,beep音が出るか確認します $ beep beepコマンドで permission errorが出る場合 beepデバイスは,デバイスファイル /dev/input/by-path/platform-pcspk…

CMakeでCFLAGSのデフォルト値を変更する方法

CMakeで コンパイラに渡すオプションの初期値を変更する方法ですCMakeの公式FAQに「正しい」方法が書いてあるので、その方法を紹介します https://gitlab.kitware.com/cmake/community/-/wikis/FAQ 設定ファイルの作成 ファイル名はなんでもよいのですが、設…

GNU screen をマウスでスクロールさせる方法

~/.screenrc に以下の一行を加えるだけ termcapinfo xterm* ti@:te@ これでマウスのスクロール(マウスホイールや,mac のトラックパッドのmulti-touchのドラッグ)で GNU screen をスクロールできますデフォルト設定のGNU screenだと,スクロールは "C-a" "…

SFINAEでオーバーロードされた関数を検出する方法

c++

C++ のSFINAE (Substitution Failure Is Not An Error)を使って,クラス T に foo(int a, int b)があるか否かを調べる方法です. 簡単な例(class Tに オーバーロードされた関数がない場合) まずはシンプルに,クラス T に対してT::foo が存在するかどうか調…

debian の nvidia-graphics-drivers パッケージを自分で編集&更新する方法

debian の nvidia-graphics-drivers が古いまま(470.57.02 )でなかなか更新されないので,自力で 470.63.01 に更新しました.470.57.02 はLinux-5.14をサポートしていませんが(モジュールがビルドできない), 470.63.01 ならLinux-5.14もサポートしていま…

ムービーファイルから特定のチャプターだけを抜き出す方法

mp4などの動画ファイルから,特定の章(チャプター)を切り出す方法です.切り出しはffmpegを使うと簡単かつ高速です.音声・画質の劣化もありません. 手順1) チャプター情報の確認 ffmpeg付属のffprobeコマンドを使いチャプターの一覧を確認します $ ffpro…

python / numpy で特異値分解(SVD)を使って一般化逆行列を計算する

一般化逆行列(擬似逆行列,最小二乗法に対応するやつ)を python で計算するサンプル特異値分解(SVD)が必要なので,実装は numpy を使いますc++/eigen で実装したコード https://pyopyopyo.hatenablog.com/entry/2021/09/07/090000 のpython版になります im…

C++/Eigen で特異値分解(SVD)を使って一般化逆行列を計算する

一般化逆行列(擬似逆行列,最小二乗法に対応するやつ)をc++で計算するサンプル特異値分解(SVD)が必要なので,実装は Eigen を使いますpython/numpy の実装も用意しました.こちらです https://pyopyopyo.hatenablog.com/entry/2021/09/14/161955 #include <Eigen/Dense></eigen/dense>…

/dev/null みたいな std::ostream

c++

/dev/null みたいな std::ostream を作る方法. 方法1 : std::ostreamを継承して自前の null stream を作成する 以下のURLで紹介されている方法 stackoverflow.com #include <iostream> class NulStreambuf : public std::streambuf { char dummyBuffer[ 64 ]; protect</iostream>…

Linuxの起動が遅い原因の調査方法(その2)

Linuxの起動がものすごく遅い.5分ぐらい掛かる.原因を調査,解決したので手順をまとめておきます. 起動時のログを見る方法 systemdにはシステム起動時のログを分析する機能があります.使い方も簡単まずは systemd-analyze を実行します $ systemd-analyz…

debian/changelog からバージョン番号を取り出す方法

debianのソースパッケージから,生成されるバイナリパッケージのバージョン情報を抽出するには dpkg-parsechangelog を使うのが簡単.例 dpkg-parsechangelog --file path/to/changelog --show-field Version dpkg-parsechangelog --file path/to/changelog …