Skip to main content
added the solution, together with a few changes by me
Source Link
Christian
  • 1.4k
  • 8
  • 24

I'd lik to rotate every letter/character of a paragraph 90 degrees counterclockwise, yet keeping the left-to-right flow intact.

Everything I have found so far only rotates one letter at a time and not multiple letters.

This is what I use now:

\documentclass[a4paper,12pt,landscape]{article}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage{soul}
\usepackage{graphicx}
\usepackage{lipsum}
\usepackage[left=1cm,right=1cm,top=1cm,bottom=1cm,includeheadfoot]{geometry}

\makeatletter
\newlength\srotate@axis
\DeclareRobustCommand*{\srotate}{%
  \SOUL@setup
  \let\SOUL@everyhyphen\srotate@everyhyphen
  \let\SOUL@everyexhyphen\srotate@everyexhyphen
  \let\SOUL@everytoken\srotate@everytoken
  \settoheight\srotate@axis{$\vcenter{}$}%
  \SOUL@
}
\newcommand*{\srotate@everytoken}{%
  \srotate@token{\the\SOUL@token}%
}
\newcommand*{\srotate@everyexhyphen}[1]{%
  \srotate@token{\raisebox{-\srotate@axis}[.1ex][.1ex]{#1}}%
}
\newcommand*{\srotate@everyhyphen}{%
  \discretionary{%
    \srotate@everyexhyphen{-}%
  }{}{}%
}
\newcommand*{\srotate@token}[1]{%
  \kern.2ex
  \raisebox{\srotate@axis}{\rotatebox[origin=B]{90}{#1}}%
  \kern.2ex
}
\makeatother
\renewcommand{\familydefault}{\ttdefault}
\begin{document}
\noindent

01: \srotate{AST0S Q0LEA NTQOS 2SE2N EA0S9 9ST9Q E9S0Q ST0NV LASLN 2E22L 0ALOT 2OSTO +}

02: \srotate{0O0VV 9N9QO ETVAN V2VST N9OVL 2SOAT ET2S2 LATO0 EL0OA LO0V9 VVEE2 AETSA +}

03: \srotate{00AVS 0E2ON 2ASQE A9NTQ EQ220 92SA9 00OSQ AEVV0 AA9NT STV0L 2NN29 VN9SS +}

04: \srotate{VE2V0 VSASO EL9EO S2TNQ QOSTE N99A0 VQ9LV TV20E L9ESV QO2L2 E0Q2S TOE02 +}

05: \srotate{E2VSQ L0VEN 9A2VA QNQ0V EO00N T909Q STLNV 0LTNO NS9TT T2Q0Q NATAE ENOLE +}
\end{document}

I'd lik to rotate every letter/character of a paragraph 90 degrees counterclockwise, yet keeping the left-to-right flow intact.

Everything I have found so far only rotates one letter at a time and not multiple letters.

I'd lik to rotate every letter/character of a paragraph 90 degrees counterclockwise, yet keeping the left-to-right flow intact.

Everything I have found so far only rotates one letter at a time and not multiple letters.

This is what I use now:

\documentclass[a4paper,12pt,landscape]{article}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage{soul}
\usepackage{graphicx}
\usepackage{lipsum}
\usepackage[left=1cm,right=1cm,top=1cm,bottom=1cm,includeheadfoot]{geometry}

\makeatletter
\newlength\srotate@axis
\DeclareRobustCommand*{\srotate}{%
  \SOUL@setup
  \let\SOUL@everyhyphen\srotate@everyhyphen
  \let\SOUL@everyexhyphen\srotate@everyexhyphen
  \let\SOUL@everytoken\srotate@everytoken
  \settoheight\srotate@axis{$\vcenter{}$}%
  \SOUL@
}
\newcommand*{\srotate@everytoken}{%
  \srotate@token{\the\SOUL@token}%
}
\newcommand*{\srotate@everyexhyphen}[1]{%
  \srotate@token{\raisebox{-\srotate@axis}[.1ex][.1ex]{#1}}%
}
\newcommand*{\srotate@everyhyphen}{%
  \discretionary{%
    \srotate@everyexhyphen{-}%
  }{}{}%
}
\newcommand*{\srotate@token}[1]{%
  \kern.2ex
  \raisebox{\srotate@axis}{\rotatebox[origin=B]{90}{#1}}%
  \kern.2ex
}
\makeatother
\renewcommand{\familydefault}{\ttdefault}
\begin{document}
\noindent

01: \srotate{AST0S Q0LEA NTQOS 2SE2N EA0S9 9ST9Q E9S0Q ST0NV LASLN 2E22L 0ALOT 2OSTO +}

02: \srotate{0O0VV 9N9QO ETVAN V2VST N9OVL 2SOAT ET2S2 LATO0 EL0OA LO0V9 VVEE2 AETSA +}

03: \srotate{00AVS 0E2ON 2ASQE A9NTQ EQ220 92SA9 00OSQ AEVV0 AA9NT STV0L 2NN29 VN9SS +}

04: \srotate{VE2V0 VSASO EL9EO S2TNQ QOSTE N99A0 VQ9LV TV20E L9ESV QO2L2 E0Q2S TOE02 +}

05: \srotate{E2VSQ L0VEN 9A2VA QNQ0V EO00N T909Q STLNV 0LTNO NS9TT T2Q0Q NATAE ENOLE +}
\end{document}
Source Link
Christian
  • 1.4k
  • 8
  • 24

Rotate every letter/character by 90 deg, keeping left-to-right letterflow intact

I'd lik to rotate every letter/character of a paragraph 90 degrees counterclockwise, yet keeping the left-to-right flow intact.

Everything I have found so far only rotates one letter at a time and not multiple letters.