是否可以在句子中间创建垂直空间?

是否可以在句子中间创建垂直空间?

我想将链接置于标题 (Pomodoro、Duelr) 的中间。最好的方法是什么?我的代码如下:

\begin{tabularx}{\linewidth}{X r}
    \rule{0pt}{17pt}
    \hspace{-0.2em}\large\textbf{\textsc{Pomodoro} \vspace{0.5em} \href{https://www.GitHub.com/AllanMukundi/Pomodoro}{\fontsize{7}{8.4}\selectfont - https://www.GitHub.com/AllanMukundi/Pomodoro}} & \textit{May 2017}
\end{tabularx}
\vspace{-1.60em}
\begin{itemize}[noitemsep]
    \item A productivity-oriented web application which incentivizes the Pomodoro Technique via a reward system
    \item Features a dynamic leaderboard, responsive design, and user authentication with support for social accounts
    \item Deployed onto Heroku and built using Django/Python, HTML5, CSS, Bootstrap, JavaScript, jQuery, and AJAX
\end{itemize}
\begin{tabularx}{\linewidth}{X r}
    \rule{0pt}{17pt}
    \hspace{-0.2em}\large\textbf{\textsc{Duelr} \href{https://www.GitHub.com/AllanMukundi/Duelr}{\fontsize{7}{8.4}\selectfont - https://www.GitHub.com/AllanMukundi/Duelr}} & \textit{Jun. 2017}
\end{tabularx}
\vspace{-1.60em}
\begin{itemize}[noitemsep]
    \item Duelr is an online multiplayer 1v1 fighting game which uses web sockets to deliver real-time interactions
    \item Features fluid character animations, intuitive controls, and fully functional collision mechanisms
    \item Hosted on Microsoft Azure and built with JavaScript, Node.js, Express.js, Socket.io, HTML5, CSS, and Phaser
\end{itemize}

样本

答案1

如果我理解正确的话,您只想提出如下所示的 URL。

在此处输入图片描述

\documentclass{article}

\usepackage{tabularx,enumitem}
\usepackage[colorlinks]{hyperref}

\newcommand\midl[1]{\raisebox{1pt}{#1}}
\begin{document}

\sffamily

\begin{tabularx}{\linewidth}{X r}
    \rule{0pt}{17pt}
    \hspace{-0.2em}\large\textbf{%
\textsc{Pomodoro}
\midl{\href{https://www.GitHub.com/AllanMukundi/Pomodoro}{\fontsize{7}{8.4}\selectfont - https://www.GitHub.com/AllanMukundi/Pomodoro}}} & \textit{May 2017}
\end{tabularx}
\vspace{-1.60em}
\begin{itemize}[noitemsep]
    \item A productivity-oriented web application which incentivizes the Pomodoro Technique via a reward system
    \item Features a dynamic leaderboard, responsive design, and user authentication with support for social accounts
    \item Deployed onto Heroku and built using Django/Python, HTML5, CSS, Bootstrap, JavaScript, jQuery, and AJAX
\end{itemize}
\begin{tabularx}{\linewidth}{X r}
    \rule{0pt}{17pt}
    \hspace{-0.2em}\large\textbf{%
\textsc{Duelr}
\midl{\href{https://www.GitHub.com/AllanMukundi/Duelr}{\fontsize{7}{8.4}\selectfont - https://www.GitHub.com/AllanMukundi/Duelr}}} & \textit{Jun. 2017}
\end{tabularx}
\vspace{-1.60em}
\begin{itemize}[noitemsep]
    \item Duelr is an online multiplayer 1v1 fighting game which uses web sockets to deliver real-time interactions
    \item Features fluid character animations, intuitive controls, and fully functional collision mechanisms
    \item Hosted on Microsoft Azure and built with JavaScript, Node.js, Express.js, Socket.io, HTML5, CSS, and Phaser
\end{itemize}

\end{document}

答案2

您可以使用\raisebox并计算需要上升的高度:

\documentclass[]{article}
\usepackage{tabularx}
\usepackage{hyperref}
\usepackage{enumitem}

\newdimen\mytitlehtONE
\newdimen\mytitlehtTWO

\newcommand{\mytitle}[2]{%
    \setbox0\hbox{\large\textbf{\textsc{#1}}}%
    \mytitlehtONE=\ht0%
    \setbox0\hbox{\textbf{\href{#2}{\fontsize{7}{8.4}\selectfont - #2}}}%
    \mytitlehtTWO=\ht0%
    \advance\mytitlehtONE by -\mytitlehtTWO\relax%
    \hspace{-0.2em}\fbox{\large\textbf{\textsc{#1}}}
    \raisebox{0.5\mytitlehtTWO}{\unhbox0}}

\begin{document}
\begin{tabularx}{\linewidth}{X r}
    \rule{0pt}{17pt}
    \mytitle{Pomodoro}{https://www.GitHub.com/AllanMukundi/Pomodoro} & \textit{May 2017}
\end{tabularx}
\end{document}

其结果是: 在此处输入图片描述

只是\fbox为了表明它确实是线的中间。如果没有它,命令如下:

\newcommand{\mytitle}[2]{%
    \setbox0\hbox{\large\textbf{\textsc{#1}}}%
    \mytitlehtONE=\ht0%
    \setbox0\hbox{\textbf{\href{#2}{\fontsize{7}{8.4}\selectfont - #2}}}%
    \mytitlehtTWO=\ht0%
    \advance\mytitlehtONE by -\mytitlehtTWO\relax%
    \hspace{-0.2em}\large\textbf{\textsc{#1}}
    \raisebox{0.5\mytitlehtTWO}{\unhbox0}}

答案3

另一种可能性:沿数学轴居中。这样做的优点是它会自动缩放到不同的大小,而无需测量临时框;缺点是需要一点低级 TeX 编码。

以下代码的输出

源代码如下。我还在几个点上对其进行了清理。

% My standard header for TeX.SX answers:
\documentclass[a4paper]{article} % To avoid confusion, let us explicitly 
                                 % declare the paper format.

\usepackage[T1]{fontenc}         % Not always necessary, but recommended.
% End of standard header.  What follows pertains to the problem at hand.

\usepackage{enumitem}
\usepackage[colorlinks]{hyperref}

\makeatletter

\newenvironment*{myList}[3]{%
    {\noindent \parfillskip\z@skip
        \rule{0pt}{17pt}% <-- !!! (But why this rule?)
        % \hspace{-0.2em} % no longer necessary, I guess! ;-)
        {\large
            {%
                \bfseries
                % \scshape % not supported
                #1\/%
            }%
            ~$\m@th \vcenter{\hbox{\scriptsize - \url{#2}}}$%
        }%
        \nobreak\hfill \textit{#3}\@@par
    }%
    % \vspace{-1.60em} % specify "nosep" instead of "noitemsep"
    \begin{itemize}[nosep]%
}{%
    \end{itemize}%
}

\makeatother



\begin{document}

\sffamily

\begin{myList}
        {Pomodoro}
        {https://www.GitHub.com/AllanMukundi/Pomodoro}
        {May 2017}

    \item
        A productivity-oriented web application which incentivizes the Pomodoro
        Technique via a reward system.

    \item
        Features a dynamic leaderboard, responsive design, and user
        authentication with support for social accounts.

    \item
        Deployed onto Heroku and built using Django/Python, HTML5, CSS\@,
        Bootstrap, JavaScript, jQuery, and AJAX\@. %"\@" for precaution
\end{myList}

\begin{myList}
        {Duelr}
        {https://www.GitHub.com/AllanMukundi/Duelr}
        {Jun. 2017}

    \item
        Duelr is an online multiplayer 1v1 fighting game which uses web sockets
        to deliver real-time interactions.

    \item
        Features fluid character animations, intuitive controls, and fully
        functional collision mechanisms.

    \item
        Hosted on Microsoft Azure and built with JavaScript, Node.js,
        Express.js, Socket.io, HTML5, CSS\@, and Phaser.
\end{myList}

\end{document}

相关内容