beamerでtikzcdが使えないです。

beamerでtikzcdが使えないです。

- mathema の投稿
返信数: 3
\documentclass[]{beamer}
%\usepackage[utf8]{inputenc}
 
\newcommand{\maru}[1]{\ooalign{
\hfil\resizebox{.8\width}{\height}{#1}\hfil
\raise.1ex\hbox{\large$\bigcirc$}}}%encircle
\usepackage{fancybox}%about frame
\usepackage{luatexja}%japanese
%\usepackage{natbib}
\usepackage{tikz}
\usetikzlibrary{positioning}
\usetikzlibrary{cd}%tikzcd
\usetikzlibrary{decorations.pathmorphing}
\usetikzlibrary{decorations.markings}
\usetikzlibrary{babel}
\usetikzlibrary{arrows}
\usepackage{xcolor}
\usepackage{graphics}%reverse
\usepackage{graphicx}%about scalebox
\usepackage{amsmath,amsfonts,amsthm,amssymb,amscd,ascmac}%in order to  higher formula and mathfrak and so on.
\usepackage{latexsym, mathtools}%arrow
\usepackage{textcomp}%※
\usepackage{bussproofs}%prooftree
\usepackage{pifont}
\usepackage{subfigure}
\usepackage{lscape}%%revolve
\usepackage{stmaryrd}%bracket
\usepackage{cancel}%diagonal line on a letter
\usepackage{hyperref}%reference
\usepackage{setspace}%
\usepackage{soul}%下線
\usepackage{comment}
\usepackage{wrapfig}%回り込み
\usepackage{qrcode}
\usepackage{luatexja-otf}%ajRightBArrow等
\usepackage{multicol}%itemize並列版
\usepackage{enumerate}
\usepackage{tikz-cd}
\usepackage{mathrsfs}%花文字(スクリプトフォント)
\usepackage{tasks}%itemize並列版
\usepackage{wrapstuff}%回り込み改良版
\usepackage{pb-diagram}%可換図式
\usepackage{bxdpx-beamer}% dvipdfmxなので必要
\usepackage{babel}
\usepackage{lmodern}
\tikzset{aneg/.style={
preaction={decorate},
decoration={markings, mark=at position 0.5 with {\draw[red, -] (-1mm,-1.5mm) -- (1mm,1.5mm);}}
}}%tikzの線の斜線
 
 
\newtheorem{proposition}[theorem]{Proposition}
 
 
\definecolor{deepskyblue}{rgb}{0.0, 0.75, 1.0}
\definecolor{dodgerblue}{rgb}{0.12, 0.56, 1.0}
\definecolor{aliceblue}{rgb}{0.94, 0.97, 1.0}
\definecolor{lavenderblue}{rgb}{0.8, 0.8, 1.0}
\definecolor{lavender(web)}{rgb}{0.9, 0.9, 0.98}
 
\setbeamercovered{transparent}
\setbeamertemplate{theorems}[numbered]
\setbeamertemplate{footline}[frame number]
\setbeamertemplate{navigation symbols}{}
 
\newcommand{\red}[1]{\textcolor{red}{#1}}
 
\renewcommand{\baselinestretch}{1.3}%Leave a space between lines
\renewcommand{\arraystretch}{1}%arrayの行間を変える
 
\deftranslation[to=japanese]{Theorem}{定理}
\deftranslation[to=japanese]{Corollary}{系}% ある
\deftranslation[to=japanese]{Lemma}{補題}
%\deftranslation[to=japanese]{Proposition}{命題}% ない!
\deftranslation[to=japanese]{Example}{例}
\deftranslation[to=japanese]{Examples}{例}
\deftranslation[to=japanese]{Definition}{定義}
\deftranslation[to=japanese]{Definitions}{定義}
\deftranslation[to=japanese]{Problem}{問題}
\deftranslation[to=japanese]{Solution}{解}
\deftranslation[to=japanese]{Fact}{事実}
\deftranslation[to=japanese]{Proof}{証明}
\def\proofname{証明}
 
\parindent = 0pt%no indent
 
 
\usetheme{Madrid}%テーマは指定しなくともよい.
 
\usepackage[%
backend  = biber,
bibstyle = authoryear-comp,
citestyle= authoryear-comp
]{biblatex}
%
%\nocite{*}
\addbibresource{bib_name.bib}
 
\begin{document} 
\begin{frame}

\begin{tikzcd}
                    A \arrow[r, "\phi"] \arrow[d, red]
                    & B \arrow[d, "\psi" red] \\
                    C \arrow[r, red, "\eta" blue]
                    &D 
                \end{tikzcd}

\end{frame}

\end{document}

lualtexでcompileすると

error: 567: Package pgf Error: Single ampersand used with wrong catcode. \end{frame}

error: 567: Undefined control sequence. \end{frame}

error: 567: Package pgf Error: Single ampersand used with wrong catcode. \end{frame}

というエラーが出てきて添付画像の様な出力がなされます。

宜しければご教授お願いします。

添付 スクリーンショット 2025-02-07 181350.png
mathema への返信

Re: beamerでtikzcdが使えないです。

- 和田 勇 の投稿

一例ですが \begin{frame}[fragile] オプションを付与してみてください

Package pgf Error: Single ampersand used with wrong catcode. で検索すると いくつか参考になる情報がありました。

一例ですが、 "Single ampersand used with wrong catcode" error using tikz matrix in beamer46 の回答を参考に \begin{frame}\begin{frame}[fragile] とオプションを追加すると 通るようですので、参考にしてみてください。

和田 勇 への返信

Re: beamerでtikzcdが使えないです。

- mathema の投稿

ありがとうございます、望み通りの出力がされました。

mathema への返信

Re: beamerでtikzcdが使えないです。

- でび まる の投稿
でびまる といいます。
もう正統な解は分ってるので寄り道です。生成AIも新鮮味はなくなてってるかも分りませんが、
この問題を ChatGPT に質問してみました。
(ただし同じ質問でも回答は同じではありません。)

--------------------------------
「LaTeX の beamer で tikzcd を使うとエラーになります。解決法はありますか」
(回答の一部)
beamer クラスで tikz-cd を使用するとエラーになる場合、以下の解決策を試してください。
1. beamer の fragile オプションを試す
tikzcd は fragile な内容を含むため、 frame 環境でfragile オプションを指定する
必要があります。

\documentclass{beamer}
\usepackage{tikz-cd}
\begin{document}
\begin{frame}[fragile]
\frametitle{Commutative Diagram}
\[
\begin{tikzcd}
A \arrow[r] \arrow[d] & B \arrow[d] \\
C \arrow[r] & D
\end{tikzcd}
\]

\end{frame}
\end{document}
fragile を指定しないと、 beamer では特殊文字の処理がうまく
いかず、エラーが発生することがあります。
--------------------------------

以下まだ続きますが、正当な解を答えてくれる様です。
このフォーラムでも既に ChatGPT の話題もあったとは思いますが、数学方面では滅茶苦茶な回答
を経験してたのに比べ、意外に TeX については模範回答してる様に見えます(見えるだけ?)。

生成AIがこのレベルで回答できると、難しい状況になる可能性もありそうなので参考までに。