Skip to content

Instantly share code, notes, and snippets.

@CookieBox26
Last active October 26, 2021 05:08
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save CookieBox26/a54d462b04ae939f8719c1ce7456a9a3 to your computer and use it in GitHub Desktop.
Save CookieBox26/a54d462b04ae939f8719c1ce7456a9a3 to your computer and use it in GitHub Desktop.
TeXでも会話したい話
Display the source blob
Display the rendered blob
Raw
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
% \documentclass[dvipdfmx,b5j,10pt]{jsarticle}
\documentclass[b5paper,xelatex,ja=standard,10pt]{bxjsarticle}
% 数式フォント用
\usepackage[mathrm=sym]{unicode-math}
\usepackage{amsmath}
% 色名の読み込みと独自色定義
\usepackage[svgnames]{xcolor}
\definecolor{paleiris}{RGB}{229,227,246}
\definecolor{palegold}{RGB}{255,247,204}
% フォント定義 (日本語が大きくみえるため日本語は小さめにスケール)
% \usepackage{fontspec} % already loaded by unicode-math
\setmainfont[ % 英数字本文
BoldFont={[MPLUSRounded1c-Medium.ttf]},
]{[MPLUSRounded1c-Regular.ttf]}
\setsansfont[Color=DarkSlateGray]{[MPLUSRounded1c-Medium.ttf]} % 英数字見出し
\setmonofont[Scale=1.05, Color=Teal]{[RictyDiminished-Regular.ttf]} % 等幅
\setmathfont[Scale=1.05, Color=VioletRed]{Latin Modern Math} % 数式
\setCJKmainfont[ % 日本語本文
Scale=0.95,
BoldFont={[MPLUSRounded1c-Medium.ttf]},
]{[MPLUSRounded1c-Regular.ttf]}
\setCJKsansfont[Scale=0.95, Color=DarkSlateGray]{[MPLUSRounded1c-Medium.ttf]} % 日本語見出し
\setCJKmonofont[Scale=0.95, Color=Teal]{[MPLUSRounded1c-Regular.ttf]} % 日本語等幅
% 行間をやや詰める
\usepackage{leading}
\leading{15pt}
% カラーボックス
\usepackage[most,listings]{tcolorbox}
\tcbuselibrary{breakable}
% 独自のセリフ枠の定義
\newtcolorbox{SERIFU}[2][]{
enhanced, % タイトルボックスの表示に必要
breakable, % ページをまたぐのに必要
% セリフの文字色をグレーに変更する
fontupper=\addfontfeatures{Color=DarkSlateGray}\
\addCJKfontfeatures{Color=DarkSlateGray},
arc=7pt, % 角の丸みの半径
top=9pt, right=9pt, left=9pt, bottom=9pt, % パディング
boxrule=0pt, frame hidden, % フレーム隠蔽
grow to left by=-24pt, % キャラクター画像を表示するため左にマージン
% タイトルボックスとしてキャラクター画像を表示
title={\hspace{6pt}},
attach boxed title to top left={xshift=-28pt, yshift=-38pt},
boxed title style={
enhanced,
arc=18pt,
top=17pt, right=13pt, left=14pt, bottom=16pt,
boxrule=0pt, frame hidden,
underlay={
\begin{tcbclipinterior}
\includegraphics[width=41pt]{#2}
\end{tcbclipinterior}
},
},
#1
}
% ハイパーリンク
\usepackage[
colorlinks=true,
linkcolor=SteelBlue, % addfontfeatures に負けて実際は効いていない
citecolor=SteelBlue, % addfontfeatures に負けて実際は効いていない
urlcolor=SteelBlue, % addfontfeatures に負けて実際は効いていない
]{hyperref}
\begin{document}
% 地の文の文字色をグレーに変更する
\addfontfeatures{Color=DarkSlateGray}
\addCJKfontfeatures{Color=DarkSlateGray}
\section*{TeXでも会話したい話}
\noindent
お気付きの点がありましたら{\addCJKfontfeatures{Color=SteelBlue}
\href{https://cookie-box.hatenablog.com/entry/2021/10/13/123946}
{こちらの記事}}にご指摘いただけますと幸いです。
\begin{SERIFU}[colback=paleiris]{kazusa.png}
この文書は TeX Live 2021 に同梱の XeLaTeX を利用して
\texttt{xelatex main.tex} というコマンドでコンパイルしました。
同ディレクトリに適当な画像ファイル(kazusa.png, takumi.png)が必要です。
また、お手元の端末にフォントMPlus, Ricty Diminishedも必要です。
私の端末(Windows 10)の場合、Mplus をユーザ権限で、Ricty Diminished を
管理者権限でインストールしていたようで、以下にフォントファイルが
インストールされていました
(私はGit Bushを利用しているのでパスをlinux風に表記しています)。
これらを参照しています。
\begin{itemize}
\item /c/users/\$\{USERNAME\}/Appdata/Local/Microsoft/Windows/Fonts/
MPLUSRounded1c-Regular.ttf (\textbf{太字・見出し}用にMediumも利用)
\item /c/Windows/Fonts/RictyDiminished-Regular.ttf
\end{itemize}
お手元にこれらのフォントがなければ main.tex のプリアンブルの
13-26 行目の \ .ttf をお手元にある適当なフォントに変更してください。
\end{SERIFU}
\begin{SERIFU}[colback=palegold]{takumi.png}
フォントを設定せずにデフォルトのフォントを使用するのじゃ駄目なの?
\end{SERIFU}
\begin{SERIFU}[colback=paleiris]{kazusa.png}
この私たちのセリフには tcolorbox パッケージを利用しているのですが、
tcolorbox にページをまたがせたい \&
ページをまたいでもフォント色変更を維持したいときには
fontspec パッケージを利用したフォント設定が必要になります。
この文書では以下のコマンドで文字色を付加しています。
\texttt{
\\
\textbackslash addfontfeatures\{Color=DarkSlateGray\} \% 英数字 \\
\textbackslash addCJKfontfeatures\{Color=DarkSlateGray\} \% 日本語 \\
}
セリフ枠の定義で上記のコマンドを挿入することで
セリフ全体の文字色をグレーにしています(グレーなのでわかりにくいですが)。
なお、ページをまたがない場合は
\texttt{\textbackslash color\{\}}コマンドによるフォント色変更で事足ります。
しかしこのコマンドはページをまたぐとまたいだ先のフォント色がデフォルトの
黒色に戻ってしまいます。
試しにこのセリフでページをまたいでみましょう。
どうです? 文字色が黒に戻らないでしょう?
\texttt{\textbackslash color\{\}}コマンドで文字色をグレーにした場合は
ここで黒に戻ってしまうので是非やってみてください。
\end{SERIFU}
\begin{SERIFU}[colback=palegold]{takumi.png}
遠慮しておくよ…ところで、
5行目に \texttt{\textbackslash usepackage[mathrm=sym]\{unicode-math\}}
を記述しているのは何のため?
\end{SERIFU}
\begin{SERIFU}[colback=paleiris]{kazusa.png}
数式フォントはデフォルトの Latin Modern Math のままなのですが、
その5行目を記述しないと以下の数式の arg max が
\texttt{\textbackslash setmainfont} で設定した Mplus になってしまうのですよね。
それを回避しています。数式の中のローマン体は数式フォントであってほしいので。
\begin{equation*}
\hat{\theta} = \underset{\theta}{\mathrm{arg \, max}}
\prod_{k=1}^n p(X_k | \theta)
\end{equation*}
\end{SERIFU}
\begin{SERIFU}[colback=palegold]{takumi.png}
なるほど。ところで、等幅フォントと数式フォントについてはフォント定義で
青緑色とピンク色にしているよね。
地の文やセリフの文も全体的にグレーにするなら
そこでグレーにすればよかったんじゃない?
\end{SERIFU}
\begin{SERIFU}[colback=paleiris]{kazusa.png}
最初はそうしたのですが、そうすると一つ問題が。
{\addCJKfontfeatures{Color=ForestGreen}
後から部分的に文字色を変えること}ができなくなってしまうんです。
例えば以下のリンクはちゃんとブルーになっていますよね?
\begin{itemize}
\item {\addfontfeatures{Color=SteelBlue}
\addCJKfontfeatures{Color=SteelBlue}
\href{https://cookie-box.hatenablog.com/entry/2021/10/13/123946}
{雑記: TeX でも会話したい話 - クッキーの日記}}
\end{itemize}
上の箇所でいちいち \texttt{\textbackslash addfontfeatures} しているのは、
既に文字色変更していると
hyperref パッケージのオプションが効かないからなんですが…
しかし、フォント定義で文字色をグレーにしてしまうと、
もはや \texttt{\textbackslash addfontfeatures} によっても
文字色を変更できなくなってしまうんです\cite{fontspec}。
なので本文のフォントについてはフォント定義で色を指定していません。
\end{SERIFU}
\begin{SERIFU}[colback=palegold]{takumi.png}
そうなんだ…。
\end{SERIFU}
\begin{SERIFU}[colback=paleiris]{kazusa.png}
他にも補足しますね。
本文のフォント定義では\textbf{太字}のフォントを明示的に指定しています\cite{xetex}。
しかし、斜体や太字斜体は指定していません。
Mplus には斜体のフォントフェイスがないからです。
もし斜体を使用したい場合は斜体のあるフォントを使用してください。
Windows では例えば Verdana が使用できるようでした(英数字のみになりますが)。
プリアンブルで定義するか、本文中でも以下のように記述するとその場で
フォントの変更ができます。お手元でご確認ください。
\texttt{
\\
\textbackslash fontspec[ \\
\ \ \ \ BoldFont=\{[verdanab.ttf]\}, \% 太字 \\
\ \ \ \ ItalicFont=\{[verdanai.ttf]\}, \% 斜体 \\
\ \ \ \ BoldItalicFont=\{[verdanaz.ttf]\}, \% 太字斜体 \\
]\{[verdana.ttf]\} \\
\\
123abc \\
\textbackslash textbf\{123abc\} \% 太字 \\
\textbackslash textit\{123abc\} \% 斜体 \\
\textbackslash textbf\{\textbackslash textit\{123abc\}\} \% 太字斜体 \\
}
なお、色々なフォントをご利用される際には、そのフォントのライセンスが
ご自身の使用目的上問題ないかを各自ご確認ください。
\end{SERIFU}
\vspace{5pt}
\noindent つづかない
\addcontentsline{toc}{section}{参考文献}
\begin{thebibliography}{99}
\bibitem{xetex} XeTeX - TeX Wiki, \url{https://texwiki.texjp.org/?XeTeX},
参照日:2021年10月23日. 「XeLaTeXで日本語」「fontspecパッケージ」
を参考にした.
\bibitem{xcolor} CTAN: Package xcolor,
\url{https://www.ctan.org/pkg/xcolor},
参照日:2021年10月23日. 本文書でPackage documentationの38ページの
色名を使用している.
\bibitem{fontspec} CTAN: Package fontspec,
\url{https://ctan.org/pkg/fontspec},
参照日:2021年10月23日. Package documentationの25ページに,
\texttt{\textbackslash setmainfont} で Color を設定してしまった場合
もはやフォントの色変更ができなくなると記述されている.このドキュメントには
\texttt{\textbackslash addCJKfontfeatures} というコマンドがなく調査が難航した.
\end{thebibliography}
\end{document}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment