对于标题,我希望有一个水平居中的文本框。文本不应使用连字符。如果文本未使用连字符,则文本应仍然位于页面的中心。目前我有以下代码
\documentclass[a4paper,11pt,naustrian]{article}
\usepackage[margin=2.5cm]{geometry} % for margins on a A4paper
\usepackage[unit=cm]{fgruler}
\begin{document}
\begin{minipage}[tb]{\textwidth}
\centering
\fbox{
\parbox{.5\textwidth}{
\raggedright
\centering
\hyphenpenalty=10000
\exhyphenpenalty=10000
\Huge\bfseries
Mögliche einzelne Zeilenumbruchsvielfaltmöglichkeiten
}
}
\end{minipage}
\end{document}
使框居中但不使文本居中。首选解决方案是使用“常规” LaTex 命令。
更新:
- 这样
\fbox
做的目的更多是为了更容易地突出或发现问题。 - 换行应该或多或少地自动完成 - 而不是手动引入。
- 这个词
Zeilenumbruchsvielfaltmöglichkeiten
只是一个相当长的随机词。这应该明确表示它不应使用连字符。
答案1
只要长单词适合文本块宽度,您就可以将文本嵌入varwidth
标准中\makebox
。
\documentclass[a4paper,11pt]{article}
\usepackage[margin=2.5cm,showframe]{geometry} % for margins on a A4paper
\usepackage{varwidth}
\begin{document}
\noindent\makebox[\textwidth]{%
\begin{varwidth}{\textwidth}
\centering
\hyphenpenalty=10000
\exhyphenpenalty=10000
\Huge\bfseries
Mögliche einzelne Zeilenumbruchsvielfaltmöglichkeiten
\end{varwidth}%
}
\bigskip
\noindent\makebox[\textwidth]{%
\begin{varwidth}{1.2\textwidth}
\centering
\hyphenpenalty=10000
\exhyphenpenalty=10000
\Huge\bfseries
Mögliche einzelne Constantinopolitanischerdudelsackspfeifenmachersgesellschafft
\end{varwidth}%
}
\bigskip
\noindent\makebox[\textwidth]{%
\begin{varwidth}{1.2\textwidth}
\centering
% \hyphenpenalty=10000
% \exhyphenpenalty=10000
\Huge\bfseries
Mögliche einzelne Constantinopolitanischerdudelsackspfeifenmachersgesellschafft
\end{varwidth}%
}
\end{document}
我添加showframe
只是为了显示边距。
第二和第三个例子显示了当长单词超出分配的空间时会发生什么(向马克吐温抱怨伪德语言论)。
另外:选项tb
tominipage
并没有多大意义。可选参数应该是单身的字符之中c
,t
或b
。
答案2
您说 fbox 只是为了突出显示问题,但添加框会使情况变得更加复杂,如果您只是想要一种center
允许两侧超限的形式,只需使用左右跳过并进行足够的收缩:
\documentclass{article}
\begin{document}
\noindent X\dotfill X
\begin{center}
\hyphenpenalty=10000
\leftskip=0pt plus\textwidth minus \textwidth
\rightskip=\leftskip
\Huge\bfseries
Mögliche einzelne
Zeilenumbruchsvielfaltmöglichkeiten
Mögliche einzelne
Constantinopolitanischerdudelsackspfeifenmachersgesellschafft
\end{center}
\end{document}
这强制两个例子之间的段落分离,但对每个例子使用自动中断留置权。
答案3
你的话彩图太长了,无法在页面上的一行文本中容纳,因此它会溢出你的\parbox
和minipage
文本边框。它会溢出右侧文本边框。更糟糕的是,当你试图插入时\parbox{0.5\textwidth}
-
目前尚不清楚您是否需要,\fbox
或者它仅用于强调您的问题。
可能的补救措施是不使用\parbox
and
\fbox`:
\documentclass[a4paper,11pt]{article}
\usepackage[showframe,
margin=2.5cm]{geometry} % for margins on a A4paper
\usepackage[unit=cm]{fgruler}
\begin{document}
\noindent\begin{minipage}{\textwidth}\centering\Huge\bfseries
Mögliche einzelne
Zeilenumbruchsvielfaltmöglichkeiten
\end{minipage}
\end{document}
或者使用较小的字体大小,例如\huge
。在这种情况下,您将获得:
附录:
使用较小字体大小时的另一种方法是使用savebox
来书写文本并测量所需宽度}
\documentclass[a4paper,11pt]{article}
\usepackage[showframe,
margin=2.5cm]{geometry} % for margins on a A4paper
\usepackage[unit=cm]{fgruler}
\newsavebox{\temp}
\begin{document}
{\centering
\fbox{\savebox{\temp}{\huge\bfseries Zeilenumbruchsvielfaltmöglichkeiten}
\noindent\begin{minipage}{\the\wd\temp}\centering\huge\bfseries
Mögliche einzelne \usebox{\temp}
\end{minipage}
}
\end{document}
在上述所有情况下,都是Zeilenumbruchsvielfaltmöglichkeiten
文本中最长的单词或一行文本中最长的文本。
结果与以前类似(不同之处在于在文本周围添加了框架):
假设您想要使用更大的字体(\Huge
例如),并且未连字符/拆分的文本/单词比\text width, then you may consider to employ
changepage` 包更宽,并且您写下了您的文本(我想它可能是一些标题),如下所示:
\documentclass[a4paper,12pt]{article}
\usepackage[showframe,
margin=2.5cm]{geometry} % for margins on a A4paper
\usepackage[unit=cm]{fgruler}
\usepackage[strict]{changepage}
\newsavebox{\temp}
\begin{document}
\begin{adjustwidth}{-\marginparwidth}{-\marginparwidth}
\centering
\fbox{\savebox{\temp}{\Huge\bfseries Zeilenumbruchsvielfaltmöglichkeiten}
\noindent\begin{minipage}{\the\wd\temp}\centering\Huge\bfseries
Mögliche einzelne \usebox{\temp}
\end{minipage}
}
\end{adjustwidth}
\end{document}
答案4
您可以将超长但在任何情况下都不能用连字符连接的单词放在\makebox[0pt]{...}
包装器中。
注意。(a)不需要\hyphenpenalty=10000
和\exhyphenpenalty=10000
。(b)采用这种方法,超长的单词很容易侵入边缘。
\documentclass[a4paper,11pt,naustrian]{article}
\usepackage[margin=2.5cm]{geometry}
\usepackage[unit=cm]{fgruler}
\usepackage{calc} % for '\widthof' macro
\begin{document}
\noindent
\begin{minipage}{\textwidth}
\centering
\fbox{%
\parbox{\widthof{\Huge\bfseries Mögliche einzelne}}{%
\centering
\Huge\bfseries
Mögliche einzelne \par % or insert a blank line
\makebox[0pt]{Zeilenumbruchsvielfaltmöglichkeiten}
}
}
\end{minipage}
\end{document}