tcbox 및 mintedinline을 사용하는 인라인 코드 강조 표시 관련 문제 - #을 ##으로 렌더링

tcbox 및 mintedinline을 사용하는 인라인 코드 강조 표시 관련 문제 - #을 ##으로 렌더링

tcbox 및 mintedinline을 사용하여 인라인 코드 강조 표시 명령을 생성했지만 문제가 발생했습니다. #만 쓰려고 하면 ##으로 렌더링됩니다. tcbox에 대한 다양한 옵션을 실험했지만 아무것도 문제를 해결하지 못하는 것 같습니다. 흥미롭게도 mintedinline만 사용하면 예상대로 작동합니다. 따라서 문제가 내 \setminted 구성에 있다고 생각하지 않습니다.

이 문제를 해결하는 방법에 대한 통찰력이나 제안을 주시면 감사하겠습니다.

최소 라텍스 코드:

\documentclass{article}
\usepackage{xcolor}
\usepackage{minted}
\usepackage{tcolorbox}

\definecolor{codeinlineBlue}{HTML}{CFE2FC}
\newcommand\mystrut{\rule[-2.5pt]{0pt}{12pt}}
\newcommand{\codeinline}[2][text]{%
    \tcbox[
      on line,
      boxsep=0pt,
      left=2pt,
      right=2pt,
      top=0pt,
      bottom=0pt,
      enlarge top initially by=-4pt,
      enlarge bottom by=-4pt,
      enlarge right by=-4pt,
      enlarge left by=-2pt,
      opacityframe=0,
      colback=codeinlineBlue,
      fontupper={\ttfamily\mystrut},
      fontlower={\ttfamily\mystrut}]
      {\mintinline{#1}{#2}}
}

\begin{document}

Text before code \codeinline{int main() \{ return 0; \}}, text after. Problem: \codeinline{#}.
This works as expected: \mintinline{text}{#}

\end{document}

여기에 이미지 설명을 입력하세요

답변1

\codeinline인수를 그대로 수집해야 합니다(그러나 다른 명령에 대한 인수로 사용할 수는 없습니다 ). 이를 수행하려면 \NewTotalTCBox.

\documentclass{article}
\usepackage{xcolor}
\usepackage{minted}
\usepackage{tcolorbox}
\tcbuselibrary{xparse}

\definecolor{codeinlineBlue}{HTML}{CFE2FC}
\newcommand\mystrut{\rule[-2.5pt]{0pt}{12pt}}

\NewTotalTCBox{\codeinline}{O{text}v}{
  on line,
  boxsep=0pt,
  left=2pt,
  right=2pt,
  top=0pt,
  bottom=0pt,
  enlarge top initially by=-4pt,
  enlarge bottom by=-4pt,
  enlarge right by=-4pt,
  enlarge left by=-2pt,
  opacityframe=0,
  colback=codeinlineBlue,
  fontupper={\ttfamily\mystrut},
  %fontlower={\ttfamily\mystrut},
}{\mintinline{#1}{#2}}


\begin{document}

Text before code \codeinline{int main() \{ return 0; \}}, 
text after. Problem: \codeinline{#}.
This works as expected: \mintinline{text}{#}

\end{document}

여기에 이미지 설명을 입력하세요

관련 정보