数式中の一部分を枠で囲いたい

数式中の一部分を枠で囲いたい

- n k の投稿
返信数: 8
こんにちは。
タイトルの通り、例えば画像みたいな感じで、数式中の一部分を枠で囲ったりしたいのですが、こうしたことはさすがに難しいでしょうか…?
点線にしたりとかもできたらなお良いのですが……
https://imgur.com/02vkIIo.jpg

ネットで調べても有益な情報が得られなかったのでこちらでお伺いすることにしました。
もしなにか有用な手段があれば、お教え頂ければ幸いです。
よろしくお願い致します。
n k への返信

Re: 数式中の一部分を枠で囲いたい

- 伊藤 直人 の投稿

このサイトとtexdoc tcolorboxで読めるマニュアルが参考になるかもしれません。

https://qiita.com/t_kemmochi/items/483b8fcdb5db8d1f5d5e

お役に立てれば、幸いです。

n k への返信

Re: 数式中の一部分を枠で囲いたい

- Ryuta Kudo の投稿

その画像にあるようなシンプルな囲いであれば、\boxed{...}を使うのが簡単かと思います。

\boxed\usepackage{amsmath}すれば使えます。

もう少し装飾に拘りたい場合は、伊藤さんの返信にあるようにtcolorboxを使うとよいです。

数式の囲い用には\tcboxmathが有用です。\tcboxmath

\usepackage{tcolorbox}
\tcbuselibrary{theorems}

とすれば使えます。

\tcboxmath[colback=black!5,sharp corners]{...}のように、オプションで細かく装飾を指定することもできます。

n k への返信

Re: 数式中の一部分を枠で囲いたい

- takamasa 23 の投稿
私なりに質問者様の希望と思われるものを作ってみました。

\documentclass[dvipdfmx,uplatex]{jlreq}
\usepackage{tcolorbox}
\tcbuselibrary{theorems,skins}
\usepackage{ceo}
\begin{document}
$\frac{xy(1-\sqrt{xy})}{\tcboxmath[enhanced,colback=white,frame hidden,borderline={0.5pt}{0pt}{red,dashed},top=-1pt,bottom=-1pt,right=-1pt,left=-1pt]{(x+y)}(1+\sqrt{xy})}$
\end{document}
takamasa 23 への返信

Re: 数式中の一部分を枠で囲いたい

- takamasa 23 の投稿
※「ceo.sty」は私がただ好みで入れただけです。手動インストールが必要なパッケージなので消していただいて結構です。

※添付した例では「赤色の点線」となってますが、{red,dashed}の「red」を省いていただければ黒色となります。
takamasa 23 への返信

Re: 数式中の一部分を枠で囲いたい

- takamasa 23 の投稿
やはり、写真通りにする方法を示した方がよい、と思いましたので再度添付します(すみません)。

\documentclass[dvipdfmx,uplatex]{jlreq}
\usepackage{tcolorbox}
\tcbuselibrary{theorems,skins}
\begin{document}
\everymath{\displaystyle}
$\frac{xy(1-\sqrt{xy})}{\tcboxmath[enhanced,colback=white,frame hidden,borderline={0.5pt}{0pt}{dashed},top=-1pt,bottom=-1pt,right=-1pt,left=-1pt]{(x+y)}(1+\sqrt{xy})}$
\end{document}
n k への返信

Re: 数式中の一部分を枠で囲いたい

- Dora TeX の投稿

私ならこういう風にやると思います。

\documentclass[dvipdfmx]{article}
\usepackage{tikz}
\usetikzlibrary{decorations.pathmorphing}
\begin{document}
\[\frac{xy(1-\sqrt{xy})}{\tikz[outer sep=0pt,baseline=(A.base)] 
\node[draw=red,fill=red!20!white,inner sep=1pt,decorate,decoration={zigzag,segment length=0.5mm,amplitude=.2mm}] (A) {$(x+y)$};
(1+\sqrt{xy})}\]
\end{document}

こちらの投稿も参考になるでしょう。

添付 スクリーンショット 2023-07-11 0.54.54.png
n k への返信

Re: 数式中の一部分を枠で囲いたい

- 大熊 一弘 の投稿
出遅れましたが,枯れ木も山の賑わいとか。
emath を使用した例です。
amsmath の \boxed コマンドを拡張した \EMboxed を用います。
tpic specials は使用していません。
罫線・背景色いずれも \rule で賄った処理です。

%%% QA3610c.tex %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\documentclass[dvipdfmx]{jarticle}
\usepackage{color}
\usepackage[notMy]{emath}% emathMy を読み込まない
\usepackage[only]{EMfbox}% emathPh, epic, eepic を読み込まない
\begin{document}
\[ \bunsuu{xy(1-\sqrt{xy})}{%<br /> \EMboxed framethickness=1pt,% 枠線の太さ<br /> framecolor=red,% 枠線の色<br /> bgcolor=pink% 背景色<br /> >{(x+y)}%
(1+\sqrt{x})} \]

\end{document}
大熊 一弘 への返信

Re: 数式中の一部分を枠で囲いたい

- n k の投稿
皆様ご回答ありがとうございます。
tcolorbox、tikz、emathによる方法を教えて頂き、とりあえずtcolorboxで色々いじって、望みの出力を得ることが出来ました。
tcolorbox・・・これは確かにかゆいところに手が届くパッケージのようですね、こだわりだしたらキリがなさそうです。
しかし日本語で使い方を詳細に解説しているところはあまりないようで、こだわろうとすると沼にはまりそうです…