我想创建一个 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
)。