我该如何防止用 babel 将 "s 变成 ß?

我该如何防止用 babel 将 "s 变成 ß?

我正在写一份德语文档,因此我需要 äÄöÖüÜß 才能工作。但是我不会这样使用它:“a”A“o... 我只是输入 äÄö...
我的问题是“测试”显示为“测试

以下是 MWE:

% !TEX encoding=latin1
\documentclass{article}
\usepackage[ngerman]{babel}
\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc} 

\begin{document}
"Test" s
\end{document}

答案1

字符"不应该在连续文本中用来表示引号。对于双英文引号,请使用

``Test'' s

如果你想要德国风格的引号,请使用

"`Test"' s

使用 UTF-8 输入,您可以使用

“Test” s

适合英式风格和

„Test“ s

德式风格。另一种选择\glqq Test\grqq\ s不太方便。

例子:

\documentclass[a4paper]{article}
\usepackage[T1]{fontenc}
%\usepackage[utf8]{inputenc} % not needed with LaTeX after 2018-04-01
\usepackage[ngerman]{babel}

\usepackage{upquote,booktabs} % for the table

\begin{document}

\begin{tabular}{lll}
\toprule
\multicolumn{1}{c}{Style} &
\multicolumn{1}{c}{Input} &
\multicolumn{1}{c}{Output} \\
\midrule
English & \verb|``Test'' s| & ``Test'' s
\\
English & \verb|“Test” s| & “Test” s
\\
German & \verb|"`Test"' s| & "`Test"' s
\\
German & \verb|„Test“ s| & „Test“ s
\\
German & \verb|\glqq Test\grqq\ s| & \glqq Test\grqq\ s
\\
\bottomrule
\end{tabular}

\end{document}

在此处输入图片描述

答案2

解决方案 3:在源代码中也使用左引号和右引号,如下大卫·卡莱尔建议

\documentclass{article}
\usepackage[ngerman]{babel}
\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc} 

\begin{document}
“Test”s, and “test” s too (but I’d use “test”~s, then).
\end{document}

这是我得到的输出:

代码输出

答案3

如果你想使用拉丁语1(即 ISO 8859-1),那么我收集了两个已经在评论中提到的解决方案。

问题是,在某些情况下*"A, "O, "U, "a, "o, "u, "s是特殊字符的命令(而不是\"A, \"O or \ss{}例如)。因此 LaTeX 无法知道您在示例中的意思。

*取决于所加载的包,在本例中为包babel

\documentclass{article}
\usepackage[ngerman]{babel}
\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc} 

\usepackage{csquotes}

\begin{document}

\section*{They are all the same regarding the ß}

\begin{itemize}
\item "Test" s
\item " s
\item "s
\item But: "\ s % Thanks to comment of user Dũng Vũ
\end{itemize}

\section*{Solution 1: Use \texttt{babel}'s quotation marks}
% See also https://www.namsu.de/Extra/befehle/Anfuehrungszeichen.html
% https://de.wikibooks.org/wiki/LaTeX-W%C3%B6rterbuch:_Anf%C3%BChrungszeichen
% \glqq --> German Left Double Quote
% \grqq --> German Right Double Quote
% \glq --> German Left Single Quote
% \grq --> German Right Single Quote

\begin{itemize}
\item \glqq Test\grqq\ s (Don't forget the \textbackslash\ after the command)
\item \glq Test\grq\ s
\end{itemize}

\section*{Solution 2: Use the \texttt{csquote} package}
% For more information, have a look at the manual
% https://ctan.org/pkg/csquotes

\enquote{Test} s

\end{document}

在此处输入图片描述

笔记:在屏幕截图上,您可以在右下角看到我在编辑器中使用了正确的编码,在本例中是 ISO-8859-1,即 latin1。

答案4

我再次寻找相关的解决方案:

  • 写在.tex 文件中:“s”
  • pdf 中显示:“s”
  • 从 pdf 复制:“s”
\usepackage{csquotes}
\usepackage{accsupp} % for accessibility changes (used for copy different text than displayed)
\DeclareQuoteStyle{germanquotes}
    {\BeginAccSupp{method=plain,ActualText="}\glqq\EndAccSupp{}} % Outer opening qoute
    {\BeginAccSupp{method=plain,ActualText="}\grqq\EndAccSupp{}} % Outer closing qoute
    {\textquoteleft} % inner opening qoute
    {\textquoteright} % inner closing qoute
\setquotestyle{germanquotes}
\MakeOuterQuote{"} % automatically use " as qoutes in the given .tex text

相关内容