文本居中,但没有连字符

文本居中,但没有连字符

对于标题,我希望有一个水平居中的文本框。文本不应使用连字符。如果文本未使用连字符,则文本应仍然位于页面的中心。目前我有以下代码

\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只是为了显示边距。

在此处输入图片描述

第二和第三个例子显示了当长单词超出分配的空间时会发生什么(向马克吐温抱怨伪德语言论)。

另外:选项tbtominipage并没有多大意义。可选参数应该是单身的字符之中ctb

答案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

你的话彩图太长了,无法在页面上的一行文本中容纳,因此它会溢出你的\parboxminipage文本边框。它会溢出右侧文本边框。更糟糕的是,当你试图插入时\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 employchangepage` 包更宽,并且您写下了您的文本(我想它可能是一些标题),如下所示:

\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}

相关内容