我想对文档tcolorbox
中的这个图表进行标注longfbox
可分解内容部分。
我已经使用tcolorbox
和创建了整个文档pstricks
,但不知道该如何让它们协同工作。我想我需要以pstricks
某种方式将节点嵌入框中,但它们是verbatim
-style 框,所以我不知所措。(清单使用esminted
中的包tcolorbox
。)
我确实找到了这个问题这可能会有所帮助,但它正在使用Tikz
,我宁愿坚持使用,pstricks
因为我更熟悉和习惯它。我也可以以pstricks
某种方式嵌入覆盖层吗?这会帮助我在主列表框中精确定位一行代码的某些部分吗?
相似地这个问题很有希望,但正在使用Tikz
,无法与breakable
我所有的盒子一起使用。这个可以根据行号精确定位整行,但我需要一行中的部分来显示语句内操作的关联性。
详细信息:我通常使用板上的下支撑来绘制这个,但正在制作一些供公众使用的笔记,并希望它在 PDF 中看起来类似。
这是一条线的 MWE,也是我想要但无法实现的想法:
\documentclass{article}
\usepackage{minted}
\usepackage[minted]{tcolorbox}
\tcbuselibrary{skins,breakable,listings,xparse,raster}
% tcb minted
\NewTCBListing{Cpp}{ O{} !O{} }{%
listing engine=minted,
listing only,
minted language=cpp,
minted options={style=default,
autogobble,
%showspaces,
tabsize=4,
#2},
skin=standard,
breakable,
#1}
\newmintinline[CppInline]{cpp}{autogobble,tabsize=4,style=default}
\newcommand{\code}[1]{\leavevmode\CppInline`#1`}
\begin{document}
Here's a line of code, for instance:
\begin{Cpp}[]
cin >> r1 >> r2 >> r3;
\end{Cpp}
I'd like underbraces below \code{cin >> r1} with a label saying
\code{cin}. And likewise another underbrace below that \code{cin} over to
the \code{r2}. Finally one connecting that 2$^{\textrm{}nd}$ brace's
\code{cin} to the \code{r3}.
\end{document}
它需要与命令pygmentize
一起安装python
和-shell-escape
命令行参数latex
。
结果如下:
欢迎任何想法!
答案1
使用一些棘手的代码,您可以创建两个不可见的节点。运行lualatex
:
\documentclass{article}
\usepackage{pstricks-add}
\usepackage{minted}
\usepackage[minted]{tcolorbox}
\tcbuselibrary{skins,breakable,listings,xparse,raster}
% tcb minted
\NewTCBListing{Cpp}{ O{} !O{} }{%
listing engine=minted,
listing only,
minted language=cpp,
minted options={style=default,
autogobble,
%showspaces,
tabsize=4,
#2},
skin=standard,
breakable,
#1}
\newmintinline[CppInline]{cpp}{autogobble,tabsize=4,style=default}
\newcommand{\code}[1]{\leavevmode\CppInline`#1`}
\begin{document}
Here's a line of code, for instance:
\begin{Cpp}[]
cin >> r1 >> r2 >> r3;
\end{Cpp}
\vspace{-5.5ex}
{\ttfamily\rnode{A}{\hphantom{cin}}\hphantom{ >> }\rnode{B}{\hphantom{r1}}}
\psbrace[linecolor=red,ref=lC,rot=90](A)(B){Text}
\vspace{10mm}
I'd like underbraces below \code{cin >> r1} with a label saying
\code{cin}. And likewise another underbrace below that \code{cin} over to
the \code{r2}. Finally one connecting that 2$^{\textrm{}nd}$ brace's
\code{cin} to the \code{r3}.
\end{document}