具有大量节点的 tikz 图片

具有大量节点的 tikz 图片

我想创建一个 tikz 图片来描述用户在 lyx 编辑器中看到的不同标记:

在此处输入图片描述

第一个问题:我的做法是将几个小node点放在画布上,然后将它们组合起来形成图像。但我担心我的方法可能有效,但不够巧妙。

我正在创建一个节点t1,它是最顶层的元素。然后我创建一个新的节点,t2它被放置在前一个节点的下方或左侧等。t1然后t3创建并放置在相对于的某个位置t2,依此类推。

但如果后来发现t2确实应该删除它怎么办?那么我应该重命名它之后出现的所有其他节点。

因此,我想听听网站成员关于创建这种 tikz 图片的更正确方法的意见。

第二个问题:我想让 tikzpicture 遍布整个textwidth页面。如何让米色区域具有宽度textwidth

第三个问题:截图中前两行的两个单词“this”是垂直对齐的(蓝色虚线表示)。我该如何在我的 tikz 绘图中也这样做?

梅威瑟:

% !TEX TS-program = xelatex

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{positioning,backgrounds}

\usepackage{fontspec}
\newfontfamily\Times{Times New Roman}[Script=Latin,Language=English]
\newfontfamily\courier{Courier New}[Script=Latin,Language=English]

\definecolor{beige}{RGB}{250,240,229}
\definecolor{RedBerry}{RGB}{141,0,0}
\definecolor{Chestnut}{RGB}{207,91,90}
\begin{document}
This is the interface of the LyX editor:

\begin{tikzpicture}[background rectangle/.style={fill=beige}, show background rectangle,every node/.append style={font=\Times}]
\node (t1)  {~~~This is the LyX editor.};
\node (t2) [below left=16pt and 0pt of t1.south west, anchor=west] {\bfseries\huge{1~~~~This is a section}};
\node (t3) [below=4pt of t2] {This line is not indented. ~};
\node (t4) [right=0pt of t3.base east, anchor=base west,draw=Chestnut] {\textcolor{RedBerry}{\courier{and this is ERT code}}};
\end{tikzpicture}
\end{document}

在此处输入图片描述

答案1

tcolorbox我认为使用而不是 来实现在 pdf 中显示 LyX 编辑器的想法会容易得多tikz。这样,您可以为 LyX GUI 创建一个环境,并为 ERT 代码创建一个框,该框可以在整个文档中多次使用,并且代码要短得多。

例如:

% !TEX TS-program = xelatex

\documentclass{article}
\usepackage[most]{tcolorbox}
\usepackage{fontspec}
\newfontfamily\Times{Times New Roman}[Script=Latin,Language=English]
\newfontfamily\courier{Courier New}[Script=Latin,Language=English]

\definecolor{beige}{RGB}{250,240,229}
\definecolor{RedBerry}{RGB}{141,0,0}
\definecolor{Chestnut}{RGB}{207,91,90}

\makeatletter
\providecommand{\LyX}{L\kern-.1667em\lower.25em\hbox{Y}\kern-.125emX\@}% the LyX symbol.
\makeatother

\newlength\myspace
\settowidth{\myspace}{\Large\bfseries 1\quad}% this is the length of the section number and the space after it

\newtcolorbox{LyXbox}{%
enhanced,breakable,frame hidden,
sharp corners,colback=beige,boxsep=3pt,
before skip=1pt
}
\newtcbox{\ERT}{%
    enhanced,tcbox raise base,
    top=0mm,bottom=0mm,
    right=0mm,left=0mm,
    boxrule=0.4pt,
    nobeforeafter,
    colframe=Chestnut,
    fontupper=\courier\color{RedBerry},
    colback=beige,boxsep=1pt,
    sharp corners
}

\begin{document}
    \noindent This is the interface of the \LyX\ editor:
    \begin{LyXbox}
        \hspace{\myspace}This is the \LyX\ editor.
        \section{This is a section}
        This line is not indented. \ERT{and this is ERT code}
    \end{LyXbox}
\end{document}

产生以下结果(默认情况下,tcolorbox 是 的宽度\textwidth)。

在此处输入图片描述

相关内容