我怎样才能在 LaTeX 中使用 tikz-pgf 绘制更好的图表?
更新 - 2017 年 4 月 6 日 - 02:17:为什么是 -2?我不明白!我不能使用 tikz-pgf,我不是专家,我请求帮助!你想要什么样的 MWE?我试过了,结果如下:
\documentclass{article}
\usepackage[fontsize=9]{scrextend}
\usepackage[german]{babel}
\usepackage{blindtext}
\usepackage{lmodern}
\usepackage{color}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{amssymb}
\usepackage{latexsym}
\usepackage{amsmath}
\usepackage{amsthm}
\usepackage{dsfont}
\usepackage{mathrsfs}
\usepackage{wasysym}
\usepackage{marvosym}
\usepackage{graphicx}
\usepackage{blindtext}
\usepackage{tabularx}
\usepackage{tabulary}
\usepackage{booktabs}
\usepackage{wasysym}
\usepackage[usestackEOL]{stackengine}
\usepackage[cal=rsfso]{mathalfa}
\usepackage[a4paper,top=1cm,bottom=2cm,left=1.5cm,right=2cm]{geometry}
\usepackage{tipa}
\usepackage{amscd}
\usepackage{amstext}
\usepackage{marvosym}
\usepackage{hyperref}
\usepackage{tikz-cd}
\begin{document}
\begin{tikzcd}
V_1^{(1)} \otimes \cdots \otimes V_{k_1}^{(1)} \otimes \cdots \otimes
V_1^{(l)}\otimes \cdots \otimes V_{k_l}^{(l)} \arrow[rd] & \\
& (V_1^{(1)} \otimes \cdots \otimes V_{k_1}^{(1)}) \otimes \cdots \otimes
(V_1^{(l)}\otimes \cdots \otimes V_{k_l}^{(l)}) \\
& (V_1^{(1)} \otimes \cdots \otimes V_{k_1}^{(1)}) \times \cdots \times
(V_1^{(l)}\otimes \cdots \otimes V_{k_l}^{(l)}) \arrow[u] \\
V_1^{(1)} \times \cdots \times V_{k_1}^{(1)} \times \cdots \times
V_1^{(l)}\times \cdots \times V_{k_l}^{(l)} \arrow[ru]
\end{tikzcd}
\end{document}
更新 - 2017 年 6 月 4 日 - 06:25:此外,我还使用了 LatexDraw 和 XeLaTex:
\documentclass{article}
\usepackage[fontsize=9]{scrextend}
\usepackage[german]{babel}
\usepackage{blindtext}
\usepackage{lmodern}
\usepackage{color}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{amssymb}
\usepackage{latexsym}
\usepackage{amsmath}
\usepackage{amsthm}
\usepackage{dsfont}
\usepackage{mathrsfs}
\usepackage{wasysym}
\usepackage{marvosym}
\usepackage{graphicx}
\usepackage{blindtext}
\usepackage{tabularx}
\usepackage{tabulary}
\usepackage{booktabs}
\usepackage{wasysym}
\usepackage[usestackEOL]{stackengine}
\usepackage[cal=rsfso]{mathalfa}
\usepackage[a4paper,top=1cm,bottom=2cm,left=1.5cm,right=2cm]{geometry}
\usepackage{tipa}
\usepackage{amscd}
\usepackage{amstext}
\usepackage{marvosym}
\usepackage{hyperref}
\usepackage{tikz-cd}
\usepackage[pdf]{pstricks}
%\usepackage[usenames,dvipsnames]{pstricks}
\usepackage{epsfig}
\usepackage{pst-grad} % For gradients
\usepackage{pst-plot} % For axes
\usepackage[space]{grffile} % For spaces in paths
\usepackage{etoolbox} % For spaces in paths
\makeatletter % For spaces in paths
\patchcmd\Gread@eps{\@inputcheck#1 }{\@inputcheck"#1"\relax}{}{}
\makeatother
\begin{document}
%
\psscalebox{1.0 1.0} % Change this value to rescale the drawing.
{
\begin{pspicture}(0,-5.055)(11.07,5.055)
\rput(3.14,4.8){$V_1^{(1)} \otimes \cdots \otimes V_{k_1}^{(1)} \otimes
\cdots \otimes
V_1^{(l)}\otimes \cdots \otimes V_{k_l}^{(l)}$}
\rput(7.54,1.6){$\left ( V_1^{(1)} \otimes \cdots \otimes V_{k_1}^{(1)}
\right ) \otimes \cdots \otimes
\left (V_1^{(l)}\otimes \cdots \otimes V_{k_l}^{(l)} \right )$}
\rput(7.54,-1.6){$\left ( V_1^{(1)} \otimes \cdots \otimes V_{k_1}^{(1)}
\right ) \times \cdots \times
\left (V_1^{(l)}\otimes \cdots \otimes V_{k_l}^{(l)} \right )$}
\rput(3.14,-4.8){$ V_1^{(1)} \times \cdots \times V_{k_1}^{(1)} \times
\cdots \times
V_1^{(l)}\times \cdots \times V_{k_l}^{(l)} $}
\psline[linecolor=black, linewidth=0.02, arrowsize=0.053cm
1.5,arrowlength=1.4,arrowinset=0.0]{->}(3.54,4.4)(7.54,2.0)
\psline[linecolor=black, linewidth=0.02, arrowsize=0.053cm
1.5,arrowlength=1.4,arrowinset=0.0]{->}(7.49,-1.1)(7.49,1.15)
\psline[linecolor=black, linewidth=0.02, arrowsize=0.053cm
1.5,arrowlength=1.4,arrowinset=0.0]{->}(3.54,-4.4)(7.54,-2.0)
\psbezier[linecolor=black, linewidth=0.02, linestyle=dashed,
dash=0.17638889cm 0.10583334cm, arrowsize=0.053cm
1.5,arrowlength=1.4,arrowinset=0.0]{->}(3.14,-4.4)(1.94,-2.0)(3.94,0.0)
(4.34,1.2)
\psbezier[linecolor=black, linewidth=0.02, arrowsize=0.053cm
1.5,arrowlength=1.4,arrowinset=0.0]{->}(2.74,-4.4)(-1.26,-2.0)(2.74,1.2)
(3.14,4.4)
\rput(7.14,-3.2){$\otimes ^{(1)} \times \cdots \times \otimes^{(k)} $}
\rput{2.3059666}(0.0064297295,-0.31947264){\rput(7.94,0.0){$\otimes$}}
\rput{2.3059666}(0.017017499,-0.04554495){\rput(1.14,0.4){$\otimes$}}
\rput{68.87306}(0.633066,-3.323306){\rput(2.74,-1.2){$\otimes \circ \left
(\otimes ^{(1)}, \cdots ,\otimes^{(k)} \right )$}}
\rput{2.3059666}(0.14933528,-0.21999136){\rput(5.54,3.6){$a$}}
\end{pspicture}
}
%
\end{document}
答案1
这里的 MWE 显示了实现您想要的目标所需的基本命令。
我认为这些命令是不言自明的,有疑问的话,请参见伟大的手册它有详细的例子,涵盖了入门所需的一切tikz
。
\documentclass[tikz, border=5mm]{standalone}
\usetikzlibrary{positioning}
\begin{document}
\begin{tikzpicture}
\node (first) {$V_{1}^{(1)} \otimes\cdots\otimes V_{k_1}^{(1)} \otimes\cdots\otimes$};
\node (second) [below=2 of first] {$V_{1}^{(1)} \times\cdots\times V_{k_1}^{(1)} \times\cdots\times$};
\node (third) [below right=.75 of first] {$\left(V_{1}^{(1)\otimes\cdots\otimes}V_{k_1}^{(1)} \right)\otimes\cdots\otimes$};
\begin{scope}[->]
\draw (first) to node [midway, above] {a} (third);
\draw (second) to [out=120, in=270] node [midway, above, sloped] {$\otimes$} (first) ;
\draw [dashed] (second) to [in=180] node [midway, above, sloped] {$\otimes (\otimes^{(1)},\dots)$} (third);
\end{scope}
\end{tikzpicture}
\end{document}
答案2
对于带有文本的线条,这可以通过两个功能实现tikt/pgf
(我指的是tikz/pgf
手动的版本 3.0.1a)。
17.8 在线或曲线上明确放置节点
17.13 引用当前图片之外的节点
尤其17.13.1 Referencing a Node in a Different Picture
。
这是一个与您的愿望有些相似的例子。