2

Using xy package, I have produced a figure. But I have a problem:

How can one create an arrow or a two-headed arrow between the two entries of a matrix that are located in different columns in which the difference of the columns' numbers are strictly greater than one(e.g. column number 1 and column number 3) in xy package? (In fact, I intend to have a continuous straight arrow between the two boxes in line 5 of the following flow chart instead of the two represented arrows).

\documentclass[reqno]{amsart}
\usepackage{enumitem}
\usepackage[all]{xy}
\usepackage{newlfont}
\usepackage[centertags]{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{plain}
\usepackage{mathrsfs}

\setcounter{page}{1}
\renewcommand{\baselinestretch}{1.5}
\oddsidemargin=.25cm \evensidemargin=.25cm \textwidth=15cm
\topmargin=0cm \textheight=21cm
\begin{document}
\title{Graphical Abstract}
\maketitle

\begin{figure}[!h]
\small
{\[\xymatrix{
\framebox[0.33\textwidth]{\textbf{Partition of Unity}\quad \textbf{\&}\ar[d] \quad \textbf{State}}  & &  \framebox[0.42\textwidth]{\textbf{State}\quad \textbf{\&} \quad \textbf{Hyper Injective Mapping}} \ar[d] \\
\framebox[0.36\textwidth]{\textbf{Entropy of a Partition of Unity}}\ar[d] \ar[r] & \ar[d]  & \framebox[0.45\textwidth]{\textbf{Hyper Injective Hyper $MV$--Algebra DS}} \ar[l] \\
\framebox[0.2\textwidth]{\textbf{Properties}} \ar[d] & \framebox[0.2\textwidth]{h(T, U)} \ar[d] \ar[r] \ar[l] & \framebox[0.2\textwidth]{\textbf{Calculations}} \ar[d] \\
\framebox[0.3\textwidth]{\textbf{Theorem of Isomorphism}} \ar[r] & \framebox[0.2\textwidth]{h(T)} \ar[ul] \ar[ur] \ar[l] \ar[r] & \framebox[0.32\textwidth]{\textbf{Kolmogorov-Sinai Theorem}} \ar[l] \\
\framebox[0.45\textwidth]{\textbf{Hyper Injective Hyper $MV$--Algebra DS}} \ar[dr] & \ar[r] \ar[l] & \framebox[0.48\textwidth]{\textbf{Semi-Independent Hyper $MV$--Algebra DS}} \ar[dl] \\
& \framebox[0.2\textwidth]{\textbf{$MV$--Algebra DS}} \ar[ul] \ar[ur]& }
\]}
\caption{\label{1}}
\end{figure}
\end{document}
  • The newlfont package has become obsolete in 1995. – egreg Apr 27 '16 at 9:39
2

You have to do an arrow over two columns which would be \ar[rr] seeing from the left node. Than you have to change the arrow heads of this arrow which would look like \ar@{<->}[rr]. This should solve your problem.

% arara: pdflatex    

\documentclass{amsart}
\usepackage[cmtip,all]{xy}

\setlength{\textwidth}{15cm}
\setlength{\textheight}{21cm}
\calclayout

\newcommand{\specialcell}[2][c]{%
    \begin{tabular}[#1]{@{}c@{}}#2\end{tabular}
    }

\begin{document}
    \title{Graphical Abstract}
    \maketitle
    \begin{figure}[!h]
        \[
        \xymatrix@C=-.2em{%
            \fbox{\bfseries Partition of Unity \& State} \ar[d] & & \fbox{\bfseries State \& Hyper Injective Mapping} \ar[d] \\
            \fbox{\textbf{\specialcell{Entropy of a Partition\\ of Unity}}} \ar[d] \ar[r] & \ar[d]  & \fbox{\textbf{\specialcell{Hyper Injective Hyper\\ $MV$--Algebra DS}}} \ar[l] \\
            \fbox{\textbf{Properties}} \ar[d] & \fbox{$h(T, U)$} \ar[d] \ar[r] \ar[l] & \fbox{\textbf{Calculations}} \ar[d] \\
            \fbox{\textbf{Theorem of Isomorphism}} \ar@{<->}[r] & \fbox{$h(T)$} \ar[ul] \ar[ur] \ar@{<->}[r] & \fbox{\textbf{Kolmogorov-Sinai Theorem}} \\
            \fbox{\textbf{\specialcell{Hyper Injective Hyper\\ $MV$--Algebra DS}}} \ar@{<->}[dr]\ar@{<->}[rr] & & \fbox{\textbf{\specialcell{Semi-Independent Hyper\\ $MV$--Algebra DS}}} \ar@{<->}[dl] \\
            & \fbox{\textbf{$MV$--Algebra DS}} & 
        }
        \]
        \caption{}\label{1}
    \end{figure}
\end{document}

Such things are much easier done with TikZ. If you want to do that in a similar matrix syntax, you might want to take a look on :

% arara: pdflatex    

\documentclass{amsart}
\newcommand{\specialcell}[2][c]{%
    \begin{tabular}[#1]{@{}c@{}}#2\end{tabular}}
\usepackage{tikz-cd}

\begin{document}
\begin{figure}
    \begin{tikzcd}[%
        ,cells={%
            ,nodes={%
                ,draw
                ,align=center
                ,font=\bf
                ,outer sep=1mm
                }
            }
        ,column sep={13em,between origins}  
        ]
            Partition of Unity \& State\ar[d] & & State \& Hyper Injective Mapping\ar[d] \\
            \specialcell{Entropy of a Partition\\ of Unity}\ar[d] \ar[to path={-|(\tikztotarget)}]{dr} &  & \specialcell{Hyper Injective Hyper\\ $MV$--Algebra DS}\ar[to path={-|(\tikztotarget)}]{dl} \\
            Properties\ar[d] & $h(T, U)$\ar[d] \ar[r] \ar[l] & Calculations\ar[d] \\
            Theorem of Isomorphism\ar[<->]{r} & $h(T)$\ar[ul] \ar[ur] \ar[<->]{r} & Kolmogorov-Sinai Theorem\\
            \specialcell{Hyper Injective Hyper\\ $MV$--Algebra DS}\ar[<->]{dr}\ar[<->]{rr} & & \specialcell{Semi-Independent Hyper\\ $MV$--Algebra DS}\ar[<->]{dl} \\
            & $MV$--Algebra DS& 
    \end{tikzcd}
    \caption{}\label{1}
\end{figure}    
\end{document}
  • Just as an aside, amsart has its own method for setting page dimensions: \setlength{\textwidth}{15cm}\calclayout – egreg Apr 27 '16 at 9:42
  • @egreg Thanks, I've never used this class before. Please feel free to revise my edit. – LaRiFaRi Apr 27 '16 at 9:50
  • You just set the desired height and width; then \calclayout recomputes \topmargin, \oddsidemargin and so on. – egreg Apr 27 '16 at 10:04

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.