latex中英文字母大小写变换再讨论

latex中英文字母大小写变换再讨论

在英文的习惯中,特别是标题等内容中,大小写有一些常用的习惯。
在latex中如果正常输入英文段落和语句,通常作者会注意使用这些习惯,因此通常不太会需要太多的字母大小写转换。
反而在参考文献中,由于bib文件中的文献条目通常由网络获取,各个网站的习惯格式并不相同,所以通常没有一个统一的规范。
所以在参考文献的格式化过程中会更多的涉及到大小写转换。

关于大小写转换实践,我之前的文章已经讨论过一次,见
latex中字母大小写转换实践
Make the first letter of each word uppercase in sentence
这里是再梳理一下,并且提供一下统一的命令,命令主要借助biblatex,mfirstuc宏包实现。

英文习惯中的大小写样式

样式说明示例
Sentence case句子模式(一个句子中除首字母大写外其它全部小写)The quick brown fox jumps over the lazy dog
Title case标题模式(一个句子各单词首字母均大写)The Quick Brown Fox Jumps over the Lazy Dog
All caps全大写(一个句子全部大写)THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG
All lowercase全小写(一个句子全部小写)the quick brown fox jumps over the lazy dog
Small caps小大写字母模式(一个句子中除首字母大写外其它全部用smallcap字母)The quick brown fox jumps over the lazy dog

latex中的实现

latex提供了基础命令MakeUppercase、MakeLowercase,可以将整个句子进行大小写转换,且不考虑{}符号进行保护。
biblatex提供了MakeCapital和MakeSentenceCase,前者仅将句子首字母大写,后者除首字母大写外,也对剩余字母小写,支持{}符号的大小写保护。
mfirstuc提供了capitalisewords命令,可以将句子中所有的单词的首字母大写,不支持{}的保护,但可以用\MFUnocap命令进行保护。

为了方便使用,我们可以使用统一的命名方式来实现多种习惯大小写写法的命令,比如:

通过如下定义:

    \makeatletter
    \def\firstletterparse#1#2&{\def\strfirstletter{#1}\def\strotherletters{#2}}
    
    \newcommand{\MakeSmallcaps}[1]{%
        \expandafter\firstletterparse#1&
        \expandafter\MakeUppercase\strfirstletter\textsc{\strotherletters}%
    }%\textrm

    \newcommand{\MakeTitlecase}[1]{%
        \capitalisewords{#1}
    }
    \makeatother

可以提供了前述所有模式的大小写方式:

命令说明可实现样式
\MakeCapital{a small book of {SUN} rhyme}一个句子中首字母大写,其字母不变Sentence case
\MakeSentenceCase{a small book of {SUN} rhyme}一个句子中除首字母大写外其它全部小写Sentence case
\MakeTitlecase{a small book of {SUN} rhyme}一个句子各单词首字母均大写Title case
\MakeUppercase{a small book of {SUN} rhyme}一个句子全部大写All caps
\MakeLowercase{a small book of {SUN} rhyme}一个句子全部小写All lowercase
\MakeSmallcaps{a small book of {SUN} rhyme}一个句子中除首字母大写外其它全部用smallcap字母Small caps

示例

这里给出一个测试文档:

\documentclass{article}
    \usepackage{ctex}
    \usepackage[backend=biber]{biblatex}
    \usepackage{mfirstuc}
    \makeatletter
    \def\firstletterparse#1#2&{\def\strfirstletter{#1}\def\strotherletters{#2}}

    \newcommand{\MakeSmallcaps}[1]{%
        \expandafter\firstletterparse#1&
        \expandafter\MakeUppercase\strfirstletter\textsc{\strotherletters}%
    }%\textrm

    \newcommand{\MakeTitlecase}[1]{%
        \capitalisewords{#1}
    }
    \makeatother

    \begin{document}

    \MakeUppercase{a small book of {SUN} rhyme}

    \MakeLowercase{a small book of {SUN} rhyme}

    \MakeCapital{a small book of {SUN} rhyme}

    \MakeSentenceCase{a small book of {SUN} rhyme}

    \MFUnocap{of}
    \MakeTitlecase{a small book of {SUN} rhyme}

    \MakeSmallcaps{a small book of {SUN} rhyme}

    \end{document} 

小结

如此,我们通过统一的命名实现英文习惯大小写方式,可以在biblatex参考文献样式中可以有非常多的应用。

enjoy!

### 回答1: 在 LaTeX ,可以使用 BibTeX 来管理参考文献,并通过指定不同的参考文献样式(.bst 文件)来控制其格式。如果要保持参考文献作者姓名的大小写,可以使用以下步骤: 1. 在 LaTeX 文档导入 BibTeX 数据库,并指定参考文献样式,例如: ``` \bibliographystyle{unsrt} % 指定参考文献样式 \bibliography{mybibfile} % 导入 BibTeX 数据库 ``` 2. 打开 BibTeX 数据库文件(.bib 文件),并找到要修改的参考文献条目。每个参考文献条目都有一个唯一的标识符,例如: ``` @article{author2019title, author = {Author, A. and Coauthor, C.}, title = {The Title of the Article}, journal = {Journal Name}, volume = {27}, number = {3}, pages = {100-120}, year = {2019} } ``` 3. 在作者姓名使用花括号({})来指定要保持的大小写。例如,如果要保持作者姓名的大写,可以这样写: ``` author = {{AUTHOR}, A. and {COAUTHOR}, C.}, ``` 4. 保存 BibTeX 数据库文件,并重新编译 LaTeX 文档。此时,参考文献的作者姓名应该已经按照指定的大小写格式显示了。 ### 回答2: 在LaTeX,保持参考文献的大小写样式可以通过使用合适的参考文献样式文件来实现。参考文献样式文件控制着文献的显示格式,包括大小写等方面。 首先,在LaTeX文档的导言区使用`\bibliographystyle`命令指定所使用的参考文献样式文件。常用的一些样式文件如`plain`、`abbrv`、`alpha`等。不同样式文件对大小写的处理可能有所不同。 其次,为了确保参考文献标题和条目的大小写正确,需要在引用文献的地方使用正确的命令。通常,在正文引用文献可以使用`\cite`或者`\citep`命令。这些命令会根据所使用的参考文献样式文件的规定来决定文献标题的大小写。 如果需要对某个特定的文献条目进行大小写转换,可以在参考文献数据库使用花括号`{}`将文献标题的相关部分括起来。这样做可以强制保持特定的大小写格式,不受参考文献样式文件的影响。 需要注意的是,参考文献样式文件只能控制文献标题和条目的大小写形式,而无法自动将大写或者小写的文献标题转换为首字母大写的形式。因此,在编写文献条目时,我们应尽量保持正确的大小写形式。 总之,在LaTeX,通过选择合适的参考文献样式文件以及正确使用引用命令,我们可以保持参考文献的大小写形式符合需求。 ### 回答3: 在LaTeX,保持参考文献大小写可以通过使用合适的bibliography样式来实现。最常用的是\texttt{plain}样式。默认情况下,该样式会将参考文献的标题词汇的首字母大写,其余的字母小写。但是,如果参考文献条目大写字母(如人名或首字母缩写),它们将会保持原样。 如果要确保参考文献的标题词汇大写,可以使用\texttt{biblatex}宏包,并在引入该宏包时指定\texttt{style=numeric}和\texttt{uppercase=true}选项。这样会将所有标题词汇部转换为大写字母格式。 以下是一个示例bibliography样式设置的代码: \begin{verbatim} \usepackage[style=numeric, sorting=none, backend=biber, maxbibnames=99, maxcitenames=2, giveninits=true, terseinits=true, dashed=false, backend=biber, url=false, doi=false, isbn=false, eprint=false, date=year]{biblatex} \DeclareNameAlias{default}{last-first} \renewcommand*{\finentrypunct}{} \DeclareFieldFormat{titlecase}{% \ifthenelse{\ifcurrentfield{title}\OR\ifcurrentfield{subtitle}}% {\MakeUppercase{#1}}% {#1}} \renewbibmacro*{title}{% \ifthenelse{\iffieldundef{title}\AND\iffieldundef{subtitle}}{} {\iffieldundef{title} {\printfield[titlecase]{subtitle}} {\printfield[titlecase]{title} \iffieldundef{subtitle}{}{\setunit{\subtitlepunct}% \printfield[titlecase]{subtitle}}}}% \newunit} \end{verbatim} 通过使用上述设置,参考文献的标题词汇将会以大写字母显示,并保留原有的大写字母,而不会进行小写字母转换。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值