メモ帳

備忘録

ノートパソコン TX/66E の液晶パネル LP154WX4 をモニターとして再利用する

電子機器の知識が全くないので正しく接続できているのかが若干不安だけど、一応動いたのでメモとして書き残しておく。

  1. 自分の持っている液晶パネルに対応したコントローラー基板を買う。LP154WX4の場合はhttps://www.amazon.co.jp/gp/product/B01N33HC03/など。
  2. 下の画像みたいな感じで適当に接続する。 f:id:funct:20180805143526j:plain

LaTeX Workshop + Sumatra PDFの設定

目的

LaTeX Workshopでは内蔵PDF viewerでもPDFのプレビュー表示ができるものの、Sumatra PDFで表示した方が動作が軽快なので、内蔵PDF viewerの代わりにSumatra PDFを利用したい。 具体的には、Visual Studio Code上で以下のような操作を行えるようにしたい:

  • Sumatra PDFで文章をダブルクリックすると、VS Codeでその行が表示され、
  • VS CodeSyncTex from cursorをすると、SumatraPDFでその行が表示される。

SumatraPDF側の設定

Settings > Options > Set inverse search command-lineに"C:\Program Files\Microsoft VS Code\Code.exe" -g "%f":"%l"と入力する。

Visual Studio Code側の設定

settings.jsonに以下のような内容を追記する:

"latex-workshop.view.pdf.viewer": "external",
"latex-workshop.view.pdf.external.synctex": {
    "command": "SumatraPDF",
    "args": [
        "-forward-search",
        "%TEX%",
        "%LINE%",
        "%PDF%"
    ]
}

Ghostscriptを使ってPDFファイルのページ番号を振り方を変更し、目次を追加する

まず、ページ番号の振り方と目次の付け方を指定した以下のようなファイルpdfmarksを用意する。

[{Catalog}<<
/PageLabels<</Nums[0<</S/r>>30<</S/D>>]>>
>> /PUT pdfmark
[/Page 1 /Title (Title) /OUT pdfmark
[/Page 7 /Title (Contents) /OUT pdfmark
[/Page 17 /Title (Introduction) /OUT pdfmark
[/Page 21 /Title (Preface) /OUT pdfmark
[/Count 6 /Page 31 /Title (Chapter 1s) /OUT pdfmark
[/Page 31 /Title (1.1) /OUT pdfmark
[/Page 38 /Title (1.2) /OUT pdfmark
[/Page 45 /Title (1.3) /OUT pdfmark
[/Page 51 /Title (1.4) /OUT pdfmark
[/Page 59 /Title (1.5) /OUT pdfmark
[/Page 63 /Title (Exercises) /OUT pdfmark

最初の部分はページ番号の振り方を変更するための命令。 /Sの直後に/r/Dのような命令を書くことで、ページ番号の振り方を変更できる。 たとえば、/rとするとページに i, ii, iii, ... のようにローマ数字が振られる。 詳しくはPDF17: Specifying consistent page numbering for PDF documents | Techniques for WCAG 2.0を参照。

残りの部分は目次データとなっている。 /Count Nとすると、直後のN個の要素が子要素になる。

ファイルが用意できたら、Windowsであれば、以下のようなコマンドを実行する。

rungs -sDEVICE=pdfwrite -q -dBATCH -dNOPAUSE -sOutputFile=output.pdf -dPDFSETTINGS=/prepress pdfmarks -f input.pdf

PNGをPDFに変換する際の備忘録

コマンドラインで複数枚の画像からPDFを生成する際には、ImageMagickを使うのが一般的らしい。 しかし、ImageMagickconvert *.png out.pdfのようにして大量のPNG画像をPDFに変換しようとすると、(自分の環境だけかも知れないが)メモリを大量に消費するうえに、ものすごく時間がかかる。 そのため、ImageMagickを使う代わりに、以下のようにしてPNG画像をPDFへ変換した:

  1. img2pdfによって各PNG画像を単一ページからなるPDFファイルへ変換する。例:for %i in (*.png) do img2pdf %i -o %~ni.pdf
  2. それらのPDFファイルをpdftk serverによって連結する。例:pdftk *.pdf cat output out.pdf

WindowsでSourceTreeからGitHubに接続しようとしたらエラーが出た

症状

GitHubで作成したprivate repositoryをSourceTreeからcloneしようとすると、以下のようなエラーが出て、cloneに失敗する:

git: fatal: remote error: Repository not found

解決法

自分の環境では、以下の2つの操作をしたところ上記の問題が解決した:

経緯

GitHubで作成したprivate repositoryをSourceTreeからcloneしようとすると、以下のようなエラーが出て、cloneに失敗した:

git: fatal: remote error: Repository not found

仕方がないのでWindowsコマンドプロンプトからcloneしてみたところ、以下のようなエラーが出るものの、普通にclone出来た:

fatal: HttpRequestException encountered.

その代わり、この方法だと、毎回ユーザー名とパスワードの入力を求められる。

また、普段使っているテキストエディタSublime Text 3)からpush, pullの操作を試してみたが、当然こちらも正常に動かない(エラーメッセージがどんな内容だったかは覚えていない)。

検索してみたところ、次のページで同じ症状で困っている人を発見した : github - SourceTree - git: fatal: remote error: Repository not found - Stack Overflow。 しかし、このページの回答を参考にSourceTreeの設定からアカウント情報を設定し直しても、自分の環境では、事態は改善しなかった。

次に、せめて毎回パスワードの入力を求められるのだけでもなんとか出来ないかと思い、色々検索してみたところ、次のようなページを発見した: Caching your GitHub password in Git - User Documentation。 このページを参考にして次のコマンドを実行したら、ユーザー名とパスワードの入力を求められることがなくなった:

git config --global credential.helper wincred

しかし、これでも、fatal: HttpRequestException encountered.というエラーが出るのは直らなかった。 そこで、さらに検索してみたところ、自分と同じようにfatal: HttpRequestException encountered.のエラーで困っている人を次のページで発見した: HttpRequestException and then I'm prompted for username · Issue #488 · Microsoft/Git-Credential-Manager-for-Windows · GitHub。 このページに、Gitのトレースモードをオンにするための方法が書かれていた:

Run SET GIT_TRACE=1.

Run SET GCM_TRACE=1.

コマンドプロンプト上でこの2つの命令を実行したあとにgit pullを試してみたところ、fatal: HttpRequestException encountered.というエラーが出る直前に、git-credential-managerというものが呼び出されているらしいということが分かった。 そこで、Release Git Credential Manager for Windows v1.14.0 · Microsoft/Git-Credential-Manager-for-Windows · GitHubからGit Credential Managerの最新版をインストールしてみたところ、最初に述べた全ての問題が解決した。