VS Code での LaTeX 環境構築メモ(JSON を編集せずに latexmkrc によるコンパイル)

  1. VS Code拡張機能 LaTeX Workshop をインストール.
  2. latexmkrc を用意する.
  3. LaTeX Workshop の設定にて,Default(Latex-workshop > Latex > Recipe: Default)を「first」から「latexmk (latexmkrc)」に変更する.

多分これが一番早いと思います.

Ghostscript を使って PDF から特定のページを指定して書き出す

PDF ファイルから複数ページ選択し,保存するときの自分用メモ.

❖  はじめに

PDF ファイルから指定したページを保存する方法は色々あるが,PDF が保護されていており,ページの抽出ができないときがあった.
色々試した結果,Ghostscript で PDF ファイルからページの抽出ができた. 

❖  Ghostscript による PDF 書き出し(ページ指定)

Ghostscript (gs) コマンドのオプションでページを指定できる.
要は,"-dFirstPage" と "-dLastPage" で範囲を指定できる.

例えば,第1ページのみ書き出す場合,以下を実行すれば良い.

    $ gs -sDEVICE=pdfwrite -dNOPAUSE -dQUIET -dBATCH -dFirstPage=1    \
             -dLastPage=1 -sOutputFile=output.pdf input.pdf

また,第1ページから第4ページを書き出す場合,以下を実行すれば良い.

    $ gs -sDEVICE=pdfwrite -dNOPAUSE -dQUIET -dBATCH -dFirstPage=1    \
             -dLastPage=4 -sOutputFile=output.pdf input.pdf

おわりに

PDF ファイルから指定したページを保存する方法の一つとして Ghostscript を用いた場合を紹介した.
Ghostscript は何かと便利なので,また機会があれば様々な用途を紹介したい.

PDF Check をパスしても "Certified by IEEE PDF eXpress" のラベルがない場合がある

IEEE PDF eXpress に悩まされたのでそのときのメモを残しておきます.

はじめに

ここでは,PDF Check をパスしたけれども,学会の投稿ページで投稿できない場合について述べます.


IEEE PDF eXpress のエラーについては一切触れません.
LaTeX 関連の知識が十分にあれば,おそらくエラーに遭遇することはないでしょう.
(参考までに,以前,私が所属する研究室の学生が遭遇したエラーは pLaTeX や upLaTeX を用いていたから発生したもので,LaTeX や pdfLaTeX を用いた場合はエラーが出なかった.)

 

❖  PDF Check をパスしても "Certified by IEEE PDF eXpress" のラベルがない

基本的に “Congratulations! The following PDF has passed the PDF Check: ~” から始まるメールに添付してあるPDFを提出すれば問題ないが,今回はそれを提出しようとしても “This PDF file was not certified by IEEE PDFeXpress” のエラーに阻まれた.

どうやら,PDF eXpress はエラーなく通っても,“Certified by IEEE PDF eXpress” のラベルが貼られないケースがあるらしい.

 

参加予定の学会の運営に問い合わせて,代わりに投稿してもらう方針になったが,投稿中にタイムアウトになったそうで,ファイルサイズを縮小するように指示された.

ファイルサイズを縮小した後,改めて PDF eXpress に通したところ,問題なく投稿できた.

 

一つ目の写真が PDF eXpress をパスしても,“Certified by IEEE PDFeXpress” のラベルが貼られていないもの.

二つ目の写真が問題なく投稿できたもの.コンテンツの作成の欄に“Certified by IEEE PDFeXpress” と記されている.

f:id:mhiraga:20190404190333p:plain

f:id:mhiraga:20190404190404p:plain

 

おわりに

何が原因だったのかいまいちわからないけれども,PDF eXpress をパスしても,“Certified by IEEE PDF eXpress” のラベルが貼られないケースがあるらしい.

今回は問題なく投稿できたものの,学会の運営も少し困惑していた様子だった.

二つの画像を見比べて,改めて思ったことは,もしかしたら PDF のバージョン(ファイル縮小前は1.5,縮小後は1.4)とかも関連しているのかもしれないと感じた.

 

【追記】PDF のバージョンが問題であったようで,pdf14 パッケージを用いてバージョン 1.4 にしたところ,正しくラベリングされていた.

Ubuntu 16.04 GNOME ログインループ

後輩のパソコンが不可解なログインループに遭遇したので,そのときの解決方法を記します.

背景

今回の症状は以下の通りである.

  • CUIからログインできてもGUIからログインできない.
  • 某N社のグラフィックカードを搭載していない.
  • 一部のアカウントにはGUIからログインできる(正確には,NFSサーバ上のアカウントにログインできず,パソコン内のアカウントにはログインできる).

 NFSサーバ上のアカウントのみGUIログインできないことがなかなかに不可解で,過去に先輩から研究室のシステムを変えたほうがいいと言われつつも,面倒に感じて何もしなかったツケが回ってきたような気がしました.

この現象を解決するのに苦戦したため,メモを残しておきます. 

❖  とりあえずやってみたこと(失敗したもの)

・ディスプレイマネージャーの再起動

N社のドライバのインストールで苦戦した経験がある者として,最初に疑ったのはディスプレイマネージャーである.
Ubuntu GNOME のディスプレイマネージャーであるgdmを再起動した.
ちなみに,GNOMEではない普通のUbuntuはlightdmがデフォルトになっているはず.

    sudo service gdm restart

 何も解決されず.

・.Xauthority .ICEauthority の削除
参考リンク:
Ubuntuで認証画面を無限ループさせる方法と対処 - 拾い物のコンパス

これらのファイルが破損しているとログインできなくなるようです.
CUIからログインして削除する.

    rm .Xauthority .ICEauthority

これまた,解決されず.

・Unity の初期化
参考リンク:
本の虫: Ubuntu 14.04のUnityの設定をぶっ壊した場合の修復方法

以前,似たようなことがあった際に,上記のリンクのようにUnityを初期化したら直ったと聞いた.
ここでいうUnityはゲームエンジンではなく,Ubuntuのユーザインターフェースである.
以下のように,unity-tweak-tool をインストールして初期化する.

    sudo apt-get install unity-tweak-tool
    unity-tweak-tool --reset-unity

しかし,これでも解決されなかった. 

❖  解決策

参考リンク:
[SOLVED] Login Problem in Ubuntu 16.04

以下のように,ubuntu-desktopとubuntu-sessionを再インストールしたら解決した.

    sudo apt install --reinstall ubuntu-desktop
    sudo apt install --reinstall ubuntu-session

結局,何が原因だったのかわかりませんでしたが,何かファイルが破損していたのかもしれません.

Vim で開いたら改行が " ^M " になっていたときの対処法

Vim で開いたファイルに,本来改行が入るはずの場所が "^M" に置き換わっていた.
これに対して,Vim における文字列の一括置換を用いて解決した.

❖ 背景

サーバにアップロードしたファイルを Vim で編集しようと試みたところ,
改行がすべて " ^M " に置き換わっており,1行のとても長いテキストと化していた.

これでは見ずらく,編集する箇所も見つけにくい.そして何より編集しづらい.

 

❖  Vim による"^M"の一括置換

Vim で文字列 (foo) を別の文字列 (bar) に置換するには,以下を実行する. 

    :%s/foo/bar/g


今回,"^M" を"改行"に置換するため,以下を実行した.

    :%s/^M/\r/g

ここで,"^M"は文字列ではなく,改行コードなので,入力時には,
     「 Ctrl 」+「 v 」+「 m 」
と入力する必要がある.

また,OSによって改行コードが " \r " と " \n " の場合があるので,場合によって使い分ける必要がある.

 

おわりに

今回,Vim で開いたファイルの改行すべきところに " ^M "が表示されていたときの対処法を紹介した.

Vim での一括置換の方法を紹介したが,指定行のみの置換などのより細かいオプションを知りたい者や,そもそも Vim の使い方がわからない者については,検索せよ,さらば与えられん.