我尝试寻找答案,但说实话,我对 LaTeX 还很陌生,我甚至不知道自己在寻找什么,因此我将在下面解释我试图寻找的内容。
我想将其作为我的一个页面。
Published by: Name.
Name.
Name.
但是当我尝试在 LaTeX 中执行此操作时,出现了此问题。
Published by: Name.
Name.
Name.
这是我通过这样做得到的。
Published by:\tab\textbf{Name.\\}
\tab\tab\tab\tab\tab\textbf{Name.\\}
\tab\tab\tab\tab\tab\textbf{Name.\\}
与\tab
\newcommand{\tab}{\hspace*{2em}}
这显然是一种非常粗糙的方法,所以我想知道是否有人有更优雅的解决方案。
编辑:我想我会继续在这里提问,因为它属于同一类别。
如果我想要这样的东西该怎么办?
Published by: Name.
Name.
Name.
Title: Title, Subtitle.
Author: Author.
If you request any further info, contact.
Name.
Name.
tabular
这样所有信息都位于相同的缩进中。继续使用或方法是否明智longunderstack
,或者使用完全不同的方法?
答案1
环境tabular
一个简单的解决方案tabular
:
\documentclass{article}
\begin{document}
Published by:\quad
\begin{tabular}[t]{@{}l@{}}
Harry Potter\\
Jack Sparrow\\
Frodo Baggins
\end{tabular}
\end{document}
评论:
[t]
将表格第一行的基线与周围文本对齐。@{}
\tabcolsep
删除表格列周围的多余空格 ( )。
可以通过不同的方式将名称加粗:
\textbf
或者\bfseries
对于每个名字:\begin{tabular}[t]{@{}l@{}} \bfseries Harry Potter\\ \bfseries Jack Sparrow\\ \bfseries Frodo Baggins \end{tabular}
\textbf
整体而言tabular
:\textbf{\begin{tabular}[t]{@{}l@{}} Harry Potter\\ Jack Sparrow\\ Frodo Baggins \end{tabular}}
软件包
array
提供>{...}
在列开头插入内容的功能:\usepackage{array} ... \begin{tabular}[t]{@{}>{\bfseries}l@{}} Harry Potter\\ Jack Sparrow\\ Frodo Baggins \end{tabular}
粗体条目:
扩大的视野
\documentclass{article}
\usepackage{array, booktabs}
\begin{document}
\setlength{\defaultaddspace}{\baselineskip}
\begin{tabular}{@{}l@{\quad}>{\bfseries}l}
Published by:
& Harry Potter\\
& Jack Sparrow\\
& Frodo Baggins\\
\addlinespace
Title: & A survey of foo and bar \\
Subtitle: & Finer points \\
\addlinespace
\multicolumn{2}{@{}l@{}}{If you request any further info, contact:}
\\
\addlinespace
& Gandalf in Middle-earth\\
& Radagast, the Blue
\end{tabular}
\end{document}
包裹varwidth
也可以使用A。minipage
但是它的缺点是必须指定宽度。包varwidth
定义了一个环境varwidth
,其作用类似于minipage
,但宽度会自动减小到所需的值:
\documentclass{article}
\usepackage{varwidth}
\begin{document}
Published by:\quad
\begin{varwidth}[t]{\linewidth}
\bfseries
Harry Potter\\
Jack Sparrow\\
Frodo Baggins
\end{varwidth}
\end{document}
环境tabbing
更接近问题的方法是环境tabbing
,它允许设置和使用制表符:
\documentclass{article}
\begin{document}
\begin{tabbing}
Published by:\quad\=\textbf{Harry Potter}\\
\>\textbf{Jack Sparrow}\\
\>\textbf{Frodo Baggins}
\end{tabbing}
\end{document}
扩大的视野
\documentclass{article}
\begin{document}
\begin{tabbing}
Published by:\quad\=\textbf{Harry Potter}\\
\>\textbf{Jack Sparrow}\\
\>\textbf{Frodo Baggins}\\[\baselineskip]
Title:\>\textbf{A survey of foo and bar}\\
Subtitle\>\textbf{Finer points}\\[\baselineskip]
If you request any further info, contact:\\[\baselineskip]
\>\textbf{Gandalf in Middle-earth}\\
\>\textbf{Radagast, the Blue}
\end{tabbing}
\end{document}
答案2
这是使用悬挂包的另一种方法,可能更简单
\documentclass{article}
\usepackage{hanging}
\newlength{\hangwidth}
\newcommand{\newhang}[1]{\settowidth{\hangwidth}{#1}\par\hangpara{\hangwidth}{1}#1}
\begin{document}
\newhang{Published by: }Name 1\\Name 2\\Name 3
\newhang{\textbf{Published by: }}Name 1\\Name 2\\Name 3
\end{document}
答案3
可以使用底层堆栈。已编辑以确认其可以与 配合使用\textbf{}
。
\documentclass{article}
\usepackage{stackengine}
\strutlongstacks{T}
\setstackEOL{\cr}
\begin{document}
Published by:\hspace{1em}\Longunderstack[l]{%
\textbf{Name.}\cr
Longer Name.\cr
Another Name.}
Next paragraph.
\end{document}
答案4
应该使用原\hangindent
语。例如:
\def\\{\hfil\break}
\def\indentby#1{\setbox0=\hbox{#1}\noindent \hangindent=\wd0 \box0
\ignorespaces}
\indentby{Published by: } Harry Potter\\
Jack Sparrow\\
Frodo Baggins
\bye
请注意,如果您使用 LaTeX,则无需定义\\
。