Usepackageで相対・絶対パス上のファイルを指定できるか?
出来ます。これでGitやDropBoxで動的に更新されるstyファイルを使う事ができます。
絶対パスの与え方
例えばこんな感じ。
\usepackage{C:/Users/Ossyaritoori/Documents/GitHub/LaTeX_template/<yourfile>}
この際,コツとして
- ファイル名の拡張子 .sty を省略する
- 「\」はTexで変に解釈されるので「/」を使う
があげられます。
相対パスの与え方
同様。
\usepackage{../style/<yourfile>}
なお,Staticなstyファイルは普通にTexのdist-packageに置きましょう。
ossyaritoori.hatenablog.com
リモートデスクトップのUbuntuのTab補間を有効化
問題編
WindowsからリモートでUbuntu(ログインした時のレイアウトはXubuntu)にログインすると
「Tab補間」が効かなくなる問題があります。これはバグではなくxrdpのデフォルトの仕様のようです。
gihyo.jp
技術メモメモ: Xubuntu 16.04にxrdpを使ってRDPでリモートデスクトップ接続をする
解決編
上記に加えて以下のやり取りも参考にしました。
Bash auto_completion with Xubuntu and xrdp from windows - Ask Ubuntu
以下のファイルを編集します。
~/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-keyboard-shortcuts.xml
下の方に,
<property name="<Super>Tab" type="string" value="switch_window_key"/>
という行があるのでこれを編集して
<property name="<Super>Tab" type="string" type="empty"/>
へと書き換えます。
その後サービスを再起動します。
sudo service xrdp restart
って感じだったはず。この時点で接続が切れるので注意です。
普通にOSを再起動してもいいかも。
以上。
私的文章作成手法あれこれまとめ
最近いろいろ試していて混乱してきたのでメモ
使用中のもの
Texstudio
デフォルトの文章作成ツール
おなじみのTex文章作成ツール。利点は
- 機能が豊富。辞書と予測変換の使い勝手の良さ。
- SumatraPDFとの連携でより使いやすく。コンパイル時の操作も指定可能
jupyter notebook
ちょっとした説明資料用
最近取り入れようとしている。コードと文章を共存できる強いやつ。
- コードもTexも専用のエディタの使い勝手には及ばない
- コメントが見やすいコードだと思えばまぁ悪くないかも
- 起動が若干面倒
まぁ作成後もTexへと起こす事ができるので比較的無駄はない。
ossyaritoori.hatenablog.com
StackEdit
GoogleChromeの拡張アプリ。GoogleDrive上でも使える簡単なMarkdownエディタ。
- 簡単でわかりやすい機能
- GoogleDriveやDropbox等と好相性
- Webに繋げない時起動が出来ない…?(未検証)
- PDF化に年間525円必要。
Classeur
StackEditの後継。
StackEditに比べて多機能かつPDF化も無料。
ハイライトがちょっと見づらい。
Pandocを介するっぽいのでPDF化で時々エラーがでるかも。
GoogeDocument
図付きのメモ帳。
特筆することは無いが,無難に使えるのと画像をポンと貼れるのが良い。
SnippingToolで切り取りしてGoogleDocumentに貼るとお手軽で見やすい文章が出来る。
後はマークダウンに対応してほしかった。
Word
嫌いだが,使わなければいけない場合がある。
上記全てが揃っていると特に出番はない。
嫌々使う
マークダウンの数式入力で楽をするマクロ
JupyterでTexとソースコードを書くことで,資料と実行コードを両立できてモチベや管理が楽になるかと思い色々いじっています。
追記: StackEditのマークダウンでも有効なことを確認。タイトルを修正
数式マクロをjypyter notebookで使う。
行列などは書くのが面倒すぎてマクロがないと書きたくない体になってしまいました。
ossyaritoori.hatenablog.com
jupyterでもこのマクロを導入する事ができます。
詳しくはこの質疑に情報が詰まっています。
IPython (Jupyter) MathJaX preamble - Stack Overflow
やり方は,「$$で囲んだ箇所にnewcommandを書く」でおしまいです。
少し不格好ですがノート頭で私は以下のようにマクロ宣言を実行しています。
## Tex Preamble $$ \newcommand{\bm}[1]{{\bf #1}} \newcommand{\eq}[1]{Eq.(\ref{eq:#1})} \newcommand{\zu}[1]{図\ref{fig:#1}} \newcommand{\shiki}[1]{式(\ref{eq:#1})} \newcommand{\fig}[1]{Fig.\ \ref{fig:#1}} \newcommand{\grp}[1]{Fig.\ \ref{grp:#1}} \newcommand{\tab}[1]{Table\ \ref{tab:#1}} \newcommand{\defeq}{:=} \newcommand{\tvec}[1]{\bvec{#1}^{\mathsf{T}}} \newcommand{\mr}[1]{\mathrm{#1}}%rm体 \newcommand{\ml}[1]{\mathcal{#1}}%frac体 \newcommand{\bmat}[1]{\begin{bmatrix} #1 \end{bmatrix}}%行列簡略化 \newcommand{\pmat}[1]{\begin{pmatrix} #1 \end{pmatrix}}%行列簡略化 \newcommand{\mat}[1]{\left( \begin{matrix} #1 \end{matrix} \right)}%行列簡略化 %\newcommand{\nom}[1]{ \ml{N} \{ 0,\sigma_{ #1 } \} } \newcommand{\expo}[1]{ \mathrm{e}^{#1} } $$
どんな感じになるか画像
マクロ宣言部分は実は実行後消えるのでそこまで不格好な感じにはならないかと。
このようにスッキリ。
Windows10からUbuntu16(jetsonTX1)へとリモートデスクトップ接続
いつだかラズパイ上のUbuntuへのリモートデスクトップ接続を試しました。
今回はGPUボードに接続したいのですが,前回の手法だと何故かうまくいかないので以下の回答に準拠しました。
remote desktop - Can I access Ubuntu from Windows remotely? - Ask Ubuntu
Ubuntu側のセットアップ手順
XRSPをインストール
sudo apt-get update sudo apt-get install xrdp
次にHomeディレクトリに移動して,
sudo apt-get install xfce4 echo xfce4-session >~/.xsession
最後に以下のファイルを編集します。
sudo gedit /etc/xrdp/startwm.sh
編集結果がこちら
#!/bin/sh if [ -r /etc/default/locale ]; then . /etc/default/locale export LANG LANGUAGE fi startxfce4
私の場合は最終行だけ変更することになりました。
その後サービスをリスタート
sudo service xrdp restart
Windows側からの接続
リモートデスクトップ接続の画面から接続します。
過去記事を参照。
結果以下のような画面が見れます。
なんだか元のデスクトップと違うのですがこういう仕様でしたっけ?
何かあったら追記します。
jupyter notebookをTex,PDFへと変換
jupyterでコードとプリアンブルを書いてTexに移せばいろいろと捗るのではという目論見の元はじめたこの企み,思ったより面倒なことがあります。
結論
下のような感じでjupyterの見た目を保存したようなTex,PDF資料を作れます。
必要箇所を抜き出せば普通に資料にできますね。
結局何をすればいい?
ここのGistからファイルをダウンロードして,
New template for jupyter · GitHub
以下のようなPathの下に置いて,
C:\Users\<User>\Anaconda3\envs\matlab\Lib\site-packages\nbconvert\templates\latex
(追記)C:\Users\
にある場合もありました。
作成手順は,例えば名前がipythonの名前がfooだった場合,
Texをダウンロード
jupyter-nbconvert --to latex foo.ipynb
extractbb foo_files/*.png platex foo.tex dvipdfmx foo.dvi
以上!
大体の人はドコかでエラーがでるので詳細な手順を順に追っていきましょう。
LatexやPDFへの変換
GUIでやる
[File]から[Download as]で好きなフォーマットを選択できます。
pandocのインストール
そのままだとpandocがありませんという旨のエラーが出ます。
anaconda search -t conda pandoc
の出力を見た感じ,conda-forgeが良さそうですので
anaconda show conda-forge/pandoc
とうってURLを確認します。
2017年10月現在では以下のURLからダウンロードできます。
conda install --channel https://conda.anaconda.org/conda-forge pandoc
これで,Latex形式で落とせます。
PDFへの変換
手順は,例えば名前がipythonの名前がfooだった場合,
Texをダウンロード
jupyter-nbconvert --to latex foo.ipynb
コンパイル関係
extractbb foo_files/*.png platex foo.tex dvipdfmx foo.dvi
XXX.styがない,XXX.defがない
日本語を用いる場合,様々なエラーが出ます。
例えば実行するとucs.styが無いことに気づきます。
ここからダウンロードしましょう。
CTAN: /tex-archive/macros/latex/contrib/ucs
いかのサイトからコピーしたほうが良いです。
https://mirror.hmc.edu/ctan/macros/latex/contrib/ucs/ucs.sty
私はucs.styの他,以下の3つのdefファイルが最終的に必要でした。
ucsencs.def,uni-global.def,utf8x.def
適宜Pathの通ったフォルダにおいておいてください。
Package amsmath Error: Erroneous nesting of equation structures;(amsmath) trying to recover with `aligned'. \end{align}
alignの前に\[がついているせいです。数式の二重宣言をやめさせるべきです。
noboundingbox
dvipdfmxを使うようにTexを書き換えるべきです。
つまり
\usepackage[dvipdfmx]{graphicx}
と変更します。
これは非常に変更点が多い上,面倒ですね…
テンプレートの変更
いままでの問題は使用しているテンプレートに主に問題があるようです。
デフォルトのテンプレート
僕の場合,場所は以下の所にありました。
C:\Users\User\Anaconda3\envs\matlab\Lib\site-packages\nbconvert\templates\latex
デフォルトで使われる設定ファイルはarticle.tplxというファイルで,中身はこんな感じです。
% Default to the notebook output style ((* if not cell_style is defined *)) ((* set cell_style = 'style_ipython.tplx' *)) ((* endif *)) % Inherit from the specified cell style. ((* extends cell_style *)) %=============================================================================== % Latex Article %=============================================================================== ((* block docclass *)) \documentclass[11pt]{article} ((* endblock docclass *))
この\documentclassの箇所を
\documentclass[10pt,dvipdfmx,fleqn]{jarticle}
と変更します。jarticleにすることでutf8等の面倒なdefを入れずとも日本語をコンパイル出来るはずです。
fleqnは数式左寄せ,dvipdfmxはBoundingBox問題を起こさないようにする配慮です。
参考:
Jupyter nbconvert(ファイル変換)メモ - はしくれエンジニアもどきのメモ
jupyter notebookをLaTeXに変換 - Qiita
プリアンブルや基本関数の変更
構造として,このarticle.tplxがstyle_ipython.tplxを呼び出し,base.tplxを呼び出すという構造になっていました。
プリアンブルや諸関数に関しては,
base.tplxというファイルに全て記述があるのでこれを変更することでより細かな調整ができます。
例えば不要そうなパッケージを排除できます。
- utf8まわりなど
変更した新しいファイル群をGistにあげておきました。
New template for jupyter · GitHub
テンプレートの見た目変更
こだわりたい人はどうぞ…
人の作ったものを流用するのが最初は良いでしょう。
nbconvert-examples/style_notebook.tplx at master · jupyter/nbconvert-examples · GitHub
jupyterとmatlabを有効に使うための備忘録
jupyterの使い勝手がだんだんわかってきたので本格的に使うにはどうすれば良いのか模索中です。
想定した運用
- コードの実行できる文書として使用したい。
従って,matlabコマンドと図,Texの数式の機能などが過不足なく使えるように。
特にLatexはマクロを使えるようにしたい。
- 簡単な文書として運用したい
notebookで書いたものをlatexやpdfに変換すればそのまま簡易資料にできるようにしたい。
ショートカットキー
マウスをなるべく使いたくないのでショートカットキーを覚えるべきですね。
Jupyterのショートカット - Qiita
実行の仕方から,
- 実行:Ctrl+Enter
- 実行&改セル:Shift+Enter
マークダウンとコードの切り替え
- マークダウンへと移行:Esc+m
- コードへと移行:Esc+y
そしてセルのコピペ
- コピー:Esc+c
- ペースト:Esc+p
- 削除:Esc+dd
LatexやPDFへの変換
GUIでやる
[File]から[Download as]で好きなフォーマットを選択できます。
コマンドプロンプトから
jupyter nbconvert --to latex <HOGE>.ipynb
と実行することで同様のことができます。
pandocのインストール
そのままだとpandocがありませんという旨のエラーが出ます。
anaconda search -t conda pandoc
の出力を見た感じ,conda-forgeが良さそうですので
anaconda show conda-forge/pandoc
とうってURLを確認します。
2017年10月現在では以下のURLからダウンロードできます。
conda install --channel https://conda.anaconda.org/conda-forge pandoc
これで,Latex形式で落とせます。
詳しい説明は別記事で。
ossyaritoori.hatenablog.com
Latexマクロをjupyterで組む。
こういう感じのマクロを組まないと生でTex数式を書くのはつらすぎます。
ossyaritoori.hatenablog.com
以下の質疑が参考になりそうですがまた今度,,,
IPython (Jupyter) MathJaX preamble - Stack Overflow
How to write LaTeX in IPython Notebook? - Stack Overflow