#author("2020-01-21T14:05:24+09:00","default:pbcglab_user","pbcglab_user") #author("2020-01-21T14:05:55+09:00","default:pbcglab_user","pbcglab_user") ----- #contents ----- *TeXメモ [#fa300aef] **変数定義 [#f3595226] 画像保存フォルダパス用の変数定義の例.プリアンブルで, \def\figdir{fig} などと定義.使うときは, \includegraphics[width=0.5\linewidth]{\figdir/aaa.eps} **数式フォント [#rc5e3aec] 標準 #ref(font_mathnormal.gif,nolink,80%) \mathrm #ref(font_mathrm.gif,nolink,80%) \mathit #ref(font_mathit.gif,nolink,80%) \mathbf #ref(font_mathbf.gif,nolink,80%) \mathsf #ref(font_mathsf.gif,nolink,80%) \mathtt #ref(font_mathtt.gif,nolink,80%) \mathcal #ref(font_mathcal.gif,nolink,80%) **Type 3フォントの埋め込み [#ve257dde] TeXからフォントをすべて埋め込んだPDFを作成したいときに, Type 3フォントがうまく埋め込めないことがある. Type 3(正確にはPostscript Type 3)はヒンティング情報や対応しないソフトウェアがあるということで, Adobe Readerなどで埋め込まれていないと扱われるもよう. ただ,実際にType 3を含むPDFをみると埋め込まれていないと文字が汚くなっていることがある. これを回避するためには,TeXファイルで \usepackage{lmodern} を記述して,lmodern (Latin Modern)を読み込むようにしたらType 3 は消えるようである (http://www.acm.org/sigs/publications/proceedings-templates のスタイルファイルで確認しただけなので他の場合では解決しないかもしれない). **余白設定 [#p61e1b46] ページの余白を変更するにはプリアンブル(\begin{document}の前)で以下のように\setlengthを用いてそれぞれパラメータを設定する. \setlength{\oddsidemargin}{0.0cm} \setlength{\evensidemargin}{0.0cm} \setlength{\textwidth}{16.1cm} パラメータについては以下の図を参照. #ref(tex_margin.jpg) \columnsep,\columnwidthは2段組の場合に適用され,\columnwidthは自動的に計算される. 図を見て分かるとおり,あまり直感的な指定ではない. geometry.styを使うともっと簡単に設定できる. [[CTANのページ:http://tug.ctan.org/tex-archive/macros/latex/contrib/geometry/]] から geometry.dtx geometry.ins geometry.pdf をダウンロードし,下のstyファイルの作成の項を参考にgeometry.styを生成してtexファイルのあるフォルダにコピーする. 基本的な使い方としては, \usepackage[margin=1.5cm]{geometry} のようにusepackageでテキストの幅や余白などを設定する. 上記の例では全ての辺の余白を1.5cmにしている. また,usepackageで指定しない場合は, \usepackage{geometry} としておいて,プリアンブルで \geometry{top=2.5cm,bottom=2.5cm,left=2cm,right=2cm} と指定する.この例ではそれぞれの余白を個別に設定している. geometry.pdfに使い方が書かれているので参考に. **dtx,insファイルからstyを作成 [#k11eff14] スタイルファイル(*.sty)をダウンロードしようとしたら,*.dtxや*.insというファイルしかない場合がある. これはソースコードであり,ここからTeXコンパイルすることで*.styが得られる. コンパイルするためにはコマンドプロンプトから, platex test.ins とする.ここでinsファイル名をtest.insとしている. ソースコードはdtxファイルであるが, insファイルにdtxファイルの処理内容が書かれている (makeファイルようなもの). 説明文書(dvi)を作成するにはdtxファイルを直接TeXに通す. platex test.dtx **番号付き箇条書きのカスタマイズ [#af055d95] 番号書き箇条書き(enumerate)環境での番号をカスタマイズする場合は, プリアンブルに以下のように記述する. \renewcommand{\theenumi}{\arabic{enumi}} \renewcommand{\labelenumi}{(\theenumi)} \theenumiは番号の数値のフォーマットを示し, \labelenumiは番号全体のフォーマットである. enumerate環境では箇条書きを入れ子にできる. \theenumi,\labelenumiはそれぞれ第1段目の番号で, 第2段目以降は以下のようになる. \labelenumii, \labelenumiii, \labelenumiv \theenumii, \theenumiii, \theenumiv renewcommandでこれらの再定義を行う. 上記の例だと (1) ... (2) ... とアラビア数字+括弧となる. 数値のフォーマットには以下のものがある. アラビア数字 \arabic 英子文字 \alph 英大文字 \Alph ローマ数字(小) \roman ローマ数字(大) \Roman ?,?としたい場合は,\textcircledを用いる. \renewcommand{\theenumi}{\arabic{enumi}} \renewcommand{\labelenumi}{\textcircled{\footnotesize \theenumi}} **TeXの数式をWebページなどで用いる [#f89abc4d] TeXのDVIを透過PNGに変換し,Webページなどに貼り付けられるようにする. +数式を作る~ 適当なtexファイル(例:&ref(eq.tex);)にTeXで数式を書いて,TeXを通す. +PNGファイル作成~ dvipngを用いてPNGファイルを作成する. dvipng eq.dvi -T tight -D 300 -bd 1000 --freetype0 -Q 5 --gamma 1.1 上記コマンドでは,余白無し,解像度300,背景透過,アンチエイリアスレベル5,ガンマ補正1.1のオプションを付けている. **IllustratorでTeXの数式を読み込む [#l52c0ed0] TeXのDVIをEPSに変換することで,Illustratorなどのベクター系ソフトに数式を読み込ませることができる. +数式を作る~ 適当なtexファイル(例:&ref(eq.tex);)にTeXで数式を書いて,TeXを通す. +EPSファイル作成~ コマンドプロンプトで以下を実行(カレントフォルダにeq.dviがあり,gsへのパスが通っている必要あり) dvips -Ppdf -E eq -o eq.eps gswin32c -q -sDEVICE=epswrite -sOutputFile=eq_outline.eps -dNOPAUSE -dBATCH -dSAFER eq.eps もしくは,上記を記述したバッチファイル(&ref(eq.bat);)をダブルクリック実行するとeq.epsが生成される. 上記では入力ファイル名をeq.dviとしたが,任意のファイルをバッチファイルにドラッグ&ドロップで変換したい場合は, @echo off setlocal for %%F in (%*) do ( echo %%F to %%~dF%%~pF%%~nF.eps dvips -Ppdf -E %%~dF%%~pF%%~nF -o %%~dF%%~pF%%~nF.eps gswin32c -q -sDEVICE=epswrite -sOutputFile=%%~dF%%~pF%%~nF_outline.eps -dNOPAUSE -dBATCH -dSAFER %%~dF%%~pF%%~nF.eps ) endlocal pause と記述したバッチファイル(&ref(eq_dnd.bat);)を用いればよい. バッチファイルのコマンドについては,[[Windows#n3169db1]]を参照. +IllustratorからEPS読み込み~ Illustratorのメニューからファイル->配置を選択,2で生成した*.epsを読み込む. このとき,リンクのチェックをはずすこと.これで,数式が読み込まれる. TeXのフォントがIllustratorに入っていなければ,*_outline.epsを読み込めば,アウトライン化された数式が配置される. 読み込まれた数式は全てグループ化されている. 複数の数式を一度に生成したときは,一度グループを解除してから,各数式ごとに再グループ化すればよい. **省略記号 [#d6ba6a56] 「・・・」など \ldots \vdots \ddots 上から横,縦,斜め向き(&ref(dot3.png,,70%);) **白抜き文字 [#wd575908] &ref(mathbb_m.jpg);のような文字. -mathbbを用いる \usepackage{amsmath} \usepackage{amsfonts} でパッケージを読み込み, \[ \mathbb{M} \] -bbmパッケージを用いる \usepackage{amsmath} \usepackage{bbm} でパッケージを読み込み, \[ \mathbbm{\nabla M} \] **文字の大きさ [#ke31b9a5] ||10pt指定時の大きさ|12pt指定時の大きさ|h |\tiny|5pt|6pt| |\scriptsize|7pt|8pt| |\footnotesize|8pt|10pt| |\small|9pt|11pt| |\normalsize|10pt|12pt| |\large|12pt|14.4pt| |\Large|14.4pt|17.28pt| |\LARGE|17.28pt|20.74pt| |\huge|20.74pt|24.88pt| |\Huge|24.88pt|24.88pt| **フォントを埋め込んだ(embedded)PDFの作成(日本語を含まない) [#la86bf86] +dvipsでPostScriptファイルに変換(文書内に全角文字がないように."−",",",".",全角スペースなどに注意) dvips -Ppdf -t letter -G0 -o paper.ps paper.dvi +ps2pdfでPDFに変換(GhostScript8.x系,gswin32c -versionで確認) ps2pdf -dPDFSETTINGS#/prepress -dCompatibilityLevel#1.3 -dEmbedAllFonts#true -dAutoFilterColorImages#false -dAutoFilterGrayImages#false -dColorImageFilter#/FlateEncode -dGrayImageFilter#/FlateEncode -dMonoImageFilter#/FlateEncode -dDownsampleColorImages#false -dDownsampleGrayImages#false paper.ps paper.pdf 全て1行にして実行. **プログラムコード [#s7d2d45b] [[listing環境:http://www.biwako.shiga-u.ac.jp/sensei/kumazawa/tex/listings.html]]を使う.以下にC言語にC for CUDAのいくつかの修飾子,型を追加したものを示す. #code(TeX){{ \usepackage{color} \usepackage{listings,jlisting} % listing環境の設定 \lstset{% language={C}, % 標準言語 backgroundcolor={ \color[gray]{.96} },% basicstyle={ \small \fontfamily{pcr} },% identifierstyle={\small},% commentstyle={ \small\color{commentcolor} },% keywordstyle={ \small\color{blue} },% ndkeywordstyle={\small},% stringstyle={\small\ttfamily}, frame={single}, breaklines=true, columns=[l]{fullflexible},% numbers=left,% xrightmargin=2zw,% xleftmargin=2zw,% numberstyle={\scriptsize},% stepnumber=1, numbersep=1zw,% lineskip=-0.0ex,% morekeywords={__global__, __device__, __constant__, __shared__, % threadIdx, blockIdx, blockDim, % dim3, float2, float3, float4, int3, }% } }} をプリアンブルなどに定義して, #code(TeX){{ \begin{lstlisting} int main(void) { cout << "Hello World!" << endl; return 0; } \end{lstlisting} }} などのようにする. 表示結果は以下. #ref(code.dvi.jpg,nolink) **DVIからPDFを作成するときにしおりを作る [#dc05f119] DVIからdvipdfm.exeなどでPDFを作成するときに,PDFのしおりを自動で作成したいときは, texファイルのプリアンブルに #code(TeX){{ \usepackage[dvipdfm,bookmarks=true,% bookmarksnumbered=true,bookmarkstype=toc]{hyperref} \ifnum 42146=\euc"A4A2 \AtBeginDvi{ \special{pdf:tounicode EUC-UCS2} }\else \AtBeginDvi{ \special{pdf:tounicode 90ms-RKSJ-UCS2} }\fi }} を追加する. **EPS画像の作り方(bmp,jpg,pngなどからの変換) [#n4f9a397] Windowsで他の画像形式から変換してEPS画像を作成するフリーソフトとしては, -[[EPS-conv:http://hp.vector.co.jp/authors/VA023018/epsconv.htm]] などがある.まとめて変換できるので便利. ただし,非圧縮のEPSとなるので,ファイルサイズが大きくなりがちである. 圧縮EPSにする場合は,[[ImageMagick:http://www.imagemagick.org/script/index.php]]に付属の convert.exeを使うとよい. ImageMagickを[[この辺:http://www.imagemagick.org/script/binary-releases.php?ImageMagick=0cp238skkvgu1ba4lpv2em8d41#windows]]からダウンロードして (ImageMagick-6.5.9-Q16-windows.zipなど),解凍し,その中のconvert.exeをパスの通ったところ,もしくは, 変換したい画像があるフォルダに置く.そして,コマンドプロンプトで, convert -compress RLE example.jpg EPS2:example.eps などとする. 圧縮形式には他にLZWやjpegなどがある. また,逆にEPSからpngなどに戻したいときは, convert example.eps PNG:example.png とする. GUI操作で複数ファイルまとめて変換したい場合用に,自作のソフト &ref(RxEPSCreater.zip); を置いておく. 解凍して,解凍したフォルダにconvert.exeを入れる.rx_eps_creater.exeを実行し,ウィンドウに変換したい画像を どんどんD&Dする.追加し終わったらEPSメニュー内から適当なものを選択する. (jpeg2epsは[[jpeg2ps.exe:http://www.cityfujisawa.ne.jp/~huzinami/tex/g-conv.html]]などをダウンロードして同じフォルダに置けば使える?) **表の複数項をつなぐ [#c1bf26b4] 横にぶち抜く場合はmulticolumnを用いる. \multicolumn{項目数}{出力形式}{出力したい文字列} たとえば, \multicolumn{2}{|c|}{項目}\\ \hline など. 縦にぶち抜く場合はmultirowを用いる. multicolumnと異なり,multirowはusepackageでスタイルファイルを読み込む必要がある. \usepackage{multirow} multirowは \multirow{項目数}{出力幅}{出力したい文字列} 幅には5mmのように直接数値を指定するか,もしくは,アスタリスク("*")を指定すると自動的に調整される. 標準だと左寄せになる.中心に寄せたい場合は,プリアンブルに以下を書き込む. \renewcommand{\multirowsetup}{\centering} ただし,これだとすべてのmultirowがセンタリングになる.個々に設定する場合はmulticolumnを用いればよい. \multicolumn{1}{|c|}{\multirow{2}{*}{aaa}} 例 #code(TeX){{ \begin{table}[htbp] \begin{center} \caption{表テスト} \label{tab:test} \begin{tabular}{|p{1cm}|c|c|} \hline 1 & 2 & 3 \\ \hline \multicolumn{2}{|c|}{a} & \multirow{2}{5mm}{b} \\ \cline{1-2} \multicolumn{1}{|c|}{\multirow{2}{*}{c} } & d & \\ \cline{2-3} & e & f \\ \hline \end{tabular} \end{center} \end{table} }} この場合の出力は以下. #ref(table_test.jpg,,50%) **色を付ける [#tcbeca4b] パッケージcolor.sty \usepackage{color} {}で囲んだところだけ色が付く \textcolor[rgb]{0.32,0.11,0.8}{文字} % RGB \textcolor[cmyk]{0.32,1.0,0.8,0.0}{文字}% CMYK \textcolor[hsb]{0.32,0.11,0.8}{文字} % HSB \textcolor[gray]{0.4}{文字} % グレースケール or \textcolor{red} red, blue, cyan, green, yellow, magenta, black, whiteがあらかじめ定義されている. 以降すべて色が付く \color{blue} \color[rgb]{1.0, 0.0, 0.0} **°や℃の表現 [#b7d4935e] #code(TeX){{ \newcommand{\Deg}{\char'27\kern-.3em} \newcommand{\DegC}{\char'27\kern-.3em\hbox{C} } }} **図環境のテンプレート [#rd9c152b] 図が1つの場合 #code(TeX){{ \begin{figure}[htbp] \begin{center} \includegraphics[width=0.5\linewidth]{fig/fig.eps} \caption{-} \label{fig:} \end{center} \end{figure} }} 図を2つ以上並べる場合. #code(TeX){{ \begin{figure}[htbp] \begin{center} \begin{tabular}{cc} \includegraphics[width=0.5\linewidth]{fig/fig1.eps} & \includegraphics[width=0.5\linewidth]{fig/fig2.eps} \\ (a) & (b) \\ \i1ncludegraphics[width=0.5\linewidth]{fig/fig3.eps} & \includegraphics[width=0.5\linewidth]{fig/fig3.eps} & \includegraphics[width=0.5\linewidth]{fig/fig4.eps} \\ (c) & (d) \\ \end{tabular} \caption{-} \label{fig:} \end{center} \end{figure} }} **表環境のテンプレート [#w19f2338] #code(TeX){{ \begin{table}[htbp] \begin{center} \caption{} \label{table:1} \begin{tabular}{|l|c|r|} \hline 1 & 2 & 3 \\ \hline \end{tabular} \end{center} \end{table} }} **数式環境のテンプレート [#n167bcf7] #code(TeX){{ \begin{equation} \label{eq:} \end{equation} }} Array環境を使って式を縦に並べる. #code(TeX){{ \begin{equation} \begin{array}{rcl} & & \\ \end{array} \label{eq:} \end{equation} }} Array環境で式を縦に並べたときのスペース調整版 #code(TeX){{ \begin{equation} \begin{array}{rcl} y &\hspace*{-2mm}=& \hspace*{-2mm} f(x) \vspace*{2mm} \\ &\hspace*{-2mm}=& \hspace*{-2mm} g(x) \end{array} \label{eq:} \end{equation} }} {つきで数式を並べる #code(TeX){{ \begin{equation} f(x) = \left\{ \begin{array}{lcl} 1, & & x \geq 0 \\ 0, & & otherwise \end{array} \right. \label{eq:} \end{equation} }}