我想将链接置于标题 (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}