latex

Latex

製版システム
よく参考にするサイト

プロキシ環境下マジでめんどくさい(ex.大学の研究室)回線そこそこ太いし,ISOを落としてきてインストールするのがプロキシの設定とか考えなくていいと思う. なにもいじらなければフルパッケージでインストールされるはず.64bitのバイナリがあるけど,入れたらエラーでまくった記憶があるぞ…
texliveのインストールはavdance.batを使ったほうが吉

2020-07-31 Update
Texlive2020をインストール
追加コレクション→カスタマイズ 言語 : 日本語,英語・米語のみ

そろそろ更新しておくか
重点解説! TeX Live 2023はココが違う!

TexLive2021をインストールしみたが,BibTexでエラーが出るようになった.
ソースファイル(.texや.bib)と出力ファイルを分けて管理しているけど,この状態だとBibTexが勝手にbibファイルを探す場所を出力ディレクトリに切り替えてしまい,bibファイルが認識されないためエラーとなる.
これはWindowsのTexLive2021でのみ発生している模様で,TexLive2020では正常にビルドできた.Mac版TexLive2021でも正常にビルドできた.

原稿はこんなディレクトリ構成でつくっている.

ethercat_canopen # <- 原稿のホームディレクトリ
├─main.tex # <- 原稿のソースファイル,この場所に複数の.texファイルを置いておく
├─ref.bib # <- 参考文献ファイル,この場所に複数の.bibファイルを置いておく
├─build # <- 出力先,pdfや中間ファイル(.aux, .dvi,...)はここに出力したい
│  ├─main.dvi
│  ├─main.out
│  ├─main.pdf
│  ︙
└─
------------
Run number 1 of rule 'bibtex build/ecat_canopen_main'
------------
Running 'upbibtex -kanji=utf8  "ecat_canopen_main"'
------------
Latexmk: applying rule 'bibtex build/ecat_canopen_main'...
Latexmk: Change directory to 'build/'.
To assist finding of files in document
directory, I set
  BIBINPUTS='/f/Article/ethercat_canopen;build;'
  BSTINPUTS='/f/Article/ethercat_canopen;'.
This is upBibTeX, Version 0.99d-j0.33-u1.27 (utf8.uptex) (TeX Live 2021/W32TeX)
The top-level auxiliary file: ecat_canopen_main.aux
The style file: junsrt.bst
I couldn't open database file ref.bib
---line 42 of file ecat_canopen_main.aux
 : \bibdata{ref
 :             }
I'm skipping whatever remains of this command
I found no database files---while reading file ecat_canopen_main.aux
Warning--I didn't find a database entry for "EtherCATselectionguidle"
(There were 2 error messages)
(guessed encoding: UTF-8 = utf8)(guessed encoding: ISO-2022-JP = jis)Latexmk: Summary of warnings from last run of *latex:
  Latex failed to resolve 1 reference(s)
  Latex failed to resolve 1 citation(s)
Collected error summary (may duplicate other messages):
  bibtex build/ecat_canopen_main: Bibtex errors: See file 'build/ecat_canopen_main.blg'
Latexmk: Use the -f option to force complete processing,
 unless error was exceeding maximum runs, or warnings treated as errors.
Latexmk: Change directory back to '/f/Article/ethercat_canopen'
Latexmk: Errors, so I did not complete making targets
C:\texlive\2021\bin\win32\runscript.tlu:915: command failed with exit code 12:
perl.exe c:\texlive\2021\texmf-dist\scripts\latexmk\latexmk.pl -synctex=1 -interaction=nonstopmode -file-line-error -outdir=f:/Article/ethercat_canopen/build f:/Article/ethercat_canopen/ecat_canopen_main

ログを見る感じ,BIBINPUTSが書き換わっている?感じがする.
このため.bibファイルを見に行く場所が変わってしまい,エラーになっている模様.

homebrewを使ってインストール

brew cask install mactex  
#要ターミナル再起動
sudo tlmgr update --self --all
sudo tlmgr paper a4

Texliveがフルパッケージでインストールされる,かなり時間がかかるので辛抱強く待つ.めんどくさいなら先にインストーラ(3Gくらいある)を落としてきてやったほうがいいかもしれない.

Highsierraでまたフォント周りが変わるというクソ仕様変更が入ったみたいのでヒラギノを埋め込むために以下をやってみる.
HighSierra 用 TeXLive 2017 追加ファイル
無事にDFが生成されて,ヒラギノフォントが埋め込まれていることを確認した.
以下の方法もあるらしいが,未検証
macOS HighSierra+Texlive2017+ヒラギノフォント

更に変更が入り,今後はOSごとに設定ができるようにしていく方針らしい.
MacTeX 2018 のインストール&日本語環境構築法
TLContribをリポジトリ登録し,macOS/ヒラギノ関連のパッケージをダウンロード

sudo tlmgr repository add http://contrib.texlive.info/current tlcontrib
sudo tlmgr pinning add tlcontrib '*'
sudo tlmgr install japanese-otf-nonfree japanese-otf-uptex-nonfree ptex-fontmaps-macos cjk-gs-integrate-macos

/usr/local/texlive/texmf-local/fonts/内にOS付属フォントへのシンボリックリンク作成

sudo cjk-gs-integrate --link-texmf --cleanup --force
sudo cjk-gs-integrate-macos --link-texmf --force
sudo mktexlsr

ヒラギノフォントの埋め込み設定(High Sierra)

sudo kanji-config-updmap-sys --jis2004 hiragino-highsierra-pron

MacTeX 2019 のインストール&日本語環境構築法
MacTeX2019付属のGhostscript9.27は致命的なバグがあるとのことなのでインストールしない,しばらくは9.26でしのごう
多分Homebrwewをつかって昔に入れたみたいですでに9.26がはいっていたので今回は特にいじらいない. いつものようにこのページの上にあるパッケージの更新コマンドと初期原稿サイズの指定コマンドを叩く.
ヒラギノフォント埋め込みについてはmunepiさんによるパッチを適用するだけでよい.

文献管理に使える.でも使いこなすには一癖ありそう.
.bibファイルに所定のフォーマットで著者とか発行年とか書いておく,google scholarとかから情報をひっぱってこれるのでその点は楽.
このときliterature系のファイル名は使わないほうが吉

\bibliographystyle{junsrt}

を入れてやる.junsrtオプションは引用順に表示してくれる機能,

\usepackage{cite}

前提として,latex周りのコマンドがシステムから使えるよう状態にあること
僕はuplatexで製版しているので,

uplatex hoge.tex
dvipdfmx hoge.dvi

でdvi,pdfの出力ができればOK

Visual Studio Codeも参照
拡張機能LaTeX Workshopをインストールし,settings.jsonに以下を追加
WindowsでもMacOSでもuplatexならこのオプションでできた.
2018/04/02更新
Latex-WorkShopの設定がわかっため,コマンドや引数の渡し方が変わった.
しかしlatexmkの設定を全部書き込んでやれば特に問題なくPDFが出力できた.
2019/03/14更新

 "latex-workshop.latex.recipes": [
        {
            "name": "latexmk (tex to PDF)",
            "tools": [
                "latexmk"
            ]
        }
    ],
    "latex-workshop.latex.tools": [
        {
            "args": [
                "-synctex=1",
                "-interaction=nonstopmode",
                "-file-line-error",
                "-pdfdvi",
                "-outdir=%OUTDIR%",
                "%DOC%"
            ],
            "command": "latexmk",
            "name": "latexmk"
        }
    ],
// .latexmkrc に書かれたディレクトリに設定すること
"latex-workshop.latex.outDir": "%DIR%/build",

.texファイルのあるディレクトに.latexmkrcファイルを追加すると,Latex-workshopでなくこちらの設定を実行してくれる.
出力先ディレクトリの指定もできるのでout of source buildが実現できる.

Pandoc a universal document converterからインストール
Windowsの場合はインストーラ起動してやればよい.

pandoc hoge.md -o poyo.tex

でhoge.mdのMarkdownテキストから,poyo.texというファイルが作られる.
booktabsパッケージの使い方によるとpandocは表を作る時にいろいろ太さとか変えるので,このパッケージを入れておいたほうが吉

Latexの機能を拡張したり,新機能を追加するために用いるものをパッケージと呼ぶ.
重要
TexLiveの更新など含め,パッケージを更新したら必ずmkteslsrを実行しよう.
Latexは各種パッケージ及びそのファイルが置いてある場所の一覧表を持っており,その一覧表を参照してファイルを探し出す.このため,この一覧表に乗っていなければインストールされているパッケージもLatexからは見つけられない.この一覧表を更新するのがmkteslsrである.
TexLive2020からTexLive2021に更新して,パッケージも全部更新した後にBibtexがうまく動かなかった.Windows上でTexLiveマネージャーを使ってパッケージを更新したけど,mkteslsrはやってくれていないのか?
コマンドプロンプトやPowerShellで直接実行して上げる必要がありそう

mktexlsr

余白の調整がだるい
itemize 環境における余白の調節

図を縦に積みたい
縦に積み重ねる
s

documentclassのoptionに「draft」を挿入.画像や図が多いので単純に時間がかかる.
図はすべて白四角で抜かれる.

別の設定で上書きされるようなので注意
draftをオプションに入れるとPDFのブックマークが追加されないので注意

\begin{figure}\begin{table}にアスタリスクを追加する.
\begin{figure*}\begin{table*}という感じに
2段組でtex文章を書いている時に表や図を1段組で表示させる

\documentclass[twocolumn]とすると,通常は二段組
文中で\twocolumn[ hoge ]とするとhogeの部分は一行になる.
TeX文書で, 本文は2段, 概要は1段で表示させたい
4.7 段組を制御する

そのセルの中で新たに表を作る tabularコマンドで1×1の表を作る.その中であれば好きだけ\\コマンドで改行できる.
TeXで表の中で改行する方法

TeXで図のキャプションを途中で改行する
この方法で改行できるけどど真ん中なので改行後のほうがワードが長いとちょっと不格好になるから注意

listingsパッケージを使う.
Latexのインストール時にいじらなければ標準でインストールされている.
だけどこのままだとコメントアウトに日本語が使えない.(正しい位置に表示されない)
jlistingパッケージを追加でインストールする.
https://osdn.net/projects/mytexpert/downloads/26068/jlisting.sty.bz2/より入手可能
ファイルを解凍し,jlisting.styを以下のディレクトリに入れる.適宜読み替え
Windows(10)
C:\texlive\texmf-local\tex\latex\listings
MacOS
/usr/local/texlive/2018/texmf-dist/tex/latex/listings
/usr/local/texlive/texmf-local/tex/latex/listings その後mktexlsrコマンドでls-Rファイルを更新する.
管理者権限ない状態だとうまくいかないので注意,MacOSとかで行う場合はsudoを前につけることを忘れずに.
WindowsならコマンドプロンプトかPowershellを管理者権限で起動する.

mktexlsr

Macの方の設定のディレクトリは,Texliveの更新により消えてしまうので,WindowsのようにTEXMFLOCALのディレクトリにスタイルファイルなどは入れたほうが良い.
書いた
TEXMFLOCAL
http://texdoc.net/texmf-dist/doc/latex/listings/listings.pdf
LaTeXにソースコードを"美しく"貼る方法
LaTeXでソースコードを書く
ソースコードを簡単挿入 – LaTeXでつくる爆速プログラミングレポート
Insert Bash code with coloration into my latex report
How can I highlight YAML code in a pretty way with listings?
TeXでソースコードを埋め込む
TeXでソースコードを綺麗に表示する
LaTeXで色付きソースコードを貼り付け

\lstset構文を使えば大抵はどうにかなる.
でも自由がきかないときもあるので,そういったときlstdefinestyleを使ってソースコードのスタイルを自分で定義してやるのがよい.自分の原稿はHALの関数定義をハイライト表示したかったから使った.
【改訂版】 LaTeX に複数のソースコードを載せる
Other keywords and symbols highlighting with lstlisting
LaTeX でソースコードを載せるためのプリアンブルの設定
\lstdefinelanguage構文でもどうようのことができるけど正しい使い分けが分からない.
listingsの言語を追加する

ulemパッケージを用いる \usepackage{ulem}
ただし2段組みだと突き抜けるからうーん…
\sout{hoge}でhogeに打ち消し線がかかる

一部の情報は古い可能性があるので注意
http://www.math.tohoku.ac.jp/~kuroki/LaTeX/howtolatex.html#title

文書の作成に必要なコマンド処理を一度に行ってくれるツール
Latex-Workshopに渡している引数も実質latexmkのコマンドである.
https://texwiki.texjp.org/?Latexmk
macでのlatexmkを使ったTeX環境構築
latexmk で楽々 TeX タイプセットの薦め(& biblatex+biberで先進的な参考文献処理)
vscodeによるlatex環境の基本設定

コピーライト© : \textcopyright
How to get \copyright when mixing T1 fonts and fontspec?
トレードマーク™ : \textsuperscript{TM} もしくは \texttrademark
textcompパッケージを追加しておくこと
How to insert a trademark symbol? (tm)

\par:改行
\include{ファイル名}:「ファイル名.tex」の文書を連結する.改ページあり
\input{ファイル名}:「ファイル名.tex」の文書を連結する.改ページなし(そのままつなげる)
\setlength\textfloatsep{2truemm}:本文と図の間の間隔を詰める
\subcaptionbox:figureやtable環境下で図や表を複数並べるときに使う.subcaptionパッケージを\usepackageしておく必要あり
http://www.bakoma-tex.com/doc/latex/caption/subcaption.pdf
\setcounter{tocdepth}{hoge}:目次に出力する見出しの深さを変更,hogeには数字が入る.
\ twocolumn[文章]:documentsclassのオプションにtwocolumnを入れた状態でこれを書くと, 文章が2段組になる.
画像が大きすぎるとエラー吐かれる?

参考文献

  • latex.txt
  • 最終更新: 2023/04/08
  • by yuqlid