![tikz 菜单项(由 menukeys pkg 定义)可以跨越多行吗?](https://linux22.com/image/402104/tikz%20%E8%8F%9C%E5%8D%95%E9%A1%B9%EF%BC%88%E7%94%B1%20menukeys%20pkg%20%E5%AE%9A%E4%B9%89%EF%BC%89%E5%8F%AF%E4%BB%A5%E8%B7%A8%E8%B6%8A%E5%A4%9A%E8%A1%8C%E5%90%97%EF%BC%9F.png)
我对这个menukeys
包有一个大问题,它tikz
允许您以图形方式表示菜单/文件路径。主要问题是:没有换行符。如果菜单项恰好超出行长,它不会切换到新行,而是继续无休止地运行(变得不可读)。
所以,我的问题是:如何让单个tikz
绘图遵守换行符?
为了记录在案,我的意思是:
|---------||----------------------------||---------
Lorem ipsum dolor |sit amet || consectetur adipiscing elit|| sed do
|---------||----------------------------||---------
-------------------------|
eiusmod tempor incididunt| ut labore et dolore magna aliqua.
-------------------------|
我已经看过这篇精彩的文章(方框文本,多行),但由于我是 LaTeX 新手,我很难理解它的工作原理以及如何将它应用到我必须使用的菜单设计中(不是选择 XD)。
如果社区能帮助我解决这个问题,我将非常感激!
这是我当前正在使用的菜单样式代码(抱歉,但我不希望因为泄露自定义宏名称而惹上麻烦):
\usepackage{menukeys}
\copymenustyle{********}{roundedmenus}
\newmenustylesimple{xxxxxxxx}{%
tw@set@tikz@colors,
rounded corners=0.3ex,
inner sep=0pt,
inner xsep=2pt,
text height=1.825ex,
text depth=0.7ex,
minimum width=0.7ex,
font=\relsize{-1}\xxxfontnamexxx,
signal,
signal to=nowhere,
signal pointer angle=110,
}{gray}
\makeatletter
\tw@declare@style*{*******}{% create style manually due to signal to and signal from diffs
\tikz[baseline={($([email protected])+(0,-0.2ex)$)}]{%
\node(tw@node)[tw@roundedmenus@base,font=\relsize{-1}\normalfont,signal to=east,fill=gray!25]%
{\strut\CurrentMenuElement};}%
}[\hspace{-0.2em}\hspace{0em plus 0.1em minus 0.05em}]%
{%
\tikz[baseline={($([email protected])+(0,-0.2ex)$)}]{%
\node(tw@node)[tw@roundedmenus@base,font=\relsize{-1}\normalfont,signal from=west,signal to=east,fill=gray!25]%
{\strut\CurrentMenuElement};}%
}{% Last Item
\tikz[baseline={($([email protected])+(0,-0.2ex)$)}]{%
\node(tw@node)[tw@roundedmenus@base,font=\relsize{-1}\normalfont\bfseries,color=white,signal from=west,fill=gray]%
{\strut\CurrentMenuElement};}%
}{% Other Items
\tikz[baseline={($([email protected])+(0,-0.2ex)$)}]{%
\node(tw@node)[tw@roundedmenus@base,font=\relsize{-1}\normalfont,color=white,fill=gray]{\strut\CurrentMenuElement};}%
}{gray}
\makeatother
\renewmenumacro{\menu}{********} % default: menus
\renewmenumacro{\directory}{xxxxxxx} % default: paths
\renewmenumacro{\keys}{xxxxxxxxxx} % default: roundedkeys
\renewmenumacro{\directory}[/]{paths}
((顺便说一句,对于(有点)重复的帖子,我深表歉意。我无法扩展原始内容,因为我在注册该网站之前就发布了该内容。orz))
答案1
这还不是一个答案,但作为评论来说它太长了
好吧,我不确定这是否有用,但它可以作为讨论的起点。删除所有不必要或不完整的代码后,这是一个打破路径的有效示例。
您能否查看此问题并编辑您的问题以便我们继续进行。否则,由于信息不完整,此问题将被关闭。
\documentclass{article}
\usepackage{menukeys}
\makeatletter
\tw@declare@style*{mystyle}{% create style manually due to signal to and signal from diffs
\tikz[baseline={($([email protected])+(0,-0.2ex)$)}]{%
\node(tw@node)[tw@roundedmenus@base,font=\relsize{-1}\normalfont,signal to=east,fill=gray!25]%
{\strut\CurrentMenuElement};}%
}[\hspace{-0.2em}\hspace{0em plus 0.1em minus 0.05em}]%
{%
\tikz[baseline={($([email protected])+(0,-0.2ex)$)}]{%
\node(tw@node)[tw@roundedmenus@base,font=\relsize{-1}\normalfont,signal from=west,signal to=east,fill=gray!25]%
{\strut\CurrentMenuElement};}%
}{% Last Item
\tikz[baseline={($([email protected])+(0,-0.2ex)$)}]{%
\node(tw@node)[tw@roundedmenus@base,font=\relsize{-1}\normalfont\bfseries,color=white,signal from=west,fill=gray]%
{\strut\CurrentMenuElement};}%
}{% Other Items
\tikz[baseline={($([email protected])+(0,-0.2ex)$)}]{%
\node(tw@node)[tw@roundedmenus@base,font=\relsize{-1}\normalfont,color=white,fill=gray]{\strut\CurrentMenuElement};}%
}{gray}
\makeatother
\renewmenumacro{\directory}[/]{mystyle}
\begin{document}
\directory{Macintosh HD/Users/Your Name/Documents/Users/Your Name/Documents/Users/Your Name/Documents/Users/Your Name/Documents/Users/Your Name/Documents}
\end{document}