Я хотел бы создать функцию LaTeX, которая: (1) принимает строку в качестве аргумента, (2) вычисляет длину строки, (3) делит длину на 3, (3) применяет один тип форматирования к первой трети строки, другой тип форматирования к средней трети строки, а затем еще один тип форматирования к оставшейся части строки.
Есть ли способ сделать это?
решение1
Ниже представлен подход с использованием fp
пакета для вычислений и xstring
пакета для разделения строк. Команды форматирования жестко закодированы, в данном случае жирный, синий и большой шрифт.
Код:
\documentclass{article}
\usepackage{xstring}
\usepackage{fp}
\usepackage{xcolor}
\newcommand{\divprint}[1]{%
\StrLen{#1}[\mylen]% get length of string
\FPeval\x{clip(round(\mylen/3,0))}% divide by 3, round on 0 decimal places, clip any trailing zeroes
\StrSplit{#1}{\x}{\strA}{\strBC}% split string on the calculated position
\StrSplit{\strBC}{\x}{\strB}{\strC}% split remaining string
\textbf{\strA}\textcolor{blue}{\strB}\Large\strC\normalsize% print formatted string
}
\begin{document}
\divprint{fourfourfour}
\divprint{random string}
\end{document}
Результат: